Closed lorentey closed 4 months ago
Candidate commit:
Diff: https://github.com/apple/swift-collections/compare/1.0.5...release/1.0
Given the sheer number of supported Swifts, I'll only be doing a tiny fraction of the full pre-release test matrix.
I'll skip Windows testing; I trust that the CMake build results on macOS & Linux indicate that Windows will pass too.
Testing progress:
macOS/AS
macOS/x86_64
Linux/Aarch64
Linux/x86_64
Windows 10/x86_64
(Note: I expect most of this matrix will remain untested in this tag.)
The 1.0.5..release/1.0 diffs look alright. I just want to look at some older Swifts on Linux before going ahead with the tag.
Swift 5.3 doesn't like @unchecked Sendable
:
[83/92] Compiling OrderedCollections _UnsafeBitset.swift
/source/swift-collections/Sources/OrderedCollections/OrderedSet/OrderedSet+Sendable.swift:12:24: error: unknown attribute 'unchecked'
extension OrderedSet: @unchecked Sendable where Element: Sendable {}
^
/source/swift-collections/Sources/OrderedCollections/OrderedSet/OrderedSet+Sendable.swift:12:58: error: cannot find type 'Sendable' in scope
extension OrderedSet: @unchecked Sendable where Element: Sendable {}
^~~~~~~~
/source/swift-collections/Sources/OrderedCollections/OrderedSet/OrderedSet+Sendable.swift:12:34: error: cannot find type 'Sendable' in scope
extension OrderedSet: @unchecked Sendable where Element: Sendable {}
^~~~~~~~
Heh, that's because OrderedSet
's conformance doesn't have the usual condition around it: 🤦♂️
extension OrderedSet: @unchecked Sendable where Element: Sendable {}
Fix landed in #346. Resuming tests without retrying previously successful runs. (I'm assuming the new change will not break those.)
The CMake config appears to be missing a source file, and it leads to errors on 5.5+:
[04 cmake.build-with-ninja] ninja -C /tmp/run-full-tests.sh.s3YVt/cmake
Failed in 2s. See /tmp/run-full-tests.sh.s3YVt/04.cmake.build-with-ninja.log for full console output.
internal var _base: OrderedDictionary
^
/source/swift-collections/Sources/OrderedCollections/OrderedDictionary/OrderedDictionary+Elements+SubSequence.swift:95:18: error: stored property '_base' of 'Sendable'-conforming struct 'Iterator' has non-sendable type 'OrderedDictionary<Key, Value>'
internal var _base: OrderedDictionary
^
/source/swift-collections/Sources/OrderedCollections/OrderedDictionary/OrderedDictionary+Elements.swift:18:18: error: stored property '_base' of 'Sendable'-conforming struct 'Elements' has non-sendable type 'OrderedDictionary<Key, Value>'
internal var _base: OrderedDictionary
^
[2/3] Linking Swift static library lib/libDequeModule.a
ninja: build stopped: subcommand failed.
It's quite embarrassing that I haven't caught this on arm64 🤔
Huh, curiously it did succeed there:
[03 cmake.generate] cmake -S . -B /tmp/run-full-tests.sh.8aG9s/cmake -G Ninja
Completed in 4s
[04 cmake.build-with-ninja] ninja -C /tmp/run-full-tests.sh.8aG9s/cmake
Completed in 6s
Ah, this is only a problem on 5.5. Evidently the conformances are inferred in 5.6+? Weird.
OK, this is ready to go.
I think I'll forgo pre-announcing the new release; it seems unlikely we'd get any actual feedback even if something broke, and I don't want purely ceremonial delays.
The release is out now: https://github.com/apple/swift-collections/releases/tag/1.0.6
We should tag a new release that ships changes that recently landed on the release/1.0 branch.
The Sendable conformances from #317 are particularly important for clients.