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