The Swift Package Index logo.Swift Package Index

Build Information

Successful build of LibDCSwift, reference 1.4.1 (cef1a8), with Swift 6.1 for macOS (SPM) on 8 Dec 2025 14:46:03 UTC.

Swift 6 data race errors: 10

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: 1.4.1
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/deepsealabs/libdc-swift
 * tag               1.4.1      -> FETCH_HEAD
HEAD is now at cef1a84 update: changelog.md
Cloned https://github.com/deepsealabs/libdc-swift.git
Revision (git rev-parse @):
cef1a847d168d03cd38893f3b0f9129046178fa7
SUCCESS checkout https://github.com/deepsealabs/libdc-swift.git at 1.4.1
========================================
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/src/serial_win32.c': File not found.
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.
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...
[0/121] Compiling checksum.c
[1/121] Write swift-version-2F0A5646E1D333AE.txt
[2/121] Write sources
[3/121] Compiling array.c
[4/121] Compiling ble.c
[5/121] Compiling buffer.c
[6/121] Compiling aes.c
[7/121] Compiling version.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.
[8/121] Compiling citizen_aqualand.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.
[9/121] Compiling atomics_cobalt.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.
[10/121] Compiling zeagle_n2ition3.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.
[11/121] Compiling atomics_cobalt_parser.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.
[12/121] Compiling uwatec_smart_parser.c
[13/121] Compiling common.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.
[14/121] Compiling uwatec_smart.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.
[15/121] Compiling uwatec_memomouse_parser.c
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.
[16/121] Compiling uwatec_memomouse.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.
[17/121] Compiling usb.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.
[18/121] Compiling uwatec_aladin.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.
[19/121] Compiling usbhid.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_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.
[22/121] Compiling suunto_vyper_parser.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.
[23/121] Compiling suunto_vyper2.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_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.
[25/121] Compiling suunto_solution_parser.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.
[26/121] Compiling suunto_solution.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.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.
[28/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.
[29/121] Compiling suunto_eon.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.
[30/121] Compiling suunto_eonsteel_parser.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.
[31/121] Compiling suunto_d9_parser.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.
[32/121] Compiling suunto_d9.c
[33/121] Compiling configuredc.c
[34/121] Compiling suunto_common.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.
[35/121] Compiling suunto_common2.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_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.
[38/121] Compiling shearwater_predator_parser.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.
[39/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.
[40/121] Compiling shearwater_petrel.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.
[49/121] Compiling reefnet_sensus_parser.c
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.
[50/121] Compiling reefnet_sensuspro.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
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.
[52/121] Compiling platform.c
[52/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/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.
[59/121] Compiling oceans_s1.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.
[60/121] Compiling oceanic_vtpro_parser.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.
[61/121] Compiling oceanic_veo250_parser.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.
[62/121] Compiling oceanic_vtpro.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_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.
[64/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.
[65/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.
[66/121] Compiling oceanic_atom2_parser.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.
[67/121] Compiling oceanic_atom2.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.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.
[70/121] Compiling mares_nemo.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.
[71/121] Compiling mares_nemo_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.
[72/121] Compiling mares_iconhd.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.
[73/121] Compiling mares_iconhd_parser.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/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 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/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.
[77/121] Compiling iterator.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/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.
[80/121] Compiling iostream.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/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.
[82/121] Compiling hw_ostc_parser.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.
[83/121] Compiling hw_ostc3.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.
[84/121] Compiling hw_ostc.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.
[85/121] Compiling irda.c
[86/121] Compiling timer.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.
[87/121] Compiling hw_frog.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.
[88/121] Compiling hdlc.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.
[89/121] Compiling halcyon_symbios_parser.c
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.
[90/121] Compiling halcyon_symbios.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.
[91/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.
[92/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.
[93/121] Compiling divesoft_freedom_parser.c
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.
[94/121] Compiling divesoft_freedom.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.
[95/121] Compiling diverite_nitekq_parser.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.
[96/121] Compiling diverite_nitekq.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.
[97/121] Compiling device.c
[98/121] Compiling descriptor.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.
[99/121] Compiling deepsix_excursion_parser.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.
[100/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.
[101/121] Compiling deepblu_cosmiq_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.
[102/121] Compiling bluetooth.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.
[103/121] Compiling deepblu_cosmiq.c
[104/121] Compiling datetime.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.
[105/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.
[106/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.
[107/121] Compiling cressi_leonardo.c
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.
[108/121] Compiling cressi_goa_parser.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.
[109/121] Compiling cressi_edy_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.
[110/121] Compiling cressi_goa.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.
[111/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.
[112/121] Compiling cressi_edy.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.
[113/121] Compiling cochran_commander_parser.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.
[114/121] Compiling citizen_aqualand_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.
[115/121] Compiling cochran_commander.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.
[116/121] Compiling serial_posix.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.
[117/121] Compiling socket.c
[118/121] Compiling BLEBridge.m
[119/121] Write Objects.LinkFileList
[120/132] Linking libLibDCBridge.dylib
[122/132] Compiling LibDCSwift StoredDevice.swift
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/Models/StoredDevice.swift:51: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
 48 | }
 49 |
 50 | @objc public class DeviceStorage: NSObject {
    |                    `- note: class 'DeviceStorage' does not conform to the 'Sendable' protocol
 51 |    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
 52 |
 53 |    private let defaults = UserDefaults.standard
[123/132] Compiling LibDCSwift GenericParser.swift
[124/132] Compiling LibDCSwift DeviceConfiguration.swift
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/Models/DeviceConfiguration.swift:71: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
 69 |     /// Known BLE service UUIDs for supported dive computers.
 70 |     /// Used for device discovery and identification.
 71 |     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
 72 |         CBUUID(string: "0000fefb-0000-1000-8000-00805f9b34fb"), // Heinrichs-Weikamp Telit/Stollmann
 73 |         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
    :
 69 |     /// Known BLE service UUIDs for supported dive computers.
 70 |     /// Used for device discovery and identification.
 71 |     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
 72 |         CBUUID(string: "0000fefb-0000-1000-8000-00805f9b34fb"), // Heinrichs-Weikamp Telit/Stollmann
 73 |         CBUUID(string: "2456e1b9-26e2-8f83-e744-f34f01e9d701"), // Heinrichs-Weikamp U-Blox
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/Models/DeviceConfiguration.swift:167: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
165 |
166 |     private var descriptor: OpaquePointer?
167 |     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
168 |
169 |     /// Setup the shared device context
[125/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:223:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
221 |             )
222 |             DispatchQueue.main.async {
223 |                 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
224 |                 if case .inProgress = self.progress {
225 |                     self.progress = .inProgress(self.dives.count)
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:233:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
231 |     public func updateStatus(_ newStatus: String) {
232 |         DispatchQueue.main.async {
233 |             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
234 |         }
235 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:239:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
237 |     public func updateProgress(_ progress: DownloadProgress) {
238 |         DispatchQueue.main.async {
239 |             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
240 |         }
241 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:239:29: warning: sending 'progress' risks causing data races; this is an error in the Swift 6 language mode
237 |     public func updateProgress(_ progress: DownloadProgress) {
238 |         DispatchQueue.main.async {
239 |             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
240 |         }
241 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:245:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
243 |     public func updateProgress(count: Int) {
244 |         DispatchQueue.main.async {
245 |             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
246 |             self.progress = .inProgress(count)
247 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:252:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
250 |     public func setError(_ message: String) {
251 |         DispatchQueue.main.async {
252 |             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
253 |         }
254 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:258:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
256 |     public func clear() {
257 |         DispatchQueue.main.async {
258 |             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
259 |             self.hasNewDives = false
260 |             self.resetProgress()
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:349:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
347 |     public func resetProgress() {
348 |         DispatchQueue.main.async {
349 |             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
350 |             self.status = ""
351 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:307:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
305 |             }
306 |
307 |             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
308 |         }
309 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:313:17: warning: sending 'newDives' risks causing data races; this is an error in the Swift 6 language mode
311 |     public func appendDives(_ newDives: [DiveData]) {
312 |         DispatchQueue.main.async {
313 |             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
314 |                 self.hasNewDives = true
315 |             }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/ViewModels/DiveDataViewModel.swift:314:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
312 |         DispatchQueue.main.async {
313 |             if !newDives.isEmpty {
314 |                 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
315 |             }
316 |             self.dives.append(contentsOf: newDives)
[126/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 |
[127/133] Compiling LibDCSwift LibDCSwift.swift
[128/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:158: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
156 |     }
157 |
158 |     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
159 |
160 |     /// Retrieves dive logs from a connected dive computer.
/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:71: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
 69 |     /// Known BLE service UUIDs for supported dive computers.
 70 |     /// Used for device discovery and identification.
 71 |     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
 72 |         CBUUID(string: "0000fefb-0000-1000-8000-00805f9b34fb"), // Heinrichs-Weikamp Telit/Stollmann
 73 |         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
    :
 69 |     /// Known BLE service UUIDs for supported dive computers.
 70 |     /// Used for device discovery and identification.
 71 |     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
 72 |         CBUUID(string: "0000fefb-0000-1000-8000-00805f9b34fb"), // Heinrichs-Weikamp Telit/Stollmann
 73 |         CBUUID(string: "2456e1b9-26e2-8f83-e744-f34f01e9d701"), // Heinrichs-Weikamp U-Blox
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/Models/DeviceConfiguration.swift:167: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
165 |
166 |     private var descriptor: OpaquePointer?
167 |     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
168 |
169 |     /// Setup the shared device context
/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:51: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
 48 | }
 49 |
 50 | @objc public class DeviceStorage: NSObject {
    |                    `- note: class 'DeviceStorage' does not conform to the 'Sendable' protocol
 51 |    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
 52 |
 53 |    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:99:21: warning: sending 'context' risks causing data races; this is an error in the Swift 6 language mode
 97 |
 98 |                 DispatchQueue.main.async {
 99 |                     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
100 |                     context.viewModel.updateProgress(count: context.logCount)
101 |                     logInfo("✅ Parsed dive #\(context.logCount - 1)")
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:99:52: warning: sending 'diveData' risks causing data races; this is an error in the Swift 6 language mode
 97 |
 98 |                 DispatchQueue.main.async {
 99 |                     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
100 |                     context.viewModel.updateProgress(count: context.logCount)
101 |                     logInfo("✅ Parsed dive #\(context.logCount - 1)")
[129/133] Compiling LibDCSwift DiveData.swift
[130/133] Compiling LibDCSwift SampleData.swift
[131/133] 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
[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/DiveLogRetriever.swift:158: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
156 |     }
157 |
158 |     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
159 |
160 |     /// Retrieves dive logs from a connected dive computer.
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:181:17: warning: capture of 'viewModel' with non-sendable type 'DiveDataViewModel' in a '@Sendable' closure
179 |             // Reset only progress at start of new retrieval
180 |             DispatchQueue.main.async {
181 |                 viewModel.resetProgress()
    |                 `- warning: capture of 'viewModel' with non-sendable type 'DiveDataViewModel' in a '@Sendable' closure
182 |             }
183 |
/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:184:34: warning: capture of 'devicePtr' with non-sendable type 'UnsafeMutablePointer<device_data_t>' in a '@Sendable' closure
182 |             }
183 |
184 |             guard let dcDevice = devicePtr.pointee.device else {
    |                                  `- warning: capture of 'devicePtr' with non-sendable type 'UnsafeMutablePointer<device_data_t>' in a '@Sendable' closure
185 |                 DispatchQueue.main.async {
186 |                     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:187:21: warning: capture of 'completion' with non-sendable type '(Bool) -> Void' in a '@Sendable' closure
185 |                 DispatchQueue.main.async {
186 |                     viewModel.setDetailedError("No device connection found", status: DC_STATUS_IO)
187 |                     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'
188 |                 }
189 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:193:30: warning: capture of 'device' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
191 |
192 |             // Get device info for fingerprint lookup
193 |             let deviceName = device.name ?? "Unknown Device"
    |                              `- warning: capture of 'device' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
194 |             let deviceSerial: String? = if devicePtr.pointee.have_devinfo != 0 {
195 |                 String(format: "%08x", devicePtr.pointee.devinfo.serial)
/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:220:35: warning: capture of 'bluetoothManager' with non-sendable type 'CoreBluetoothManager' in a '@Sendable' closure
218 |                 deviceName: deviceName,
219 |                 storedFingerprint: storedFingerprint,
220 |                 bluetoothManager: bluetoothManager
    |                                   `- warning: capture of 'bluetoothManager' with non-sendable type 'CoreBluetoothManager' in a '@Sendable' closure
221 |             )
222 |             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:229:21: warning: capture of 'onProgress' with non-sendable type '((Int, Int) -> Void)?' in a '@Sendable' closure
227 |             let progressTimer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
228 |                 if devicePtr.pointee.have_progress != 0 {
229 |                     onProgress?(
    |                     |- 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'
230 |                         Int(devicePtr.pointee.progress.current),
231 |                         Int(devicePtr.pointee.progress.maximum)
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:228:20: warning: capture of 'devicePtr' with non-sendable type 'UnsafeMutablePointer<device_data_t>' in a '@Sendable' closure
226 |
227 |             let progressTimer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
228 |                 if devicePtr.pointee.have_progress != 0 {
    |                    `- warning: capture of 'devicePtr' with non-sendable type 'UnsafeMutablePointer<device_data_t>' in a '@Sendable' closure
229 |                     onProgress?(
230 |                         Int(devicePtr.pointee.progress.current),
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:229:21: warning: capture of 'onProgress' with non-sendable type '((Int, Int) -> Void)?' in a '@Sendable' closure
227 |             let progressTimer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
228 |                 if devicePtr.pointee.have_progress != 0 {
229 |                     onProgress?(
    |                     |- 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'
230 |                         Int(devicePtr.pointee.progress.current),
231 |                         Int(devicePtr.pointee.progress.maximum)
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:215:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
213 |         isDisconnecting = true
214 |         DispatchQueue.main.async {
215 |             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
216 |             self.connectedDevice = nil
217 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:247:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
245 |
246 |         DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
247 |             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
248 |         }
249 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:290:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
288 |         logDebug("🧹 Clearing retrieval state")
289 |         DispatchQueue.main.async { [weak self] in
290 |             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
291 |             self?.currentRetrievalDevice = nil
292 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:340:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
338 |         logInfo("Performing system-level disconnect for \(peripheral.name ?? "Unknown Device")")
339 |         DispatchQueue.main.async {
340 |             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
341 |             self.connectedDevice = nil
342 |             self.writeCharacteristic = nil
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:351:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
349 |     public func clearDiscoveredPeripherals() {
350 |         DispatchQueue.main.async {
351 |             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
352 |         }
353 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:357:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
355 |     public func addDiscoveredPeripheral(_ peripheral: CBPeripheral) {
356 |         DispatchQueue.main.async {
357 |             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
358 |                 self.discoveredPeripherals.append(peripheral)
359 |             }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:357:79: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
355 |     public func addDiscoveredPeripheral(_ peripheral: CBPeripheral) {
356 |         DispatchQueue.main.async {
357 |             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
358 |                 self.discoveredPeripherals.append(peripheral)
359 |             }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:404:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
402 |         peripheral.delegate = self
403 |         DispatchQueue.main.async {
404 |             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
405 |             self.connectedDevice = peripheral
406 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:405:36: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
403 |         DispatchQueue.main.async {
404 |             self.isPeripheralReady = true
405 |             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
406 |         }
407 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:420:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
418 |
419 |         DispatchQueue.main.async {
420 |             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
421 |             self.connectedDevice = nil
422 |
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:426:82: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
424 |             if !self.isDisconnecting {
425 |                 // Attempt to reconnect if this was a stored device
426 |                 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
427 |                     logInfo("Attempting to reconnect to stored device")
428 |                     _ = DeviceConfiguration.openBLEDevice(
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:99:21: warning: sending 'context' risks causing data races; this is an error in the Swift 6 language mode
 97 |
 98 |                 DispatchQueue.main.async {
 99 |                     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
100 |                     context.viewModel.updateProgress(count: context.logCount)
101 |                     logInfo("✅ Parsed dive #\(context.logCount - 1)")
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:99:52: warning: sending 'diveData' risks causing data races; this is an error in the Swift 6 language mode
 97 |
 98 |                 DispatchQueue.main.async {
 99 |                     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
100 |                     context.viewModel.updateProgress(count: context.logCount)
101 |                     logInfo("✅ Parsed dive #\(context.logCount - 1)")
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:245:21: warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
241 |
242 |             progressTimer.invalidate()
243 |             DispatchQueue.main.async {
    |                                      `- note: access can happen concurrently
244 |                 if enumStatus != DC_STATUS_SUCCESS {
245 |                     viewModel.setDetailedError("Download incomplete", 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
246 |                     completion(false)
247 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:248:24: warning: sending 'context' risks causing data races; this is an error in the Swift 6 language mode
241 |
242 |             progressTimer.invalidate()
243 |             DispatchQueue.main.async {
    |                                      `- note: access can happen concurrently
244 |                 if enumStatus != DC_STATUS_SUCCESS {
245 |                     viewModel.setDetailedError("Download incomplete", status: enumStatus)
246 |                     completion(false)
247 |                 } else {
248 |                     if 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
249 |                         if let lastFingerprint = context.lastFingerprint,
250 |                            let deviceSerial = context.deviceSerial {
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:271:55: warning: sending 'contextPtr' risks causing data races; this is an error in the Swift 6 language mode
269 |
270 |                 context.isCompleted = true
271 |                 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
272 |
273 |                 #if os(iOS)
    :
276 |             }
277 |
278 |             currentContext = context
    |                              `- note: access can happen concurrently
279 |         }
280 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:181:17: warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
179 |             // Reset only progress at start of new retrieval
180 |             DispatchQueue.main.async {
181 |                 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
182 |             }
183 |
184 |             guard let dcDevice = devicePtr.pointee.device else {
185 |                 DispatchQueue.main.async {
    |                                          `- note: access can happen concurrently
186 |                     viewModel.setDetailedError("No device connection found", status: DC_STATUS_IO)
187 |                     completion(false)
    :
200 |             // Only pass stored fingerprint if we want to use it (toggle is ON)
201 |             let storedFingerprint: Data? = if let serial = deviceSerial {
202 |                 viewModel.getFingerprint(
    |                           `- note: access can happen concurrently
203 |                     forDeviceType: deviceName,
204 |                     serial: serial
    :
214 |             }
215 |
216 |             let context = CallbackContext(
    |                           `- note: access can happen concurrently
217 |                 viewModel: viewModel,
218 |                 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/DiveLogRetriever.swift:158: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
156 |     }
157 |
158 |     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
159 |
160 |     /// Retrieves dive logs from a connected dive computer.
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:181:17: warning: capture of 'viewModel' with non-sendable type 'DiveDataViewModel' in a '@Sendable' closure
179 |             // Reset only progress at start of new retrieval
180 |             DispatchQueue.main.async {
181 |                 viewModel.resetProgress()
    |                 `- warning: capture of 'viewModel' with non-sendable type 'DiveDataViewModel' in a '@Sendable' closure
182 |             }
183 |
/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:184:34: warning: capture of 'devicePtr' with non-sendable type 'UnsafeMutablePointer<device_data_t>' in a '@Sendable' closure
182 |             }
183 |
184 |             guard let dcDevice = devicePtr.pointee.device else {
    |                                  `- warning: capture of 'devicePtr' with non-sendable type 'UnsafeMutablePointer<device_data_t>' in a '@Sendable' closure
185 |                 DispatchQueue.main.async {
186 |                     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:187:21: warning: capture of 'completion' with non-sendable type '(Bool) -> Void' in a '@Sendable' closure
185 |                 DispatchQueue.main.async {
186 |                     viewModel.setDetailedError("No device connection found", status: DC_STATUS_IO)
187 |                     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'
188 |                 }
189 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:193:30: warning: capture of 'device' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
191 |
192 |             // Get device info for fingerprint lookup
193 |             let deviceName = device.name ?? "Unknown Device"
    |                              `- warning: capture of 'device' with non-sendable type 'CBPeripheral' in a '@Sendable' closure
194 |             let deviceSerial: String? = if devicePtr.pointee.have_devinfo != 0 {
195 |                 String(format: "%08x", devicePtr.pointee.devinfo.serial)
/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:220:35: warning: capture of 'bluetoothManager' with non-sendable type 'CoreBluetoothManager' in a '@Sendable' closure
218 |                 deviceName: deviceName,
219 |                 storedFingerprint: storedFingerprint,
220 |                 bluetoothManager: bluetoothManager
    |                                   `- warning: capture of 'bluetoothManager' with non-sendable type 'CoreBluetoothManager' in a '@Sendable' closure
221 |             )
222 |             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:229:21: warning: capture of 'onProgress' with non-sendable type '((Int, Int) -> Void)?' in a '@Sendable' closure
227 |             let progressTimer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
228 |                 if devicePtr.pointee.have_progress != 0 {
229 |                     onProgress?(
    |                     |- 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'
230 |                         Int(devicePtr.pointee.progress.current),
231 |                         Int(devicePtr.pointee.progress.maximum)
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:228:20: warning: capture of 'devicePtr' with non-sendable type 'UnsafeMutablePointer<device_data_t>' in a '@Sendable' closure
226 |
227 |             let progressTimer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
228 |                 if devicePtr.pointee.have_progress != 0 {
    |                    `- warning: capture of 'devicePtr' with non-sendable type 'UnsafeMutablePointer<device_data_t>' in a '@Sendable' closure
229 |                     onProgress?(
230 |                         Int(devicePtr.pointee.progress.current),
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:229:21: warning: capture of 'onProgress' with non-sendable type '((Int, Int) -> Void)?' in a '@Sendable' closure
227 |             let progressTimer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
228 |                 if devicePtr.pointee.have_progress != 0 {
229 |                     onProgress?(
    |                     |- 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'
230 |                         Int(devicePtr.pointee.progress.current),
231 |                         Int(devicePtr.pointee.progress.maximum)
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:215:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
213 |         isDisconnecting = true
214 |         DispatchQueue.main.async {
215 |             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
216 |             self.connectedDevice = nil
217 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:247:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
245 |
246 |         DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
247 |             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
248 |         }
249 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:290:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
288 |         logDebug("🧹 Clearing retrieval state")
289 |         DispatchQueue.main.async { [weak self] in
290 |             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
291 |             self?.currentRetrievalDevice = nil
292 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:340:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
338 |         logInfo("Performing system-level disconnect for \(peripheral.name ?? "Unknown Device")")
339 |         DispatchQueue.main.async {
340 |             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
341 |             self.connectedDevice = nil
342 |             self.writeCharacteristic = nil
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:351:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
349 |     public func clearDiscoveredPeripherals() {
350 |         DispatchQueue.main.async {
351 |             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
352 |         }
353 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:357:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
355 |     public func addDiscoveredPeripheral(_ peripheral: CBPeripheral) {
356 |         DispatchQueue.main.async {
357 |             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
358 |                 self.discoveredPeripherals.append(peripheral)
359 |             }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:357:79: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
355 |     public func addDiscoveredPeripheral(_ peripheral: CBPeripheral) {
356 |         DispatchQueue.main.async {
357 |             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
358 |                 self.discoveredPeripherals.append(peripheral)
359 |             }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:404:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
402 |         peripheral.delegate = self
403 |         DispatchQueue.main.async {
404 |             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
405 |             self.connectedDevice = peripheral
406 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:405:36: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
403 |         DispatchQueue.main.async {
404 |             self.isPeripheralReady = true
405 |             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
406 |         }
407 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:420:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
418 |
419 |         DispatchQueue.main.async {
420 |             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
421 |             self.connectedDevice = nil
422 |
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:426:82: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
424 |             if !self.isDisconnecting {
425 |                 // Attempt to reconnect if this was a stored device
426 |                 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
427 |                     logInfo("Attempting to reconnect to stored device")
428 |                     _ = DeviceConfiguration.openBLEDevice(
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:99:21: warning: sending 'context' risks causing data races; this is an error in the Swift 6 language mode
 97 |
 98 |                 DispatchQueue.main.async {
 99 |                     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
100 |                     context.viewModel.updateProgress(count: context.logCount)
101 |                     logInfo("✅ Parsed dive #\(context.logCount - 1)")
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:99:52: warning: sending 'diveData' risks causing data races; this is an error in the Swift 6 language mode
 97 |
 98 |                 DispatchQueue.main.async {
 99 |                     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
100 |                     context.viewModel.updateProgress(count: context.logCount)
101 |                     logInfo("✅ Parsed dive #\(context.logCount - 1)")
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:245:21: warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
241 |
242 |             progressTimer.invalidate()
243 |             DispatchQueue.main.async {
    |                                      `- note: access can happen concurrently
244 |                 if enumStatus != DC_STATUS_SUCCESS {
245 |                     viewModel.setDetailedError("Download incomplete", 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
246 |                     completion(false)
247 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:248:24: warning: sending 'context' risks causing data races; this is an error in the Swift 6 language mode
241 |
242 |             progressTimer.invalidate()
243 |             DispatchQueue.main.async {
    |                                      `- note: access can happen concurrently
244 |                 if enumStatus != DC_STATUS_SUCCESS {
245 |                     viewModel.setDetailedError("Download incomplete", status: enumStatus)
246 |                     completion(false)
247 |                 } else {
248 |                     if 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
249 |                         if let lastFingerprint = context.lastFingerprint,
250 |                            let deviceSerial = context.deviceSerial {
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:271:55: warning: sending 'contextPtr' risks causing data races; this is an error in the Swift 6 language mode
269 |
270 |                 context.isCompleted = true
271 |                 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
272 |
273 |                 #if os(iOS)
    :
276 |             }
277 |
278 |             currentContext = context
    |                              `- note: access can happen concurrently
279 |         }
280 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/DiveLogRetriever.swift:181:17: warning: sending 'viewModel' risks causing data races; this is an error in the Swift 6 language mode
179 |             // Reset only progress at start of new retrieval
180 |             DispatchQueue.main.async {
181 |                 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
182 |             }
183 |
184 |             guard let dcDevice = devicePtr.pointee.device else {
185 |                 DispatchQueue.main.async {
    |                                          `- note: access can happen concurrently
186 |                     viewModel.setDetailedError("No device connection found", status: DC_STATUS_IO)
187 |                     completion(false)
    :
200 |             // Only pass stored fingerprint if we want to use it (toggle is ON)
201 |             let storedFingerprint: Data? = if let serial = deviceSerial {
202 |                 viewModel.getFingerprint(
    |                           `- note: access can happen concurrently
203 |                     forDeviceType: deviceName,
204 |                     serial: serial
    :
214 |             }
215 |
216 |             let context = CallbackContext(
    |                           `- note: access can happen concurrently
217 |                 viewModel: viewModel,
218 |                 deviceName: deviceName,
Build complete! (11.41s)
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.