The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of LibDCSwift, reference 1.3.0 (f6d94f), with Swift 6.0 for macOS (SPM) on 4 Feb 2025 07:15:08 UTC.

Swift 6 data race errors: 10

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.2.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.60.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/deepsealabs/libdc-swift.git
Reference: 1.3.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/deepsealabs/libdc-swift
 * tag               1.3.0      -> FETCH_HEAD
HEAD is now at f6d94f0 update: changelog.md
Cloned https://github.com/deepsealabs/libdc-swift.git
Revision (git rev-parse @):
f6d94f01f358e7a96126e1089132b779af9e67ec
SUCCESS checkout https://github.com/deepsealabs/libdc-swift.git at 1.3.0
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "libdc-swift",
      "name": "LibDCSwift",
      "url": "https://github.com/deepsealabs/libdc-swift.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/libdc-swift",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/deepsealabs/libdc-swift.git
[1/1409] Fetching libdc-swift
Fetched https://github.com/deepsealabs/libdc-swift.git from cache (1.17s)
Creating working copy for https://github.com/deepsealabs/libdc-swift.git
Working copy of https://github.com/deepsealabs/libdc-swift.git resolved at 1.3.0 (f6d94f0)
warning: '.resolve-product-dependencies': dependency 'libdc-swift' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
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/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_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/zeagle_n2ition3.c"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.10"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.2.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/117] Compiling ble.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.
[1/117] Compiling hw_ostc_parser.c
[2/117] Write sources
[3/117] Write swift-version-5BDAB9E9C0126B9D.txt
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.
[4/117] Compiling oceans_s1_parser.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.
[5/117] Compiling iostream.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.
[6/117] Compiling zeagle_n2ition3.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.
[7/117] Compiling uwatec_smart_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/uwatec_smart.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[8/117] Compiling uwatec_smart.c
[9/117] Compiling buffer.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.
[10/117] 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.
[11/117] Compiling uwatec_memomouse.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/uwatec_aladin.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[12/117] Compiling uwatec_aladin.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.
[13/117] Compiling hw_ostc.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.
[14/117] Compiling usb.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.
[15/117] Compiling hw_ostc3.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/tecdiving_divecomputereu_parser.c:25:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[16/117] Compiling tecdiving_divecomputereu_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/usbhid.c:58:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[17/117] Compiling usbhid.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.
[18/117] Compiling tecdiving_divecomputereu.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.
[19/117] Compiling ihex.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.
[20/117] 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.
[21/117] 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.
[22/117] 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.
[23/117] Compiling suunto_solution_parser.c
[24/117] Compiling configuredc.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/suunto_solution.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[25/117] 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.
[26/117] 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.
[27/117] 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.
[28/117] 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.
[29/117] Compiling suunto_eonsteel_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.
[30/117] Compiling suunto_d9.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/117] Compiling suunto_d9_parser.c
[32/117] 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.
[33/117] 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.
[34/117] 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.
[35/117] 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.
[36/117] 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.
[37/117] 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.
[38/117] 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.
[39/117] Compiling shearwater_common.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/seac_screen_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.
[40/117] Compiling seac_screen_parser.c
[41/117] Compiling ringbuffer.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/seac_screen.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/117] 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.
[43/117] 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.
[44/117] 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.
[45/117] 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.
[46/117] 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.
[47/117] 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.
[48/117] 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.
[49/117] Compiling rbstream.c
[50/117] Compiling platform.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.
[51/117] Compiling pelagic_i330r.c
[52/117] Compiling oceans_s1_common.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.
[53/117] Compiling packet.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/parser.c:69:
/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/117] Compiling 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.
[55/117] 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.
[56/117] 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.
[57/117] 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.
[58/117] 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.
[59/117] Compiling oceanic_veo250.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.
[60/117] Compiling irda.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.
[61/117] Compiling oceanic_common.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.
[62/117] Compiling oceanic_atom2.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.
[63/117] 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.
[64/117] Compiling oceanic_atom2_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/mclean_extreme.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[65/117] Compiling mclean_extreme.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.
[66/117] Compiling serial_posix.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.
[67/117] 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.
[68/117] 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.
[69/117] Compiling mares_nemo_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.
[70/117] Compiling mares_darwin_parser.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.
[71/117] Compiling mares_iconhd_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/mares_iconhd.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[72/117] Compiling mares_iconhd.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.
[73/117] 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.
[74/117] Compiling mares_common.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/liquivision_lynx_parser.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[75/117] 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.
[76/117] Compiling liquivision_lynx.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/iterator.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[77/117] Compiling iterator.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.
[78/117] 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.
[79/117] Compiling hdlc.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.
[80/117] 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.
[81/117] Compiling divesystem_idive.c
[82/117] Compiling timer.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.
[83/117] Compiling bluetooth.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.
[84/117] Compiling divesoft_freedom.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.
[85/117] Compiling divesoft_freedom_parser.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.
[86/117] 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.
[87/117] Compiling diverite_nitekq.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/device.c:71:
/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/117] Compiling device.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.
[89/117] Compiling deepsix_excursion.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.
[90/117] Compiling deepsix_excursion_parser.c
[91/117] Compiling descriptor.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.
[92/117] Compiling deepblu_cosmiq_parser.c
[93/117] 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.
[94/117] Compiling custom.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.
[95/117] Compiling deepblu_cosmiq.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.
[96/117] Compiling cressi_leonardo_parser.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.
[97/117] Compiling socket.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.
[98/117] Compiling cressi_edy_parser.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.
[99/117] Compiling cressi_goa_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.
[100/117] Compiling common.c
[101/117] Compiling cressi_leonardo.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.
[102/117] 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.
[103/117] 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.
[104/117] 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.
[105/117] Compiling cochran_commander_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/cochran_commander.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[106/117] Compiling cochran_commander.c
[107/117] Compiling checksum.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/citizen_aqualand.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
   58 | #define DEBUG(context, ...) UNUSED(context)
      |         ^
