The Swift Package Index logo.Swift Package Index

Build Information

Successful build of LibDCSwift, reference main (9ea667), with Swift 6.1 for macOS (SPM) on 24 Jan 2026 14:53:10 UTC.

Swift 6 data race errors: 11

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/deepsealabs/libdc-swift.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/deepsealabs/libdc-swift
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 9ea667b update: hwos macro
Cloned https://github.com/deepsealabs/libdc-swift.git
Revision (git rev-parse @):
9ea667b5668e4682976b6abba7554afc4a41274e
SUCCESS checkout https://github.com/deepsealabs/libdc-swift.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/deepsealabs/libdc-swift.git
https://github.com/deepsealabs/libdc-swift.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "LibDCSwift",
  "name" : "LibDCSwift",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "macos",
      "version" : "12.0"
    }
  ],
  "products" : [
    {
      "name" : "LibDCSwift",
      "targets" : [
        "LibDCSwift"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "LibDCBridge",
      "targets" : [
        "LibDCBridge"
      ],
      "type" : {
        "library" : [
          "dynamic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "LibDCSwift",
      "module_type" : "SwiftTarget",
      "name" : "LibDCSwift",
      "path" : "Sources/LibDCSwift",
      "product_memberships" : [
        "LibDCSwift"
      ],
      "sources" : [
        "BLEManager.swift",
        "DiveLogRetriever.swift",
        "LibDCSwift.swift",
        "Logger.swift",
        "Models/DeviceConfiguration.swift",
        "Models/DeviceFingerprint.swift",
        "Models/DiveData.swift",
        "Models/SampleData.swift",
        "Models/StoredDevice.swift",
        "Parser/GenericParser.swift",
        "ViewModels/DiveDataViewModel.swift"
      ],
      "target_dependencies" : [
        "LibDCBridge",
        "Clibdivecomputer"
      ],
      "type" : "library"
    },
    {
      "c99name" : "LibDCBridge",
      "module_type" : "ClangTarget",
      "name" : "LibDCBridge",
      "path" : "Sources/LibDCBridge",
      "product_memberships" : [
        "LibDCSwift",
        "LibDCBridge"
      ],
      "sources" : [
        "src/BLEBridge.m",
        "src/configuredc.c"
      ],
      "target_dependencies" : [
        "Clibdivecomputer"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Clibdivecomputer",
      "module_type" : "ClangTarget",
      "name" : "Clibdivecomputer",
      "path" : "libdivecomputer",
      "product_memberships" : [
        "LibDCSwift",
        "LibDCBridge"
      ],
      "sources" : [
        "src/aes.c",
        "src/array.c",
        "src/atomics_cobalt.c",
        "src/atomics_cobalt_parser.c",
        "src/ble.c",
        "src/bluetooth.c",
        "src/buffer.c",
        "src/checksum.c",
        "src/citizen_aqualand.c",
        "src/citizen_aqualand_parser.c",
        "src/cochran_commander.c",
        "src/cochran_commander_parser.c",
        "src/common.c",
        "src/context.c",
        "src/cressi_edy.c",
        "src/cressi_edy_parser.c",
        "src/cressi_goa.c",
        "src/cressi_goa_parser.c",
        "src/cressi_leonardo.c",
        "src/cressi_leonardo_parser.c",
        "src/custom.c",
        "src/datetime.c",
        "src/deepblu_cosmiq.c",
        "src/deepblu_cosmiq_parser.c",
        "src/deepsix_excursion.c",
        "src/deepsix_excursion_parser.c",
        "src/descriptor.c",
        "src/device.c",
        "src/diverite_nitekq.c",
        "src/diverite_nitekq_parser.c",
        "src/divesoft_freedom.c",
        "src/divesoft_freedom_parser.c",
        "src/divesystem_idive.c",
        "src/divesystem_idive_parser.c",
        "src/halcyon_symbios.c",
        "src/halcyon_symbios_parser.c",
        "src/hdlc.c",
        "src/hw_frog.c",
        "src/hw_ostc.c",
        "src/hw_ostc3.c",
        "src/hw_ostc_parser.c",
        "src/ihex.c",
        "src/iostream.c",
        "src/irda.c",
        "src/iterator.c",
        "src/liquivision_lynx.c",
        "src/liquivision_lynx_parser.c",
        "src/mares_common.c",
        "src/mares_darwin.c",
        "src/mares_darwin_parser.c",
        "src/mares_iconhd.c",
        "src/mares_iconhd_parser.c",
        "src/mares_nemo.c",
        "src/mares_nemo_parser.c",
        "src/mares_puck.c",
        "src/mclean_extreme.c",
        "src/mclean_extreme_parser.c",
        "src/oceanic_atom2.c",
        "src/oceanic_atom2_parser.c",
        "src/oceanic_common.c",
        "src/oceanic_veo250.c",
        "src/oceanic_veo250_parser.c",
        "src/oceanic_vtpro.c",
        "src/oceanic_vtpro_parser.c",
        "src/oceans_s1.c",
        "src/oceans_s1_common.c",
        "src/oceans_s1_parser.c",
        "src/packet.c",
        "src/parser.c",
        "src/pelagic_i330r.c",
        "src/platform.c",
        "src/rbstream.c",
        "src/reefnet_sensus.c",
        "src/reefnet_sensus_parser.c",
        "src/reefnet_sensuspro.c",
        "src/reefnet_sensuspro_parser.c",
        "src/reefnet_sensusultra.c",
        "src/reefnet_sensusultra_parser.c",
        "src/ringbuffer.c",
        "src/seac_screen.c",
        "src/seac_screen_common.c",
        "src/seac_screen_parser.c",
        "src/serial_posix.c",
        "src/shearwater_common.c",
        "src/shearwater_petrel.c",
        "src/shearwater_predator.c",
        "src/shearwater_predator_parser.c",
        "src/socket.c",
        "src/sporasub_sp2.c",
        "src/sporasub_sp2_parser.c",
        "src/suunto_common.c",
        "src/suunto_common2.c",
        "src/suunto_d9.c",
        "src/suunto_d9_parser.c",
        "src/suunto_eon.c",
        "src/suunto_eon_parser.c",
        "src/suunto_eonsteel.c",
        "src/suunto_eonsteel_parser.c",
        "src/suunto_solution.c",
        "src/suunto_solution_parser.c",
        "src/suunto_vyper.c",
        "src/suunto_vyper2.c",
        "src/suunto_vyper_parser.c",
        "src/tecdiving_divecomputereu.c",
        "src/tecdiving_divecomputereu_parser.c",
        "src/timer.c",
        "src/usb.c",
        "src/usbhid.c",
        "src/uwatec_aladin.c",
        "src/uwatec_memomouse.c",
        "src/uwatec_memomouse_parser.c",
        "src/uwatec_smart.c",
        "src/uwatec_smart_parser.c",
        "src/version.c",
        "src/zeagle_n2ition3.c"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.10"
}
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/libdivecomputer/doc': File not found.
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/libdivecomputer/m4': File not found.
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/serial_win32.c': File not found.
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/halcyon_symbios.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[0/121] Compiling halcyon_symbios.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/atomics_cobalt_parser.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[1/121] Compiling atomics_cobalt_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/hw_ostc.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[1/121] Compiling hw_ostc.c
[1/121] Write sources
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/hw_ostc_parser.c:29:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[4/121] Compiling hw_ostc_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/hw_frog.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[5/121] Compiling hw_frog.c
[6/121] Compiling version.c
[7/121] Compiling ble.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/zeagle_n2ition3.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[8/121] Compiling zeagle_n2ition3.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/uwatec_memomouse_parser.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[9/121] Compiling uwatec_memomouse_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/uwatec_smart.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[10/121] Compiling uwatec_smart.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/uwatec_smart_parser.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[11/121] Compiling uwatec_smart_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/halcyon_symbios_parser.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[12/121] Compiling halcyon_symbios_parser.c
[13/121] Write swift-version-2F0A5646E1D333AE.txt
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/uwatec_memomouse.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[14/121] Compiling uwatec_memomouse.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/uwatec_aladin.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[15/121] Compiling uwatec_aladin.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/usb.c:40:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[16/121] Compiling usb.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/usbhid.c:58:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[17/121] Compiling usbhid.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/hdlc.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[18/121] Compiling hdlc.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/hw_ostc3.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[19/121] Compiling hw_ostc3.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/tecdiving_divecomputereu_parser.c:25:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[20/121] Compiling tecdiving_divecomputereu_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/tecdiving_divecomputereu.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[21/121] Compiling tecdiving_divecomputereu.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/suunto_vyper2.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[22/121] Compiling suunto_vyper2.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/suunto_vyper_parser.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[23/121] Compiling suunto_vyper_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/suunto_vyper.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[24/121] Compiling suunto_vyper.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/suunto_solution.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[25/121] Compiling suunto_solution.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/suunto_solution_parser.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[26/121] Compiling suunto_solution_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/suunto_eon_parser.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[27/121] Compiling suunto_eon_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/suunto_eonsteel_parser.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[28/121] Compiling suunto_eonsteel_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/suunto_eonsteel.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[29/121] Compiling suunto_eonsteel.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/suunto_eon.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[30/121] Compiling suunto_eon.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/suunto_d9.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[31/121] Compiling suunto_d9.c
[32/121] Compiling configuredc.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/suunto_d9_parser.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[33/121] Compiling suunto_d9_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/suunto_common2.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[34/121] Compiling suunto_common2.c
[35/121] Compiling suunto_common.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/sporasub_sp2_parser.c:25:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[36/121] Compiling sporasub_sp2_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/sporasub_sp2.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[37/121] Compiling sporasub_sp2.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/shearwater_predator.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[38/121] Compiling shearwater_predator.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/shearwater_petrel.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[39/121] Compiling shearwater_petrel.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/shearwater_predator_parser.c:29:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[40/121] Compiling shearwater_predator_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/shearwater_common.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[41/121] Compiling shearwater_common.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/seac_screen_parser.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[42/121] Compiling seac_screen_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/seac_screen_common.c:23:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[43/121] Compiling seac_screen_common.c
[44/121] Compiling ringbuffer.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/seac_screen.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[45/121] Compiling seac_screen.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/reefnet_sensusultra_parser.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[46/121] Compiling reefnet_sensusultra_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/reefnet_sensuspro_parser.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[47/121] Compiling reefnet_sensuspro_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/reefnet_sensusultra.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[48/121] Compiling reefnet_sensusultra.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/reefnet_sensus_parser.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/reefnet_sensuspro.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[49/121] Compiling reefnet_sensuspro.c
[49/121] Compiling reefnet_sensus_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/reefnet_sensus.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[51/121] Compiling reefnet_sensus.c
[52/121] Compiling platform.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/rbstream.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[53/121] Compiling rbstream.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/pelagic_i330r.c:31:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[54/121] Compiling pelagic_i330r.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/packet.c:29:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[55/121] Compiling packet.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/parser.c:70:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[56/121] Compiling parser.c
[57/121] Compiling oceans_s1_common.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/oceans_s1_parser.c:29:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[58/121] Compiling oceans_s1_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/oceanic_vtpro_parser.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[59/121] Compiling oceanic_vtpro_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/oceans_s1.c:30:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[60/121] Compiling oceans_s1.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/oceanic_vtpro.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[61/121] Compiling oceanic_vtpro.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/oceanic_veo250_parser.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[62/121] Compiling oceanic_veo250_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/oceanic_veo250.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[63/121] Compiling oceanic_veo250.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/oceanic_atom2.c:29:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[64/121] Compiling oceanic_atom2.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/oceanic_common.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[65/121] Compiling oceanic_common.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/mclean_extreme_parser.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[66/121] Compiling mclean_extreme_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/oceanic_atom2_parser.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[67/121] Compiling oceanic_atom2_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/mclean_extreme.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[68/121] Compiling mclean_extreme.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/mares_puck.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[69/121] Compiling mares_puck.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/mares_nemo_parser.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[70/121] Compiling mares_nemo_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/mares_nemo.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[71/121] Compiling mares_nemo.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/mares_iconhd_parser.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[72/121] Compiling mares_iconhd_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/mares_iconhd.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[73/121] Compiling mares_iconhd.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/mares_darwin_parser.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[74/121] Compiling mares_darwin_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/bluetooth.c:51:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/mares_darwin.c:30:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[75/121] Compiling bluetooth.c
[76/121] Compiling mares_darwin.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/mares_common.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[76/121] Compiling mares_common.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/liquivision_lynx_parser.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[78/121] Compiling liquivision_lynx_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/liquivision_lynx.c:29:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[79/121] Compiling liquivision_lynx.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/iterator.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[80/121] Compiling iterator.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/ihex.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[81/121] Compiling ihex.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/iostream.c:29:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[82/121] Compiling iostream.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/irda.c:47:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[83/121] Compiling irda.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/divesystem_idive_parser.c:25:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[84/121] Compiling divesystem_idive_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/divesystem_idive.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[85/121] Compiling divesystem_idive.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/divesoft_freedom_parser.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[86/121] Compiling divesoft_freedom_parser.c
[87/121] Compiling timer.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/diverite_nitekq_parser.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/divesoft_freedom.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[88/121] Compiling diverite_nitekq_parser.c
[89/121] Compiling divesoft_freedom.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/diverite_nitekq.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[90/121] Compiling diverite_nitekq.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/serial_posix.c:57:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[91/121] Compiling serial_posix.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/device.c:72:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[92/121] Compiling device.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/deepsix_excursion_parser.c:30:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[93/121] Compiling deepsix_excursion_parser.c
[94/121] Compiling descriptor.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/deepsix_excursion.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[95/121] Compiling deepsix_excursion.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/deepblu_cosmiq_parser.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[96/121] Compiling deepblu_cosmiq_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/deepblu_cosmiq.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[97/121] Compiling deepblu_cosmiq.c
[98/121] Compiling datetime.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/socket.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[99/121] Compiling socket.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/custom.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[100/121] Compiling custom.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/cressi_leonardo_parser.c:25:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[101/121] Compiling cressi_leonardo_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/cressi_leonardo.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/cressi_goa_parser.c:25:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[102/121] Compiling cressi_leonardo.c
[102/121] Compiling cressi_goa_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/cressi_goa.c:29:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[104/121] Compiling cressi_goa.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/cressi_edy_parser.c:25:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[105/121] Compiling cressi_edy_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context.c:37:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[106/121] Compiling context.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/cressi_edy.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[107/121] Compiling cressi_edy.c
[108/121] Compiling common.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/cochran_commander_parser.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[109/121] Compiling cochran_commander_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/cochran_commander.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[110/121] Compiling cochran_commander.c
[111/121] Compiling checksum.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/citizen_aqualand.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[112/121] Compiling citizen_aqualand.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/citizen_aqualand_parser.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[113/121] Compiling citizen_aqualand_parser.c
[114/121] Compiling buffer.c
[115/121] Compiling array.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/atomics_cobalt.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[116/121] Compiling atomics_cobalt.c
[117/121] Compiling aes.c
[118/121] Compiling BLEBridge.m
[119/121] Write Objects.LinkFileList
[120/132] Linking libLibDCBridge.dylib
[122/132] Compiling LibDCSwift Logger.swift
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/Logger.swift:20:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
 17 | }
 18 |
 19 | public class Logger {
    |              `- note: class 'Logger' does not conform to the 'Sendable' protocol
 20 |     public static let shared = Logger()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 21 |     private var isEnabled = true
 22 |     private var minLevel: LogLevel = .debug
[123/132] Compiling LibDCSwift LibDCSwift.swift
[124/133] Compiling LibDCSwift StoredDevice.swift
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/Models/StoredDevice.swift:56:22: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DeviceStorage' may have shared mutable state; this is an error in the Swift 6 language mode
 53 | }
 54 |
 55 | @objc public class DeviceStorage: NSObject {
    |                    `- note: class 'DeviceStorage' does not conform to the 'Sendable' protocol
 56 |    public static let shared = DeviceStorage()
    |                      |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DeviceStorage' may have shared mutable state; this is an error in the Swift 6 language mode
    |                      |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 57 |
 58 |    private let defaults = UserDefaults.standard
[125/133] Compiling LibDCSwift GenericParser.swift
[126/133] Emitting module LibDCSwift
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:38:24: warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'CoreBluetoothManager' may have shared mutable state; this is an error in the Swift 6 language mode
 34 | /// Manages device discovery, connection, and data transfer with BLE dive computers.
 35 | @objc(CoreBluetoothManager)
 36 | public class CoreBluetoothManager: NSObject, CoreBluetoothManagerProtocol, ObservableObject, CBCentralManagerDelegate, CBPeripheralDelegate {
    |              `- note: class 'CoreBluetoothManager' does not conform to the 'Sendable' protocol
 37 |     // MARK: - Singleton
 38 |     private static let sharedInstance = CoreBluetoothManager()
    |                        |- warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'CoreBluetoothManager' may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: add '@MainActor' to make static property 'sharedInstance' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 39 |
 40 |     @objc public static func shared() -> Any! {
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:210:24: warning: static property 'currentContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
208 |     }
209 |
210 |     private static var currentContext: CallbackContext?
    |                        |- warning: static property 'currentContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'currentContext' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'currentContext' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
211 |
212 |     public static func retrieveDiveLogs(
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/Logger.swift:20:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
 17 | }
 18 |
 19 | public class Logger {
    |              `- note: class 'Logger' does not conform to the 'Sendable' protocol
 20 |     public static let shared = Logger()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 21 |     private var isEnabled = true
 22 |     private var minLevel: LogLevel = .debug
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/Models/DeviceConfiguration.swift:26:23: warning: static property 'supportedModels' is not concurrency-safe because non-'Sendable' type '[DeviceConfiguration.ComputerModel]' may have shared mutable state; this is an error in the Swift 6 language mode
  7 |
  8 |     // Helper struct for UI Selection
  9 |     public struct ComputerModel: Identifiable, Hashable {
    |                   `- note: consider making struct 'ComputerModel' conform to the 'Sendable' protocol
 10 |         public let id = UUID()
 11 |         public let name: String
    :
 24 |
 25 |     // List of selectable models for the UI
 26 |     public static let supportedModels: [ComputerModel] = [
    |                       |- warning: static property 'supportedModels' is not concurrency-safe because non-'Sendable' type '[DeviceConfiguration.ComputerModel]' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'supportedModels' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 27 |         // Shearwater computers
 28 |         ComputerModel(name: "Shearwater Peregrine", family: .shearwaterPetrel, modelID: 9),
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/Models/DeviceConfiguration.swift:187:24: warning: static property 'knownServiceUUIDs' is not concurrency-safe because non-'Sendable' type '[CBUUID]' may have shared mutable state; this is an error in the Swift 6 language mode
185 |
186 |     /// Known BLE service UUIDs for supported dive computers.
187 |     private static let knownServiceUUIDs: [CBUUID] = [
    |                        `- warning: static property 'knownServiceUUIDs' is not concurrency-safe because non-'Sendable' type '[CBUUID]' may have shared mutable state; this is an error in the Swift 6 language mode
188 |         CBUUID(string: "0000fefb-0000-1000-8000-00805f9b34fb"), // Heinrichs-Weikamp Telit/Stollmann
189 |         CBUUID(string: "2456e1b9-26e2-8f83-e744-f34f01e9d701"), // Heinrichs-Weikamp U-Blox
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBUUID.h:85:28: note: class 'CBUUID' does not conform to the 'Sendable' protocol
 83 |  */
 84 | NS_CLASS_AVAILABLE(10_7, 5_0)
 85 | CB_EXTERN_CLASS @interface CBUUID : NSObject <NSCopying>
    |                            `- note: class 'CBUUID' does not conform to the 'Sendable' protocol
 86 |
 87 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/Models/DeviceConfiguration.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  1 | import Foundation
  2 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  3 | import Clibdivecomputer
  4 | import LibDCBridge
    :
185 |
186 |     /// Known BLE service UUIDs for supported dive computers.
187 |     private static let knownServiceUUIDs: [CBUUID] = [
    |                        |- note: add '@MainActor' to make static property 'knownServiceUUIDs' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
188 |         CBUUID(string: "0000fefb-0000-1000-8000-00805f9b34fb"), // Heinrichs-Weikamp Telit/Stollmann
189 |         CBUUID(string: "2456e1b9-26e2-8f83-e744-f34f01e9d701"), // Heinrichs-Weikamp U-Blox
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/Models/DeviceConfiguration.swift:419:24: warning: static property 'context' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
417 |
418 |     private var descriptor: OpaquePointer?
419 |     private static var context: OpaquePointer?
    |                        |- warning: static property 'context' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'context' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'context' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
420 |
421 |     public static func setupContext() {
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/Models/DeviceFingerprint.swift:24:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DeviceFingerprintStorage' may have shared mutable state; this is an error in the Swift 6 language mode
 21 |
 22 | /// Manages persistent storage of device fingerprints
 23 | public class DeviceFingerprintStorage {
    |              `- note: class 'DeviceFingerprintStorage' does not conform to the 'Sendable' protocol
 24 |     public static let shared = DeviceFingerprintStorage()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DeviceFingerprintStorage' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 25 |     private let fingerprintKey = "DeviceFingerprints"
 26 |
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/Models/StoredDevice.swift:56:22: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DeviceStorage' may have shared mutable state; this is an error in the Swift 6 language mode
 53 | }
 54 |
 55 | @objc public class DeviceStorage: NSObject {
    |                    `- note: class 'DeviceStorage' does not conform to the 'Sendable' protocol
 56 |    public static let shared = DeviceStorage()
    |                      |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DeviceStorage' may have shared mutable state; this is an error in the Swift 6 language mode
    |                      |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 57 |
 58 |    private let defaults = UserDefaults.standard
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:34:29: warning: static property 'activeInstance' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 32 |
 33 |     private let fingerprintKey = "DeviceFingerprints"
 34 |     private static weak var activeInstance: DiveDataViewModel?
    |                             |- warning: static property 'activeInstance' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                             |- note: convert 'activeInstance' to a 'let' constant to make 'Sendable' shared state immutable
    |                             |- note: add '@MainActor' to make static property 'activeInstance' part of global actor 'MainActor'
    |                             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 35 |     public weak var persistence: DiveDataPersistence?
 36 |
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:151:17: warning: sending 'context' risks causing data races; this is an error in the Swift 6 language mode
149 |
150 |             DispatchQueue.main.async {
151 |                 context.viewModel.appendDives([diveData])
    |                 |- warning: sending 'context' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'context' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
152 |                 context.viewModel.updateProgress(count: context.logCount)
153 |             }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:151:48: warning: sending 'diveData' risks causing data races; this is an error in the Swift 6 language mode
149 |
150 |             DispatchQueue.main.async {
151 |                 context.viewModel.appendDives([diveData])
    |                                                |- warning: sending 'diveData' risks causing data races; this is an error in the Swift 6 language mode
    |                                                `- note: task-isolated 'diveData' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
152 |                 context.viewModel.updateProgress(count: context.logCount)
153 |             }
[127/133] Compiling LibDCSwift DiveDataViewModel.swift
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:34:29: warning: static property 'activeInstance' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 32 |
 33 |     private let fingerprintKey = "DeviceFingerprints"
 34 |     private static weak var activeInstance: DiveDataViewModel?
    |                             |- warning: static property 'activeInstance' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                             |- note: convert 'activeInstance' to a 'let' constant to make 'Sendable' shared state immutable
    |                             |- note: add '@MainActor' to make static property 'activeInstance' part of global actor 'MainActor'
    |                             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 35 |     public weak var persistence: DiveDataPersistence?
 36 |
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:225:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
223 |             )
224 |             DispatchQueue.main.async {
225 |                 self.dives.append(dive)
    |                 |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
226 |                 if case .inProgress = self.progress {
227 |                     self.progress = .inProgress(self.dives.count)
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:235:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
233 |     public func updateStatus(_ newStatus: String) {
234 |         DispatchQueue.main.async {
235 |             self.status = newStatus
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
236 |         }
237 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:241:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
239 |     public func updateProgress(_ progress: DownloadProgress) {
240 |         DispatchQueue.main.async {
241 |             self.progress = progress
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
242 |         }
243 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:241:29: warning: sending 'progress' risks causing data races; this is an error in the Swift 6 language mode
239 |     public func updateProgress(_ progress: DownloadProgress) {
240 |         DispatchQueue.main.async {
241 |             self.progress = progress
    |                             |- warning: sending 'progress' risks causing data races; this is an error in the Swift 6 language mode
    |                             `- note: task-isolated 'progress' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
242 |         }
243 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:249:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
247 |             // Don't show dive number during download since dives arrive newest-first
248 |             // and we renumber them after download (oldest = #1)
249 |             self.status = "Downloading dive \(count)..."
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
250 |             self.progress = .inProgress(count)
251 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:256:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
254 |     public func setError(_ message: String) {
255 |         DispatchQueue.main.async {
256 |             self.progress = .failed(message)
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
257 |         }
258 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:262:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
260 |     public func clear() {
261 |         DispatchQueue.main.async {
262 |             self.dives.removeAll()
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
263 |             self.hasNewDives = false
264 |             self.resetProgress()
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:372:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
370 |     public func resetProgress() {
371 |         DispatchQueue.main.async {
372 |             self.progress = .notStarted
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
373 |             self.status = ""
374 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:311:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
309 |             }
310 |
311 |             self.progress = .failed(errorMessage)
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
312 |         }
313 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:317:17: warning: sending 'newDives' risks causing data races; this is an error in the Swift 6 language mode
315 |     public func appendDives(_ newDives: [DiveData]) {
316 |         DispatchQueue.main.async {
317 |             if !newDives.isEmpty {
    |                 |- warning: sending 'newDives' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'newDives' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
318 |                 self.hasNewDives = true
319 |             }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:318:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
316 |         DispatchQueue.main.async {
317 |             if !newDives.isEmpty {
318 |                 self.hasNewDives = true
    |                 |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
319 |             }
320 |             self.dives.append(contentsOf: newDives)
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:332:20: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
330 |     public func finalizeDiveNumbering() {
331 |         DispatchQueue.main.async {
332 |             guard !self.dives.isEmpty else { return }
    |                    |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                    `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
333 |
334 |             // Sort by datetime (oldest first)
[128/133] Compiling LibDCSwift DeviceFingerprint.swift
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/Models/DeviceFingerprint.swift:24:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DeviceFingerprintStorage' may have shared mutable state; this is an error in the Swift 6 language mode
 21 |
 22 | /// Manages persistent storage of device fingerprints
 23 | public class DeviceFingerprintStorage {
    |              `- note: class 'DeviceFingerprintStorage' does not conform to the 'Sendable' protocol
 24 |     public static let shared = DeviceFingerprintStorage()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'DeviceFingerprintStorage' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 25 |     private let fingerprintKey = "DeviceFingerprints"
 26 |
[129/133] Compiling LibDCSwift SampleData.swift
[130/133] Compiling LibDCSwift DeviceConfiguration.swift
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/Models/DeviceConfiguration.swift:26:23: warning: static property 'supportedModels' is not concurrency-safe because non-'Sendable' type '[DeviceConfiguration.ComputerModel]' may have shared mutable state; this is an error in the Swift 6 language mode
  7 |
  8 |     // Helper struct for UI Selection
  9 |     public struct ComputerModel: Identifiable, Hashable {
    |                   `- note: consider making struct 'ComputerModel' conform to the 'Sendable' protocol
 10 |         public let id = UUID()
 11 |         public let name: String
    :
 24 |
 25 |     // List of selectable models for the UI
 26 |     public static let supportedModels: [ComputerModel] = [
    |                       |- warning: static property 'supportedModels' is not concurrency-safe because non-'Sendable' type '[DeviceConfiguration.ComputerModel]' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'supportedModels' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 27 |         // Shearwater computers
 28 |         ComputerModel(name: "Shearwater Peregrine", family: .shearwaterPetrel, modelID: 9),
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/Models/DeviceConfiguration.swift:187:24: warning: static property 'knownServiceUUIDs' is not concurrency-safe because non-'Sendable' type '[CBUUID]' may have shared mutable state; this is an error in the Swift 6 language mode
185 |
186 |     /// Known BLE service UUIDs for supported dive computers.
187 |     private static let knownServiceUUIDs: [CBUUID] = [
    |                        `- warning: static property 'knownServiceUUIDs' is not concurrency-safe because non-'Sendable' type '[CBUUID]' may have shared mutable state; this is an error in the Swift 6 language mode
188 |         CBUUID(string: "0000fefb-0000-1000-8000-00805f9b34fb"), // Heinrichs-Weikamp Telit/Stollmann
189 |         CBUUID(string: "2456e1b9-26e2-8f83-e744-f34f01e9d701"), // Heinrichs-Weikamp U-Blox
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBUUID.h:85:28: note: class 'CBUUID' does not conform to the 'Sendable' protocol
 83 |  */
 84 | NS_CLASS_AVAILABLE(10_7, 5_0)
 85 | CB_EXTERN_CLASS @interface CBUUID : NSObject <NSCopying>
    |                            `- note: class 'CBUUID' does not conform to the 'Sendable' protocol
 86 |
 87 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/Models/DeviceConfiguration.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  1 | import Foundation
  2 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  3 | import Clibdivecomputer
  4 | import LibDCBridge
    :
185 |
186 |     /// Known BLE service UUIDs for supported dive computers.
187 |     private static let knownServiceUUIDs: [CBUUID] = [
    |                        |- note: add '@MainActor' to make static property 'knownServiceUUIDs' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
188 |         CBUUID(string: "0000fefb-0000-1000-8000-00805f9b34fb"), // Heinrichs-Weikamp Telit/Stollmann
189 |         CBUUID(string: "2456e1b9-26e2-8f83-e744-f34f01e9d701"), // Heinrichs-Weikamp U-Blox
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/Models/DeviceConfiguration.swift:419:24: warning: static property 'context' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
417 |
418 |     private var descriptor: OpaquePointer?
419 |     private static var context: OpaquePointer?
    |                        |- warning: static property 'context' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'context' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'context' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
420 |
421 |     public static func setupContext() {
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/Models/DeviceConfiguration.swift:337:44: warning: capture of 'dcDevice' with non-sendable type 'OpaquePointer' in a '@Sendable' closure
335 |             // Call dc_device_foreach with our minimal callback
336 |             // This will trigger DC_EVENT_DEVINFO but stop before downloading any dives
337 |             let status = dc_device_foreach(dcDevice, minimalCallback, nil)
    |                                            `- warning: capture of 'dcDevice' with non-sendable type 'OpaquePointer' in a '@Sendable' closure
338 |
339 |             DispatchQueue.main.async {
Swift.OpaquePointer:1:23: note: struct 'OpaquePointer' does not conform to the 'Sendable' protocol
1 | @frozen public struct OpaquePointer {
  |                       `- note: struct 'OpaquePointer' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/Models/DeviceConfiguration.swift:342:24: warning: capture of 'deviceDataPtr' with non-sendable type 'UnsafeMutablePointer<device_data_t>' in a '@Sendable' closure
340 |                 if status == DC_STATUS_SUCCESS || status == DC_STATUS_PROTOCOL {
341 |                     // DC_STATUS_PROTOCOL is expected when we return 0 from callback
342 |                     if deviceDataPtr.pointee.have_devinfo != 0 {
    |                        `- warning: capture of 'deviceDataPtr' with non-sendable type 'UnsafeMutablePointer<device_data_t>' in a '@Sendable' closure
343 |                         let serial = String(format: "%08x", deviceDataPtr.pointee.devinfo.serial)
344 |                         let model = deviceDataPtr.pointee.devinfo.model
Swift.UnsafeMutablePointer:1:23: note: generic struct 'UnsafeMutablePointer' does not conform to the 'Sendable' protocol
1 | @frozen public struct UnsafeMutablePointer<Pointee> : Copyable where Pointee : ~Copyable {
  |                       `- note: generic struct 'UnsafeMutablePointer' does not conform to the 'Sendable' protocol
2 |     public let _rawValue: Builtin.RawPointer
3 |     public init(_ _rawValue: Builtin.RawPointer)
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/Models/DeviceConfiguration.swift:346:25: warning: capture of 'completion' with non-sendable type '(Bool) -> Void' in a '@Sendable' closure
344 |                         let model = deviceDataPtr.pointee.devinfo.model
345 |                         logInfo("✅ Device info fetched - Serial: \(serial), Model: \(model)")
346 |                         completion(true)
    |                         |- warning: capture of 'completion' with non-sendable type '(Bool) -> Void' in a '@Sendable' closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
347 |                     } else {
348 |                         logWarning("⚠️ Device info not available after enumeration")
[131/133] Compiling LibDCSwift DiveData.swift
[132/133] Compiling LibDCSwift BLEManager.swift
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:38:24: warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'CoreBluetoothManager' may have shared mutable state; this is an error in the Swift 6 language mode
 34 | /// Manages device discovery, connection, and data transfer with BLE dive computers.
 35 | @objc(CoreBluetoothManager)
 36 | public class CoreBluetoothManager: NSObject, CoreBluetoothManagerProtocol, ObservableObject, CBCentralManagerDelegate, CBPeripheralDelegate {
    |              `- note: class 'CoreBluetoothManager' does not conform to the 'Sendable' protocol
 37 |     // MARK: - Singleton
 38 |     private static let sharedInstance = CoreBluetoothManager()
    |                        |- warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'CoreBluetoothManager' may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: add '@MainActor' to make static property 'sharedInstance' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 39 |
 40 |     @objc public static func shared() -> Any! {
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:517:20: warning: value 'knownService' was defined but never used; consider replacing with boolean test
515 |             }
516 |
517 |             if let knownService = isKnownSerialService(service.uuid) {
    |                    `- warning: value 'knownService' was defined but never used; consider replacing with boolean test
518 |                 preferredService = service
519 |                 writeCharacteristic = nil
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:210:24: warning: static property 'currentContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
208 |     }
209 |
210 |     private static var currentContext: CallbackContext?
    |                        |- warning: static property 'currentContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'currentContext' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'currentContext' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
211 |
212 |     public static func retrieveDiveLogs(
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:223:44: warning: capture of 'viewModel' with non-sendable type 'DiveDataViewModel' in a '@Sendable' closure
221 |
222 |             retrievalQueue.async {
223 |                 DispatchQueue.main.async { viewModel.resetProgress() }
    |                                            `- warning: capture of 'viewModel' with non-sendable type 'DiveDataViewModel' in a '@Sendable' closure
224 |
225 |                 guard let dcDevice = devicePtr.pointee.device else {
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:16:14: note: class 'DiveDataViewModel' does not conform to the 'Sendable' protocol
 14 | /// View model for managing dive data and device fingerprints.
 15 | /// Handles storage, retrieval, and state management for dive logs and device identification.
 16 | public class DiveDataViewModel: ObservableObject {
    |              `- note: class 'DiveDataViewModel' does not conform to the 'Sendable' protocol
 17 |     @Published public var dives: [DiveData] = []
 18 |     @Published public var status: String = ""
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:225:38: warning: capture of 'devicePtr' with non-sendable type 'UnsafeMutablePointer<device_data_t>' in a '@Sendable' closure
223 |                 DispatchQueue.main.async { viewModel.resetProgress() }
224 |
225 |                 guard let dcDevice = devicePtr.pointee.device else {
    |                                      `- warning: capture of 'devicePtr' with non-sendable type 'UnsafeMutablePointer<device_data_t>' in a '@Sendable' closure
226 |                     DispatchQueue.main.async {
227 |                         viewModel.setDetailedError("No device connection found", status: DC_STATUS_IO)
Swift.UnsafeMutablePointer:1:23: note: generic struct 'UnsafeMutablePointer' does not conform to the 'Sendable' protocol
1 | @frozen public struct UnsafeMutablePointer<Pointee> : Copyable where Pointee : ~Copyable {
  |                       `- note: generic struct 'UnsafeMutablePointer' does not conform to the 'Sendable' protocol
2 |     public let _rawValue: Builtin.RawPointer
3 |     public init(_ _rawValue: Builtin.RawPointer)
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:228:25: warning: capture of 'completion' with non-sendable type '(Bool) -> Void' in a '@Sendable' closure
226 |                     DispatchQueue.main.async {
227 |                         viewModel.setDetailedError("No device connection found", status: DC_STATUS_IO)
228 |                         completion(false)
    |                         |- warning: capture of 'completion' with non-sendable type '(Bool) -> Void' in a '@Sendable' closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
229 |                     }
230 |                     return
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:233:34: warning: capture of 'device' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
231 |                 }
232 |
233 |                 let deviceName = device.name ?? "Unknown Device"
    |                                  `- warning: capture of 'device' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
234 |
235 |                 // Get device type from stored configuration (user-selected) for consistent fingerprint lookups
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBPeripheral.h:55:28: note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 53 |  */
 54 | NS_CLASS_AVAILABLE(10_7, 5_0)
 55 | CB_EXTERN_CLASS @interface CBPeripheral : CBPeer
    |                            `- note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 56 |
 57 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  1 | import Foundation
  2 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  3 | import Clibdivecomputer
  4 | import LibDCBridge
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:258:39: warning: capture of 'bluetoothManager' with non-sendable type 'CoreBluetoothManager' in a '@Sendable' closure
256 |                     deviceUUID: device.identifier.uuidString,
257 |                     storedFingerprint: storedFingerprint,
258 |                     bluetoothManager: bluetoothManager
    |                                       `- warning: capture of 'bluetoothManager' with non-sendable type 'CoreBluetoothManager' in a '@Sendable' closure
259 |                 )
260 |                 context.devicePtr = devicePtr
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:36:14: note: class 'CoreBluetoothManager' does not conform to the 'Sendable' protocol
 34 | /// Manages device discovery, connection, and data transfer with BLE dive computers.
 35 | @objc(CoreBluetoothManager)
 36 | public class CoreBluetoothManager: NSObject, CoreBluetoothManagerProtocol, ObservableObject, CBCentralManagerDelegate, CBPeripheralDelegate {
    |              `- note: class 'CoreBluetoothManager' does not conform to the 'Sendable' protocol
 37 |     // MARK: - Singleton
 38 |     private static let sharedInstance = CoreBluetoothManager()
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:266:25: warning: capture of 'onProgress' with non-sendable type '((Int, Int) -> Void)?' in a '@Sendable' closure
264 |                 let progressTimer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
265 |                     if devicePtr.pointee.have_progress != 0 {
266 |                         onProgress?(Int(devicePtr.pointee.progress.current), Int(devicePtr.pointee.progress.maximum))
    |                         |- warning: capture of 'onProgress' with non-sendable type '((Int, Int) -> Void)?' in a '@Sendable' closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
267 |                     }
268 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:265:24: warning: capture of 'devicePtr' with non-sendable type 'UnsafeMutablePointer<device_data_t>' in a '@Sendable' closure
263 |
264 |                 let progressTimer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
265 |                     if devicePtr.pointee.have_progress != 0 {
    |                        `- warning: capture of 'devicePtr' with non-sendable type 'UnsafeMutablePointer<device_data_t>' in a '@Sendable' closure
266 |                         onProgress?(Int(devicePtr.pointee.progress.current), Int(devicePtr.pointee.progress.maximum))
267 |                     }
Swift.UnsafeMutablePointer:1:23: note: generic struct 'UnsafeMutablePointer' does not conform to the 'Sendable' protocol
1 | @frozen public struct UnsafeMutablePointer<Pointee> : Copyable where Pointee : ~Copyable {
  |                       `- note: generic struct 'UnsafeMutablePointer' does not conform to the 'Sendable' protocol
2 |     public let _rawValue: Builtin.RawPointer
3 |     public init(_ _rawValue: Builtin.RawPointer)
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:266:25: warning: capture of 'onProgress' with non-sendable type '((Int, Int) -> Void)?' in a '@Sendable' closure
264 |                 let progressTimer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
265 |                     if devicePtr.pointee.have_progress != 0 {
266 |                         onProgress?(Int(devicePtr.pointee.progress.current), Int(devicePtr.pointee.progress.maximum))
    |                         |- warning: capture of 'onProgress' with non-sendable type '((Int, Int) -> Void)?' in a '@Sendable' closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
267 |                     }
268 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:261:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
259 |         isDisconnecting = true
260 |         DispatchQueue.main.async {
261 |             self.isPeripheralReady = false
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
262 |             self.connectedDevice = nil
263 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:294:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
292 |
293 |         DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
294 |             self.isDisconnecting = false
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
295 |         }
296 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:336:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
334 |     public func clearRetrievalState() {
335 |         DispatchQueue.main.async { [weak self] in
336 |             self?.isRetrievingLogs = false
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
337 |             self?.currentRetrievalDevice = nil
338 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:383:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
381 |         logInfo("Performing system-level disconnect for \(peripheral.name ?? "Unknown Device")")
382 |         DispatchQueue.main.async {
383 |             self.isPeripheralReady = false
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
384 |             self.connectedDevice = nil
385 |             self.writeCharacteristic = nil
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:394:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
392 |     public func clearDiscoveredPeripherals() {
393 |         DispatchQueue.main.async {
394 |             self.discoveredPeripherals.removeAll()
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
395 |         }
396 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:400:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
398 |     public func addDiscoveredPeripheral(_ peripheral: CBPeripheral) {
399 |         DispatchQueue.main.async {
400 |             if !self.discoveredPeripherals.contains(where: { $0.identifier == peripheral.identifier }) {
    |                 |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
401 |                 self.discoveredPeripherals.append(peripheral)
402 |             }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:400:79: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
398 |     public func addDiscoveredPeripheral(_ peripheral: CBPeripheral) {
399 |         DispatchQueue.main.async {
400 |             if !self.discoveredPeripherals.contains(where: { $0.identifier == peripheral.identifier }) {
    |                                                                               |- warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
    |                                                                               `- note: task-isolated 'peripheral' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
401 |                 self.discoveredPeripherals.append(peripheral)
402 |             }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:447:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
445 |         peripheral.delegate = self
446 |         DispatchQueue.main.async {
447 |             self.isPeripheralReady = true
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
448 |             self.connectedDevice = peripheral
449 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:448:36: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
446 |         DispatchQueue.main.async {
447 |             self.isPeripheralReady = true
448 |             self.connectedDevice = peripheral
    |                                    |- warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: task-isolated 'peripheral' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
449 |         }
450 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:463:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
461 |
462 |         DispatchQueue.main.async {
463 |             self.isPeripheralReady = false
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
464 |             self.connectedDevice = nil
465 |
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:472:82: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
470 |             if !self.isDisconnecting && !self.isRetrievingLogs && !self.isConnecting {
471 |                 // Attempt to reconnect if this was a stored device
472 |                 if let storedDevice = DeviceStorage.shared.getStoredDevice(uuid: peripheral.identifier.uuidString) {
    |                                                                                  |- warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
    |                                                                                  `- note: task-isolated 'peripheral' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
473 |                     logInfo("Attempting to reconnect to stored device")
474 |                     _ = DeviceConfiguration.openBLEDevice(
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:151:17: warning: sending 'context' risks causing data races; this is an error in the Swift 6 language mode
149 |
150 |             DispatchQueue.main.async {
151 |                 context.viewModel.appendDives([diveData])
    |                 |- warning: sending 'context' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'context' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
152 |                 context.viewModel.updateProgress(count: context.logCount)
153 |             }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:151:48: warning: sending 'diveData' risks causing data races; this is an error in the Swift 6 language mode
149 |
150 |             DispatchQueue.main.async {
151 |                 context.viewModel.appendDives([diveData])
    |                                                |- warning: sending 'diveData' risks causing data races; this is an error in the Swift 6 language mode
    |                                                `- note: task-isolated 'diveData' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
152 |                 context.viewModel.updateProgress(count: context.logCount)
153 |             }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:304:49: warning: sending 'context' risks causing data races; this is an error in the Swift 6 language mode
293 |                 progressTimer.invalidate()
294 |
295 |                 DispatchQueue.main.async {
    |                                          `- note: access can happen concurrently
296 |                     // Determine the outcome of the download
297 |                     let downloadSucceeded: Bool
    :
302 |                         // Normal successful completion
303 |                         downloadSucceeded = true
304 |                         shouldSaveFingerprint = context.hasNewDives
    |                                                 |- warning: sending 'context' risks causing data races; this is an error in the Swift 6 language mode
    |                                                 `- note: 'context' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
305 |
306 |                     case DC_STATUS_PROTOCOL:
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:336:25: warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
293 |                 progressTimer.invalidate()
294 |
295 |                 DispatchQueue.main.async {
    |                                          `- note: access can happen concurrently
296 |                     // Determine the outcome of the download
297 |                     let downloadSucceeded: Bool
    :
334 |                     // Handle the outcome
335 |                     if !downloadSucceeded {
336 |                         viewModel.setDetailedError("Download incomplete - DC_STATUS error code: \(enumStatus)", status: enumStatus)
    |                         |- warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
    |                         `- note: 'viewModel' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
337 |                         completion(false)
338 |                     } else {
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:365:59: warning: sending 'contextPtr' risks causing data races; this is an error in the Swift 6 language mode
363 |
364 |                     context.isCompleted = true
365 |                     Unmanaged<CallbackContext>.fromOpaque(contextPtr).release()
    |                                                           |- warning: sending 'contextPtr' risks causing data races; this is an error in the Swift 6 language mode
    |                                                           `- note: 'contextPtr' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
366 |
367 |                     #if os(iOS)
    :
370 |                 }
371 |
372 |                 currentContext = context
    |                                  `- note: access can happen concurrently
373 |             }
374 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:223:44: warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
221 |
222 |             retrievalQueue.async {
223 |                 DispatchQueue.main.async { viewModel.resetProgress() }
    |                                            |- warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
    |                                            `- note: 'viewModel' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
224 |
225 |                 guard let dcDevice = devicePtr.pointee.device else {
226 |                     DispatchQueue.main.async {
    |                                              `- note: access can happen concurrently
227 |                         viewModel.setDetailedError("No device connection found", status: DC_STATUS_IO)
228 |                         completion(false)
    :
248 |                     let serial = String(format: "%08x", devicePtr.pointee.devinfo.serial)
249 |                     DeviceStorage.shared.updateDeviceSerial(uuid: device.identifier.uuidString, serial: serial)
250 |                     storedFingerprint = viewModel.getFingerprint(forDeviceType: deviceTypeForFingerprint, serial: serial)
    |                                                   `- note: access can happen concurrently
251 |                 }
252 |
253 |                 let context = CallbackContext(
    |                               `- note: access can happen concurrently
254 |                     viewModel: viewModel,
255 |                     deviceName: deviceName,
[133/133] Compiling LibDCSwift DiveLogRetriever.swift
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:38:24: warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'CoreBluetoothManager' may have shared mutable state; this is an error in the Swift 6 language mode
 34 | /// Manages device discovery, connection, and data transfer with BLE dive computers.
 35 | @objc(CoreBluetoothManager)
 36 | public class CoreBluetoothManager: NSObject, CoreBluetoothManagerProtocol, ObservableObject, CBCentralManagerDelegate, CBPeripheralDelegate {
    |              `- note: class 'CoreBluetoothManager' does not conform to the 'Sendable' protocol
 37 |     // MARK: - Singleton
 38 |     private static let sharedInstance = CoreBluetoothManager()
    |                        |- warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'CoreBluetoothManager' may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: add '@MainActor' to make static property 'sharedInstance' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 39 |
 40 |     @objc public static func shared() -> Any! {
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:517:20: warning: value 'knownService' was defined but never used; consider replacing with boolean test
515 |             }
516 |
517 |             if let knownService = isKnownSerialService(service.uuid) {
    |                    `- warning: value 'knownService' was defined but never used; consider replacing with boolean test
518 |                 preferredService = service
519 |                 writeCharacteristic = nil
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:210:24: warning: static property 'currentContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
208 |     }
209 |
210 |     private static var currentContext: CallbackContext?
    |                        |- warning: static property 'currentContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'currentContext' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'currentContext' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
211 |
212 |     public static func retrieveDiveLogs(
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:223:44: warning: capture of 'viewModel' with non-sendable type 'DiveDataViewModel' in a '@Sendable' closure
221 |
222 |             retrievalQueue.async {
223 |                 DispatchQueue.main.async { viewModel.resetProgress() }
    |                                            `- warning: capture of 'viewModel' with non-sendable type 'DiveDataViewModel' in a '@Sendable' closure
224 |
225 |                 guard let dcDevice = devicePtr.pointee.device else {
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:16:14: note: class 'DiveDataViewModel' does not conform to the 'Sendable' protocol
 14 | /// View model for managing dive data and device fingerprints.
 15 | /// Handles storage, retrieval, and state management for dive logs and device identification.
 16 | public class DiveDataViewModel: ObservableObject {
    |              `- note: class 'DiveDataViewModel' does not conform to the 'Sendable' protocol
 17 |     @Published public var dives: [DiveData] = []
 18 |     @Published public var status: String = ""
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:225:38: warning: capture of 'devicePtr' with non-sendable type 'UnsafeMutablePointer<device_data_t>' in a '@Sendable' closure
223 |                 DispatchQueue.main.async { viewModel.resetProgress() }
224 |
225 |                 guard let dcDevice = devicePtr.pointee.device else {
    |                                      `- warning: capture of 'devicePtr' with non-sendable type 'UnsafeMutablePointer<device_data_t>' in a '@Sendable' closure
226 |                     DispatchQueue.main.async {
227 |                         viewModel.setDetailedError("No device connection found", status: DC_STATUS_IO)
Swift.UnsafeMutablePointer:1:23: note: generic struct 'UnsafeMutablePointer' does not conform to the 'Sendable' protocol
1 | @frozen public struct UnsafeMutablePointer<Pointee> : Copyable where Pointee : ~Copyable {
  |                       `- note: generic struct 'UnsafeMutablePointer' does not conform to the 'Sendable' protocol
2 |     public let _rawValue: Builtin.RawPointer
3 |     public init(_ _rawValue: Builtin.RawPointer)
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:228:25: warning: capture of 'completion' with non-sendable type '(Bool) -> Void' in a '@Sendable' closure
226 |                     DispatchQueue.main.async {
227 |                         viewModel.setDetailedError("No device connection found", status: DC_STATUS_IO)
228 |                         completion(false)
    |                         |- warning: capture of 'completion' with non-sendable type '(Bool) -> Void' in a '@Sendable' closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
229 |                     }
230 |                     return
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:233:34: warning: capture of 'device' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
231 |                 }
232 |
233 |                 let deviceName = device.name ?? "Unknown Device"
    |                                  `- warning: capture of 'device' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
234 |
235 |                 // Get device type from stored configuration (user-selected) for consistent fingerprint lookups
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBPeripheral.h:55:28: note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 53 |  */
 54 | NS_CLASS_AVAILABLE(10_7, 5_0)
 55 | CB_EXTERN_CLASS @interface CBPeripheral : CBPeer
    |                            `- note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 56 |
 57 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  1 | import Foundation
  2 | import CoreBluetooth
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreBluetooth'
  3 | import Clibdivecomputer
  4 | import LibDCBridge
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:258:39: warning: capture of 'bluetoothManager' with non-sendable type 'CoreBluetoothManager' in a '@Sendable' closure
256 |                     deviceUUID: device.identifier.uuidString,
257 |                     storedFingerprint: storedFingerprint,
258 |                     bluetoothManager: bluetoothManager
    |                                       `- warning: capture of 'bluetoothManager' with non-sendable type 'CoreBluetoothManager' in a '@Sendable' closure
259 |                 )
260 |                 context.devicePtr = devicePtr
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:36:14: note: class 'CoreBluetoothManager' does not conform to the 'Sendable' protocol
 34 | /// Manages device discovery, connection, and data transfer with BLE dive computers.
 35 | @objc(CoreBluetoothManager)
 36 | public class CoreBluetoothManager: NSObject, CoreBluetoothManagerProtocol, ObservableObject, CBCentralManagerDelegate, CBPeripheralDelegate {
    |              `- note: class 'CoreBluetoothManager' does not conform to the 'Sendable' protocol
 37 |     // MARK: - Singleton
 38 |     private static let sharedInstance = CoreBluetoothManager()
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:266:25: warning: capture of 'onProgress' with non-sendable type '((Int, Int) -> Void)?' in a '@Sendable' closure
264 |                 let progressTimer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
265 |                     if devicePtr.pointee.have_progress != 0 {
266 |                         onProgress?(Int(devicePtr.pointee.progress.current), Int(devicePtr.pointee.progress.maximum))
    |                         |- warning: capture of 'onProgress' with non-sendable type '((Int, Int) -> Void)?' in a '@Sendable' closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
267 |                     }
268 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:265:24: warning: capture of 'devicePtr' with non-sendable type 'UnsafeMutablePointer<device_data_t>' in a '@Sendable' closure
263 |
264 |                 let progressTimer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
265 |                     if devicePtr.pointee.have_progress != 0 {
    |                        `- warning: capture of 'devicePtr' with non-sendable type 'UnsafeMutablePointer<device_data_t>' in a '@Sendable' closure
266 |                         onProgress?(Int(devicePtr.pointee.progress.current), Int(devicePtr.pointee.progress.maximum))
267 |                     }
Swift.UnsafeMutablePointer:1:23: note: generic struct 'UnsafeMutablePointer' does not conform to the 'Sendable' protocol
1 | @frozen public struct UnsafeMutablePointer<Pointee> : Copyable where Pointee : ~Copyable {
  |                       `- note: generic struct 'UnsafeMutablePointer' does not conform to the 'Sendable' protocol
2 |     public let _rawValue: Builtin.RawPointer
3 |     public init(_ _rawValue: Builtin.RawPointer)
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:266:25: warning: capture of 'onProgress' with non-sendable type '((Int, Int) -> Void)?' in a '@Sendable' closure
264 |                 let progressTimer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
265 |                     if devicePtr.pointee.have_progress != 0 {
266 |                         onProgress?(Int(devicePtr.pointee.progress.current), Int(devicePtr.pointee.progress.maximum))
    |                         |- warning: capture of 'onProgress' with non-sendable type '((Int, Int) -> Void)?' in a '@Sendable' closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
267 |                     }
268 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:261:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
259 |         isDisconnecting = true
260 |         DispatchQueue.main.async {
261 |             self.isPeripheralReady = false
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
262 |             self.connectedDevice = nil
263 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:294:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
292 |
293 |         DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
294 |             self.isDisconnecting = false
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
295 |         }
296 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:336:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
334 |     public func clearRetrievalState() {
335 |         DispatchQueue.main.async { [weak self] in
336 |             self?.isRetrievingLogs = false
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
337 |             self?.currentRetrievalDevice = nil
338 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:383:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
381 |         logInfo("Performing system-level disconnect for \(peripheral.name ?? "Unknown Device")")
382 |         DispatchQueue.main.async {
383 |             self.isPeripheralReady = false
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
384 |             self.connectedDevice = nil
385 |             self.writeCharacteristic = nil
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:394:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
392 |     public func clearDiscoveredPeripherals() {
393 |         DispatchQueue.main.async {
394 |             self.discoveredPeripherals.removeAll()
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
395 |         }
396 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:400:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
398 |     public func addDiscoveredPeripheral(_ peripheral: CBPeripheral) {
399 |         DispatchQueue.main.async {
400 |             if !self.discoveredPeripherals.contains(where: { $0.identifier == peripheral.identifier }) {
    |                 |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
401 |                 self.discoveredPeripherals.append(peripheral)
402 |             }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:400:79: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
398 |     public func addDiscoveredPeripheral(_ peripheral: CBPeripheral) {
399 |         DispatchQueue.main.async {
400 |             if !self.discoveredPeripherals.contains(where: { $0.identifier == peripheral.identifier }) {
    |                                                                               |- warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
    |                                                                               `- note: task-isolated 'peripheral' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
401 |                 self.discoveredPeripherals.append(peripheral)
402 |             }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:447:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
445 |         peripheral.delegate = self
446 |         DispatchQueue.main.async {
447 |             self.isPeripheralReady = true
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
448 |             self.connectedDevice = peripheral
449 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:448:36: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
446 |         DispatchQueue.main.async {
447 |             self.isPeripheralReady = true
448 |             self.connectedDevice = peripheral
    |                                    |- warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: task-isolated 'peripheral' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
449 |         }
450 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:463:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
461 |
462 |         DispatchQueue.main.async {
463 |             self.isPeripheralReady = false
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
464 |             self.connectedDevice = nil
465 |
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:472:82: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
470 |             if !self.isDisconnecting && !self.isRetrievingLogs && !self.isConnecting {
471 |                 // Attempt to reconnect if this was a stored device
472 |                 if let storedDevice = DeviceStorage.shared.getStoredDevice(uuid: peripheral.identifier.uuidString) {
    |                                                                                  |- warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
    |                                                                                  `- note: task-isolated 'peripheral' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
473 |                     logInfo("Attempting to reconnect to stored device")
474 |                     _ = DeviceConfiguration.openBLEDevice(
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:151:17: warning: sending 'context' risks causing data races; this is an error in the Swift 6 language mode
149 |
150 |             DispatchQueue.main.async {
151 |                 context.viewModel.appendDives([diveData])
    |                 |- warning: sending 'context' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'context' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
152 |                 context.viewModel.updateProgress(count: context.logCount)
153 |             }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:151:48: warning: sending 'diveData' risks causing data races; this is an error in the Swift 6 language mode
149 |
150 |             DispatchQueue.main.async {
151 |                 context.viewModel.appendDives([diveData])
    |                                                |- warning: sending 'diveData' risks causing data races; this is an error in the Swift 6 language mode
    |                                                `- note: task-isolated 'diveData' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
152 |                 context.viewModel.updateProgress(count: context.logCount)
153 |             }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:304:49: warning: sending 'context' risks causing data races; this is an error in the Swift 6 language mode
293 |                 progressTimer.invalidate()
294 |
295 |                 DispatchQueue.main.async {
    |                                          `- note: access can happen concurrently
296 |                     // Determine the outcome of the download
297 |                     let downloadSucceeded: Bool
    :
302 |                         // Normal successful completion
303 |                         downloadSucceeded = true
304 |                         shouldSaveFingerprint = context.hasNewDives
    |                                                 |- warning: sending 'context' risks causing data races; this is an error in the Swift 6 language mode
    |                                                 `- note: 'context' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
305 |
306 |                     case DC_STATUS_PROTOCOL:
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:336:25: warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
293 |                 progressTimer.invalidate()
294 |
295 |                 DispatchQueue.main.async {
    |                                          `- note: access can happen concurrently
296 |                     // Determine the outcome of the download
297 |                     let downloadSucceeded: Bool
    :
334 |                     // Handle the outcome
335 |                     if !downloadSucceeded {
336 |                         viewModel.setDetailedError("Download incomplete - DC_STATUS error code: \(enumStatus)", status: enumStatus)
    |                         |- warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
    |                         `- note: 'viewModel' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
337 |                         completion(false)
338 |                     } else {
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:365:59: warning: sending 'contextPtr' risks causing data races; this is an error in the Swift 6 language mode
363 |
364 |                     context.isCompleted = true
365 |                     Unmanaged<CallbackContext>.fromOpaque(contextPtr).release()
    |                                                           |- warning: sending 'contextPtr' risks causing data races; this is an error in the Swift 6 language mode
    |                                                           `- note: 'contextPtr' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
366 |
367 |                     #if os(iOS)
    :
370 |                 }
371 |
372 |                 currentContext = context
    |                                  `- note: access can happen concurrently
373 |             }
374 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:223:44: warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
221 |
222 |             retrievalQueue.async {
223 |                 DispatchQueue.main.async { viewModel.resetProgress() }
    |                                            |- warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
    |                                            `- note: 'viewModel' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
224 |
225 |                 guard let dcDevice = devicePtr.pointee.device else {
226 |                     DispatchQueue.main.async {
    |                                              `- note: access can happen concurrently
227 |                         viewModel.setDetailedError("No device connection found", status: DC_STATUS_IO)
228 |                         completion(false)
    :
248 |                     let serial = String(format: "%08x", devicePtr.pointee.devinfo.serial)
249 |                     DeviceStorage.shared.updateDeviceSerial(uuid: device.identifier.uuidString, serial: serial)
250 |                     storedFingerprint = viewModel.getFingerprint(forDeviceType: deviceTypeForFingerprint, serial: serial)
    |                                                   `- note: access can happen concurrently
251 |                 }
252 |
253 |                 let context = CallbackContext(
    |                               `- note: access can happen concurrently
254 |                     viewModel: viewModel,
255 |                     deviceName: deviceName,
Build complete! (12.47s)
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/libdivecomputer/m4': File not found.
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/serial_win32.c': File not found.
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/libdivecomputer/doc': File not found.
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "LibDCSwift",
  "name" : "LibDCSwift",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "macos",
      "version" : "12.0"
    }
  ],
  "products" : [
    {
      "name" : "LibDCSwift",
      "targets" : [
        "LibDCSwift"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "LibDCBridge",
      "targets" : [
        "LibDCBridge"
      ],
      "type" : {
        "library" : [
          "dynamic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "LibDCSwift",
      "module_type" : "SwiftTarget",
      "name" : "LibDCSwift",
      "path" : "Sources/LibDCSwift",
      "product_memberships" : [
        "LibDCSwift"
      ],
      "sources" : [
        "BLEManager.swift",
        "DiveLogRetriever.swift",
        "LibDCSwift.swift",
        "Logger.swift",
        "Models/DeviceConfiguration.swift",
        "Models/DeviceFingerprint.swift",
        "Models/DiveData.swift",
        "Models/SampleData.swift",
        "Models/StoredDevice.swift",
        "Parser/GenericParser.swift",
        "ViewModels/DiveDataViewModel.swift"
      ],
      "target_dependencies" : [
        "LibDCBridge",
        "Clibdivecomputer"
      ],
      "type" : "library"
    },
    {
      "c99name" : "LibDCBridge",
      "module_type" : "ClangTarget",
      "name" : "LibDCBridge",
      "path" : "Sources/LibDCBridge",
      "product_memberships" : [
        "LibDCSwift",
        "LibDCBridge"
      ],
      "sources" : [
        "src/BLEBridge.m",
        "src/configuredc.c"
      ],
      "target_dependencies" : [
        "Clibdivecomputer"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Clibdivecomputer",
      "module_type" : "ClangTarget",
      "name" : "Clibdivecomputer",
      "path" : "libdivecomputer",
      "product_memberships" : [
        "LibDCSwift",
        "LibDCBridge"
      ],
      "sources" : [
        "src/aes.c",
        "src/array.c",
        "src/atomics_cobalt.c",
        "src/atomics_cobalt_parser.c",
        "src/ble.c",
        "src/bluetooth.c",
        "src/buffer.c",
        "src/checksum.c",
        "src/citizen_aqualand.c",
        "src/citizen_aqualand_parser.c",
        "src/cochran_commander.c",
        "src/cochran_commander_parser.c",
        "src/common.c",
        "src/context.c",
        "src/cressi_edy.c",
        "src/cressi_edy_parser.c",
        "src/cressi_goa.c",
        "src/cressi_goa_parser.c",
        "src/cressi_leonardo.c",
        "src/cressi_leonardo_parser.c",
        "src/custom.c",
        "src/datetime.c",
        "src/deepblu_cosmiq.c",
        "src/deepblu_cosmiq_parser.c",
        "src/deepsix_excursion.c",
        "src/deepsix_excursion_parser.c",
        "src/descriptor.c",
        "src/device.c",
        "src/diverite_nitekq.c",
        "src/diverite_nitekq_parser.c",
        "src/divesoft_freedom.c",
        "src/divesoft_freedom_parser.c",
        "src/divesystem_idive.c",
        "src/divesystem_idive_parser.c",
        "src/halcyon_symbios.c",
        "src/halcyon_symbios_parser.c",
        "src/hdlc.c",
        "src/hw_frog.c",
        "src/hw_ostc.c",
        "src/hw_ostc3.c",
        "src/hw_ostc_parser.c",
        "src/ihex.c",
        "src/iostream.c",
        "src/irda.c",
        "src/iterator.c",
        "src/liquivision_lynx.c",
        "src/liquivision_lynx_parser.c",
        "src/mares_common.c",
        "src/mares_darwin.c",
        "src/mares_darwin_parser.c",
        "src/mares_iconhd.c",
        "src/mares_iconhd_parser.c",
        "src/mares_nemo.c",
        "src/mares_nemo_parser.c",
        "src/mares_puck.c",
        "src/mclean_extreme.c",
        "src/mclean_extreme_parser.c",
        "src/oceanic_atom2.c",
        "src/oceanic_atom2_parser.c",
        "src/oceanic_common.c",
        "src/oceanic_veo250.c",
        "src/oceanic_veo250_parser.c",
        "src/oceanic_vtpro.c",
        "src/oceanic_vtpro_parser.c",
        "src/oceans_s1.c",
        "src/oceans_s1_common.c",
        "src/oceans_s1_parser.c",
        "src/packet.c",
        "src/parser.c",
        "src/pelagic_i330r.c",
        "src/platform.c",
        "src/rbstream.c",
        "src/reefnet_sensus.c",
        "src/reefnet_sensus_parser.c",
        "src/reefnet_sensuspro.c",
        "src/reefnet_sensuspro_parser.c",
        "src/reefnet_sensusultra.c",
        "src/reefnet_sensusultra_parser.c",
        "src/ringbuffer.c",
        "src/seac_screen.c",
        "src/seac_screen_common.c",
        "src/seac_screen_parser.c",
        "src/serial_posix.c",
        "src/shearwater_common.c",
        "src/shearwater_petrel.c",
        "src/shearwater_predator.c",
        "src/shearwater_predator_parser.c",
        "src/socket.c",
        "src/sporasub_sp2.c",
        "src/sporasub_sp2_parser.c",
        "src/suunto_common.c",
        "src/suunto_common2.c",
        "src/suunto_d9.c",
        "src/suunto_d9_parser.c",
        "src/suunto_eon.c",
        "src/suunto_eon_parser.c",
        "src/suunto_eonsteel.c",
        "src/suunto_eonsteel_parser.c",
        "src/suunto_solution.c",
        "src/suunto_solution_parser.c",
        "src/suunto_vyper.c",
        "src/suunto_vyper2.c",
        "src/suunto_vyper_parser.c",
        "src/tecdiving_divecomputereu.c",
        "src/tecdiving_divecomputereu_parser.c",
        "src/timer.c",
        "src/usb.c",
        "src/usbhid.c",
        "src/uwatec_aladin.c",
        "src/uwatec_memomouse.c",
        "src/uwatec_memomouse_parser.c",
        "src/uwatec_smart.c",
        "src/uwatec_smart_parser.c",
        "src/version.c",
        "src/zeagle_n2ition3.c"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.10"
}
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/libdivecomputer/doc': File not found.
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/libdivecomputer/m4': File not found.
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/serial_win32.c': File not found.
Done.