Build Information
Successful build of LibDCSwift, reference main (32b133
), with Swift 6.0 for macOS (SPM) on 28 Feb 2025 09:58:38 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: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/deepsealabs/libdc-swift
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 32b133a Delete fyi.md
Cloned https://github.com/deepsealabs/libdc-swift.git
Revision (git rev-parse @):
32b133a74a33b7a144321d2f155c17ef90c29c0e
SUCCESS checkout https://github.com/deepsealabs/libdc-swift.git at main
========================================
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/1424] Fetching libdc-swift
Fetched https://github.com/deepsealabs/libdc-swift.git from cache (0.99s)
Creating working copy for https://github.com/deepsealabs/libdc-swift.git
Working copy of https://github.com/deepsealabs/libdc-swift.git resolved at main (32b133a)
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 checksum.c
[1/117] Write swift-version-5BDAB9E9C0126B9D.txt
[2/117] Write sources
[3/117] Compiling array.c
[4/117] Compiling ble.c
[5/117] Compiling aes.c
[6/117] Compiling buffer.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.
[7/117] Compiling atomics_cobalt.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.
[8/117] Compiling atomics_cobalt_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/hw_frog.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[9/117] Compiling hw_frog.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/zeagle_n2ition3.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[10/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.
[11/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.
[12/117] Compiling uwatec_smart.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/uwatec_memomouse_parser.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[13/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.
[14/117] Compiling uwatec_memomouse.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/usb.c:40:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[15/117] Compiling usb.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/uwatec_aladin.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[16/117] Compiling uwatec_aladin.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.
[17/117] Compiling hdlc.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.
[18/117] Compiling tecdiving_divecomputereu_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/tecdiving_divecomputereu.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[19/117] Compiling configuredc.c
[20/117] Compiling tecdiving_divecomputereu.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.
[21/117] Compiling usbhid.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/suunto_vyper_parser.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[22/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.
[23/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.
[24/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.
[25/117] Compiling suunto_solution_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/suunto_solution.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[26/117] Compiling suunto_solution.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_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.
[28/117] Compiling suunto_eon_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/suunto_eon.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[29/117] Compiling suunto_eon.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/suunto_d9.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[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
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.
[32/117] Compiling suunto_eonsteel_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/suunto_common2.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[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
[35/117] Compiling suunto_common.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.
[36/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.
[37/117] Compiling shearwater_predator_parser.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_predator.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[39/117] Compiling shearwater_predator.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
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/shearwater_common.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[41/117] Compiling shearwater_common.c
[42/117] Compiling ringbuffer.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/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.
[44/117] Compiling seac_screen.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.
[45/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.
[46/117] Compiling reefnet_sensusultra.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_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.
[48/117] Compiling reefnet_sensus_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/reefnet_sensus.c:26:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[49/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.
[50/117] Compiling rbstream.c
[51/117] Compiling platform.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.
[52/117] Compiling packet.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.
[53/117] Compiling pelagic_i330r.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
[55/117] Compiling oceans_s1_common.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/oceans_s1_parser.c:29:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[56/117] Compiling oceans_s1_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/oceans_s1.c:30:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[57/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.
[58/117] Compiling oceanic_vtpro_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.
[59/117] Compiling oceanic_vtpro.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/oceanic_veo250_parser.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[60/117] Compiling oceanic_veo250_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/oceanic_veo250.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[61/117] Compiling oceanic_veo250.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/oceanic_common.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[62/117] Compiling oceanic_common.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/mclean_extreme_parser.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[63/117] Compiling mclean_extreme_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/oceanic_atom2.c:29:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[64/117] Compiling oceanic_atom2.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.
[65/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.
[66/117] Compiling mclean_extreme.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/mares_puck.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[67/117] Compiling mares_puck.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/mares_nemo_parser.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[68/117] Compiling mares_nemo_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/mares_nemo.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[69/117] Compiling mares_nemo.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/mares_iconhd_parser.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[70/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.
[71/117] Compiling mares_iconhd.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/mares_darwin_parser.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[72/117] Compiling mares_darwin_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/mares_darwin.c:30:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[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/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.
[75/117] Compiling iterator.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/liquivision_lynx_parser.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[76/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.
[77/117] Compiling liquivision_lynx.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/iostream.c:29:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[78/117] Compiling iostream.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/ihex.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[79/117] Compiling ihex.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/hw_ostc_parser.c:29:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[80/117] Compiling hw_ostc_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/hw_ostc3.c:28:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[81/117] Compiling hw_ostc3.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.
[82/117] Compiling irda.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.
[83/117] Compiling hw_ostc.c
[83/117] Compiling timer.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.
[85/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.
[86/117] Compiling divesystem_idive.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.
[87/117] Compiling diverite_nitekq_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/divesoft_freedom.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[88/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.
[89/117] Compiling divesoft_freedom_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.
[90/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.
[91/117] Compiling device.c
[92/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.
[93/117] Compiling deepblu_cosmiq_parser.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.
[94/117] Compiling serial_posix.c
[95/117] Compiling datetime.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.
[96/117] Compiling deepsix_excursion.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/deepblu_cosmiq.c:27:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[97/117] Compiling deepblu_cosmiq.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.
[98/117] Compiling deepsix_excursion_parser.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.
[99/117] Compiling custom.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/cressi_leonardo_parser.c:25:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[100/117] Compiling cressi_leonardo_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.
[101/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.
[102/117] Compiling cressi_leonardo.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.
[103/117] Compiling cressi_edy_parser.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/cressi_goa.c:29:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[104/117] Compiling cressi_goa.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.
[105/117] Compiling cressi_edy.c
In file included from /Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context.c:37:
/Users/admin/builder/spi-builder-workspace/libdivecomputer/src/context-private.h:58:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
58 | #define DEBUG(context, ...) UNUSED(context)
| ^
<command line>:2:9: note: previous definition is here
2 | #define DEBUG 1
| ^
1 warning generated.
[106/117] Compiling context.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.
[107/117] Compiling bluetooth.c
[108/117] Compiling common.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.
[109/117] Compiling citizen_aqualand_parser.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.
[110/117] Compiling citizen_aqualand.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.
[111/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.
[112/117] Compiling cochran_commander.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.
[113/117] Compiling socket.c
[114/117] Compiling BLEBridge.m
[115/117] Write Objects.LinkFileList
[116/128] Linking libLibDCBridge.dylib
[118/128] Compiling LibDCSwift GenericParser.swift
[119/128] Compiling LibDCSwift SampleData.swift
[120/129] Compiling LibDCSwift LibDCSwift.swift
[121/129] 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
[122/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
[123/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,
[124/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,
[125/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 |
[126/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)
[127/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)")
[128/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
[129/129] Compiling LibDCSwift DiveData.swift
Build complete! (20.48s)
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.