<command line>:2:9: note: previous definition is here
    2 | #define DEBUG 1
      |         ^
1 warning generated.
[108/117] Compiling citizen_aqualand.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.
[109/117] Compiling atomics_cobalt_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.
[110/117] Compiling array.c
[110/117] Compiling citizen_aqualand_parser.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.
[112/117] Compiling atomics_cobalt.c
[113/117] Compiling aes.c
[114/117] Compiling BLEBridge.m
[115/117] Write Objects.LinkFileList
[116/128] Linking libLibDCBridge.dylib
[118/128] Compiling LibDCSwift SampleData.swift
[119/128] 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: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 52 |
 53 |    private let defaults = UserDefaults.standard
[120/128] Compiling LibDCSwift GenericParser.swift
[121/129] 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: annotate 'activeInstance' with '@MainActor' if property should only be accessed from the main actor
    |                             `- 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/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: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- 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: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                      `- 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: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)
[122/129] 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: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 25 |     private let fingerprintKey = "DeviceFingerprints"
 26 |
[123/129] 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
CoreBluetooth.CBUUID:2:12: note: class 'CBUUID' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBUUID : NSObject, NSCopying {
   |            `- note: class 'CBUUID' does not conform to the 'Sendable' protocol
 3 |     open var data: Data { get }
 4 |     @available(macOS 10.10, *)
/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: annotate 'knownServiceUUIDs' with '@MainActor' if property should only be accessed from the main actor
    |                        `- 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: annotate 'context' with '@MainActor' if property should only be accessed from the main actor
    |                        `- 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/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: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 52 |
 53 |    private let defaults = UserDefaults.standard
[124/129] 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: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- 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
[125/129] Compiling LibDCSwift LibDCSwift.swift
[126/129] 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: annotate 'sharedInstance' with '@MainActor' if property should only be accessed from the main actor
    |                        `- 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: annotate 'currentContext' with '@MainActor' if property should only be accessed from the main actor
    |                        `- 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: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- 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
CoreBluetooth.CBUUID:2:12: note: class 'CBUUID' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBUUID : NSObject, NSCopying {
   |            `- note: class 'CBUUID' does not conform to the 'Sendable' protocol
 3 |     open var data: Data { get }
 4 |     @available(macOS 10.10, *)
/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: annotate 'knownServiceUUIDs' with '@MainActor' if property should only be accessed from the main actor
    |                        `- 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: annotate 'context' with '@MainActor' if property should only be accessed from the main actor
    |                        `- 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: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- 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: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                      `- 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: annotate 'activeInstance' with '@MainActor' if property should only be accessed from the main actor
    |                             `- 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)")
[127/129] Compiling LibDCSwift DiveData.swift
[128/129] 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: annotate 'sharedInstance' with '@MainActor' if property should only be accessed from the main actor
    |                        `- 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/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: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                      `- 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/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: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- 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/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: annotate 'currentContext' with '@MainActor' if property should only be accessed from the main actor
    |                        `- 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)
CoreBluetooth.CBPeripheral:2:12: note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBPeripheral : CBPeer {
   |            `- note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 3 |     weak open var delegate: (any CBPeripheralDelegate)? { get set }
 4 |     open var name: String? { get }
/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:288:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
286 |         logDebug("🧹 Clearing retrieval state")
287 |         DispatchQueue.main.async { [weak self] in
288 |             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
289 |             self?.currentRetrievalDevice = nil
290 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:338:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
336 |         logInfo("Performing system-level disconnect for \(peripheral.name ?? "Unknown Device")")
337 |         DispatchQueue.main.async {
338 |             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
339 |             self.connectedDevice = nil
340 |             self.writeCharacteristic = nil
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:349:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
347 |     public func clearDiscoveredPeripherals() {
348 |         DispatchQueue.main.async {
349 |             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
350 |         }
351 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:355:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
353 |     public func addDiscoveredPeripheral(_ peripheral: CBPeripheral) {
354 |         DispatchQueue.main.async {
355 |             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
356 |                 self.discoveredPeripherals.append(peripheral)
357 |             }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:355:79: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
353 |     public func addDiscoveredPeripheral(_ peripheral: CBPeripheral) {
354 |         DispatchQueue.main.async {
355 |             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
356 |                 self.discoveredPeripherals.append(peripheral)
357 |             }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:402:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
400 |         peripheral.delegate = self
401 |         DispatchQueue.main.async {
402 |             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
403 |             self.connectedDevice = peripheral
404 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:403:36: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
401 |         DispatchQueue.main.async {
402 |             self.isPeripheralReady = true
403 |             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
404 |         }
405 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:418:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
416 |
417 |         DispatchQueue.main.async {
418 |             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
419 |             self.connectedDevice = nil
420 |
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:424:82: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
422 |             if !self.isDisconnecting {
423 |                 // Attempt to reconnect if this was a stored device
424 |                 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
425 |                     logInfo("Attempting to reconnect to stored device")
426 |                     _ = 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,
[129/129] 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: annotate 'sharedInstance' with '@MainActor' if property should only be accessed from the main actor
    |                        `- 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/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: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                      `- 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/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: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                       `- 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/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: annotate 'currentContext' with '@MainActor' if property should only be accessed from the main actor
    |                        `- 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)
CoreBluetooth.CBPeripheral:2:12: note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class CBPeripheral : CBPeer {
   |            `- note: class 'CBPeripheral' does not conform to the 'Sendable' protocol
 3 |     weak open var delegate: (any CBPeripheralDelegate)? { get set }
 4 |     open var name: String? { get }
/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:288:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
286 |         logDebug("🧹 Clearing retrieval state")
287 |         DispatchQueue.main.async { [weak self] in
288 |             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
289 |             self?.currentRetrievalDevice = nil
290 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:338:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
336 |         logInfo("Performing system-level disconnect for \(peripheral.name ?? "Unknown Device")")
337 |         DispatchQueue.main.async {
338 |             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
339 |             self.connectedDevice = nil
340 |             self.writeCharacteristic = nil
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:349:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
347 |     public func clearDiscoveredPeripherals() {
348 |         DispatchQueue.main.async {
349 |             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
350 |         }
351 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:355:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
353 |     public func addDiscoveredPeripheral(_ peripheral: CBPeripheral) {
354 |         DispatchQueue.main.async {
355 |             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
356 |                 self.discoveredPeripherals.append(peripheral)
357 |             }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:355:79: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
353 |     public func addDiscoveredPeripheral(_ peripheral: CBPeripheral) {
354 |         DispatchQueue.main.async {
355 |             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
356 |                 self.discoveredPeripherals.append(peripheral)
357 |             }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:402:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
400 |         peripheral.delegate = self
401 |         DispatchQueue.main.async {
402 |             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
403 |             self.connectedDevice = peripheral
404 |         }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:403:36: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
401 |         DispatchQueue.main.async {
402 |             self.isPeripheralReady = true
403 |             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
404 |         }
405 |     }
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:418:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
416 |
417 |         DispatchQueue.main.async {
418 |             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
419 |             self.connectedDevice = nil
420 |
/Users/admin/builder/spi-builder-workspace/Sources/LibDCSwift/BLEManager.swift:424:82: warning: sending 'peripheral' risks causing data races; this is an error in the Swift 6 language mode
422 |             if !self.isDisconnecting {
423 |                 // Attempt to reconnect if this was a stored device
424 |                 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
425 |                     logInfo("Attempting to reconnect to stored device")
426 |                     _ = 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! (18.71s)
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/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_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/zeagle_n2ition3.c"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.10"
}
Done.