From e8436b72a8c3381ea2c1bb375930b8a909f57229 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Mon, 24 Nov 2025 17:03:56 +0100 Subject: [PATCH 01/21] Make closure passed to AGGraphMutateAttribute escaping --- Sources/Compute/Attribute/AnyAttribute.swift | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Sources/Compute/Attribute/AnyAttribute.swift b/Sources/Compute/Attribute/AnyAttribute.swift index f5527120..1c9e32fb 100644 --- a/Sources/Compute/Attribute/AnyAttribute.swift +++ b/Sources/Compute/Attribute/AnyAttribute.swift @@ -10,7 +10,7 @@ extension Graph { _ attribute: AnyAttribute, type: Metadata, invalidating: Bool, - modify: (UnsafeMutableRawPointer) -> Void + modify: @escaping (UnsafeMutableRawPointer) -> Void ) } @@ -35,8 +35,10 @@ extension AnyAttribute { } public func mutateBody(as type: Body.Type, invalidating: Bool, _ mutator: (inout Body) -> Void) { - Graph.mutateAttribute(self, type: Metadata(type), invalidating: invalidating) { pointer in - mutator(&pointer.assumingMemoryBound(to: Body.self).pointee) + withoutActuallyEscaping(mutator) { escapingMutator in + Graph.mutateAttribute(self, type: Metadata(type), invalidating: invalidating) { pointer in + escapingMutator(&pointer.assumingMemoryBound(to: Body.self).pointee) + } } } From 64169f08bc0b538782b6ff848b699843b2c0d139 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Mon, 24 Nov 2025 17:04:04 +0100 Subject: [PATCH 02/21] Fix warning --- Sources/ComputeCxx/Graph/Graph.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/ComputeCxx/Graph/Graph.cpp b/Sources/ComputeCxx/Graph/Graph.cpp index c629df8d..a5629621 100644 --- a/Sources/ComputeCxx/Graph/Graph.cpp +++ b/Sources/ComputeCxx/Graph/Graph.cpp @@ -801,7 +801,7 @@ void Graph::indirect_attribute_set(data::ptr indirect_node, Attrib } uint64_t source_subgraph_id = source && !source.is_nil() ? source.subgraph()->subgraph_id() : 0; - indirect_node->modify(WeakAttributeID(source, source_subgraph_id), resolved_source.offset()); + indirect_node->modify(WeakAttributeID(source, uint32_t(source_subgraph_id)), resolved_source.offset()); indirect_node->set_traverses_contexts(AttributeID(indirect_node).subgraph()->context_id() != source.subgraph()->context_id()); From f45102abed9f925eb5f0a09cf731a145ac85ade7 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Mon, 24 Nov 2025 17:04:17 +0100 Subject: [PATCH 03/21] Ensure try is before await --- Tests/ComputeTests/Shared/Graph/GraphTests.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tests/ComputeTests/Shared/Graph/GraphTests.swift b/Tests/ComputeTests/Shared/Graph/GraphTests.swift index 0a39792a..c27f60dd 100644 --- a/Tests/ComputeTests/Shared/Graph/GraphTests.swift +++ b/Tests/ComputeTests/Shared/Graph/GraphTests.swift @@ -301,7 +301,7 @@ struct GraphTests { @Test func initialDescription() async throws { - await try #require(processExitsWith: .success) { + try await #require(processExitsWith: .success) { let description = try #require( Graph.description(nil, options: [DescriptionOption.format: "graph/dict"] as NSDictionary) @@ -336,7 +336,7 @@ struct GraphTests { // which we can't predict deterministically. @Test func graphDescription() async throws { - await try #require(processExitsWith: .success) { + try await #require(processExitsWith: .success) { let graph = Graph() let subgraph = Subgraph(graph: graph) From 7be169142222365ed216b90f4cf0c4abe5127832 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Mon, 24 Nov 2025 17:13:07 +0100 Subject: [PATCH 04/21] Add CompatibilityModeAttributeGraphV6 --- Package.swift | 3 ++ Sources/Compute/Attribute/Attribute.swift | 8 +++- .../Shared/Attribute/AttributeTests.swift | 42 ++++++++++++++----- 3 files changed, 42 insertions(+), 11 deletions(-) diff --git a/Package.swift b/Package.swift index a66f1a33..c62f9e6a 100644 --- a/Package.swift +++ b/Package.swift @@ -73,6 +73,9 @@ let package = Package( products: [ .library(name: "Compute", targets: ["Compute"]) ], + traits: [ + .trait(name: "CompatibilityModeAttributeGraphV6") + ], dependencies: dependencies, targets: [ .target( diff --git a/Sources/Compute/Attribute/Attribute.swift b/Sources/Compute/Attribute/Attribute.swift index 10b5895c..443ea442 100644 --- a/Sources/Compute/Attribute/Attribute.swift +++ b/Sources/Compute/Attribute/Attribute.swift @@ -45,9 +45,15 @@ public struct Attribute { let typeID = graphContext.internAttributeType( type: Metadata(Body.self) ) { + let bodyType: _AttributeBody.Type + #if CompatibilityModeAttributeGraphV6 + bodyType = Body.self + #else + bodyType = flags.contains(.external) ? _External.self : Body.self + #endif let attributeType = _AttributeType( - selfType: flags.contains(.external) ? _External.self : Body.self, + selfType: bodyType, valueType: Value.self, flags: flags, update: update() diff --git a/Tests/ComputeTests/Shared/Attribute/AttributeTests.swift b/Tests/ComputeTests/Shared/Attribute/AttributeTests.swift index c75f50f2..db8ec0cc 100644 --- a/Tests/ComputeTests/Shared/Attribute/AttributeTests.swift +++ b/Tests/ComputeTests/Shared/Attribute/AttributeTests.swift @@ -34,17 +34,28 @@ struct AttributeTests { ) let attributeType = attribute.identifier.info.type.pointee - #expect(attributeType.self_id == Metadata(_External.self)) + #if CompatibilityModeAttributeGraphV6 + #expect(attributeType.self_id == Metadata(External.self)) + #else + #expect(attributeType.self_id == Metadata(_External.self)) + #endif #expect(attributeType.value_id == Metadata(Int.self)) #expect(attributeType.flags == [.external, .comparisonModeEquatableAlways]) #expect(attributeType.internal_offset == 28) #expect(attributeType.value_layout == expectedlayout) - let attributeBody = unsafeBitCast( - _External.self as any _AttributeBody.Type, - to: (type: Metadata, witnessTable: UnsafeRawPointer).self - ) + #if CompatibilityModeAttributeGraphV6 + let attributeBody = unsafeBitCast( + External.self as any _AttributeBody.Type, + to: (type: Metadata, witnessTable: UnsafeRawPointer).self + ) + #else + let attributeBody = unsafeBitCast( + _External.self as any _AttributeBody.Type, + to: (type: Metadata, witnessTable: UnsafeRawPointer).self + ) + #endif #expect(attributeType.body_conformance.type_id == attributeBody.type) #expect(attributeType.body_conformance.witness_table == attributeBody.witnessTable) } @@ -69,17 +80,28 @@ struct AttributeTests { ) let attributeType = attribute.identifier.info.type.pointee - #expect(attributeType.self_id == Metadata(_External.self)) + #if CompatibilityModeAttributeGraphV6 + #expect(attributeType.self_id == Metadata(External.self)) + #else + #expect(attributeType.self_id == Metadata(_External.self)) + #endif #expect(attributeType.value_id == Metadata(Int.self)) #expect(attributeType.flags == [.external, .comparisonModeEquatableAlways]) #expect(attributeType.internal_offset == 28) #expect(attributeType.value_layout == expectedlayout) - let attributeBody = unsafeBitCast( - _External.self as any _AttributeBody.Type, - to: (type: Metadata, witnessTable: UnsafeRawPointer).self - ) + #if CompatibilityModeAttributeGraphV6 + let attributeBody = unsafeBitCast( + External.self as any _AttributeBody.Type, + to: (type: Metadata, witnessTable: UnsafeRawPointer).self + ) + #else + let attributeBody = unsafeBitCast( + _External.self as any _AttributeBody.Type, + to: (type: Metadata, witnessTable: UnsafeRawPointer).self + ) + #endif #expect(attributeType.body_conformance.type_id == attributeBody.type) #expect(attributeType.body_conformance.witness_table == attributeBody.witnessTable) } From c413d0e5cb139651ec75b4c0f34289f70c3a6b76 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Mon, 24 Nov 2025 17:18:36 +0100 Subject: [PATCH 05/21] Add test step to CI --- .github/workflows/swift.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index d6f4a438..5a788c77 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -23,3 +23,9 @@ jobs: - name: Build run: swift build working-directory: ./Compute + - name: Test + run: | + swift test --filter UtilitiesTests + swift test --filter ComputeLayoutDescriptorTests + swift test --filter ComputeTests + working-directory: ./Compute From dfc57b30b60045d758befcb4e9e98e89c4d3c49b Mon Sep 17 00:00:00 2001 From: James Moschou Date: Mon, 29 Dec 2025 15:57:46 +0100 Subject: [PATCH 06/21] No need to set AG_PREFETCH_LAYOUTS when calling prefetchCompareValues directly --- .../Shared/PrefetchCompareValuesTests.swift | 34 ------------------- 1 file changed, 34 deletions(-) diff --git a/Tests/ComputeLayoutDescriptorTests/Shared/PrefetchCompareValuesTests.swift b/Tests/ComputeLayoutDescriptorTests/Shared/PrefetchCompareValuesTests.swift index bbc67128..4f3e9529 100644 --- a/Tests/ComputeLayoutDescriptorTests/Shared/PrefetchCompareValuesTests.swift +++ b/Tests/ComputeLayoutDescriptorTests/Shared/PrefetchCompareValuesTests.swift @@ -57,7 +57,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForNever() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -105,7 +104,6 @@ struct PrefetchCompareValuesTests { @Test(arguments: allOptions) func layoutForVoid(with options: ComparisonOptions) { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) let layout = prefetchCompareValues(of: Void.self, options: options, priority: 0) @@ -114,7 +112,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForBool() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -168,7 +165,6 @@ struct PrefetchCompareValuesTests { ] as [(Any.Type, Int)] ) func layoutForNumericNonEquatable(of type: Any.Type, size: Int) async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -188,7 +184,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForIntEquatable() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -211,7 +206,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForDoubleEquatable() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -238,7 +232,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForFloatEquatable() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -265,7 +258,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForString() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -326,7 +318,6 @@ struct PrefetchCompareValuesTests { @Test(arguments: allOptions) func layoutForStaticString(with options: ComparisonOptions) { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) let layout = prefetchCompareValues(of: StaticString.self, options: options, priority: 0) @@ -348,7 +339,6 @@ struct PrefetchCompareValuesTests { @Test("Layout for struct enclosing single element equals the layout of the enclosed element") func layoutForStructEnclosingSingleElement() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) struct StructEnclosingSingleElement { @@ -395,7 +385,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForTrivialStruct() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -455,7 +444,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForStructWithAlignedElement() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -566,7 +554,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForStructWithComplexProperty() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -701,7 +688,6 @@ struct PrefetchCompareValuesTests { @Test(arguments: allOptions) func layoutForEmptyClass(with options: ComparisonOptions) { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) class EmptyClass {} @@ -712,7 +698,6 @@ struct PrefetchCompareValuesTests { @Test(arguments: allOptions) func layoutForTrivialClass(with options: ComparisonOptions) { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) class TrivialClass { @@ -725,7 +710,6 @@ struct PrefetchCompareValuesTests { @Test(arguments: allOptions) func layoutForStructWithWeakVar(with options: ComparisonOptions) { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) class EmptyClass {} @@ -744,7 +728,6 @@ struct PrefetchCompareValuesTests { @Test(arguments: allOptions) func layoutForEmptyEnum(with options: ComparisonOptions) { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) enum EmptyEnum {} @@ -755,7 +738,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForBasicEnum() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -808,7 +790,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForIntEnum() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -861,7 +842,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForTaggedUnionEnum() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -987,7 +967,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForIndirectEnum() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -1095,7 +1074,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForIndirectEnumCase() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -1208,7 +1186,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForTuple() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -1288,7 +1265,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForTupleWithAlignedElement() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -1399,7 +1375,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForArray() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -1460,7 +1435,6 @@ struct PrefetchCompareValuesTests { @Test(arguments: allOptions) func layoutForArrayOfNotEquatable(with options: ComparisonOptions) { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) class NotEquatable {} @@ -1471,7 +1445,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForDictionary() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -1532,7 +1505,6 @@ struct PrefetchCompareValuesTests { @Test(arguments: allOptions) func layoutForDictionaryOfNotEquatable(with options: ComparisonOptions) { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) class NotEquatable {} @@ -1547,7 +1519,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForSet() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -1613,7 +1584,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForEquatableStruct() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -1668,7 +1638,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForEquatableClass() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -1741,7 +1710,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForAny() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -1803,7 +1771,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForAnyError() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) @@ -1882,7 +1849,6 @@ struct PrefetchCompareValuesTests { @Test func layoutForFunction() async { - setenv("AG_PREFETCH_LAYOUTS", "1", 1) setenv("AG_ASYNC_LAYOUTS", "0", 1) setenv("AG_PRINT_LAYOUTS", "1", 1) From 60340301eca5225030703bd17c23bba80a809ef8 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Fri, 9 Jan 2026 13:14:23 +0100 Subject: [PATCH 07/21] Add --skip-build then build include/llvm/all and include/swift/all targets only --- .github/actions/build-swift-project-macos/action.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml index 20fe0205..369185c3 100644 --- a/.github/actions/build-swift-project-macos/action.yml +++ b/.github/actions/build-swift-project-macos/action.yml @@ -32,7 +32,10 @@ runs: --swift-darwin-supported-archs "$(uname -m)" \ --release --swift-disable-dead-stripping \ --bootstrapping=hosttools \ + --skip-build \ --sccache + ninja -C ../build/Ninja-ReleaseAssert/llvm-macosx-arm64 include/llvm/all + ninja -C ../build/Ninja-ReleaseAssert/swift-macosx-arm64 include/swift/all shell: bash working-directory: ./swift-project/swift env: From df0a92bc5972fbdb80c7119941fe122a1b8c1def Mon Sep 17 00:00:00 2001 From: James Moschou Date: Fri, 9 Jan 2026 16:13:32 +0100 Subject: [PATCH 08/21] Skip checkout of all swift-project repositories except swift and llvm-project --- .../build-swift-project-macos/action.yml | 57 ++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml index 369185c3..23c9ff85 100644 --- a/.github/actions/build-swift-project-macos/action.yml +++ b/.github/actions/build-swift-project-macos/action.yml @@ -19,7 +19,62 @@ runs: run: | utils/update-checkout --clone --scheme $CHECKOUT_SCHEME \ --skip-history \ - --skip-repository swift-foundation-icu + --skip-repository brotli \ + --skip-repository cmake \ + --skip-repository cmark \ + --skip-repository curl \ + --skip-repository icu \ + --skip-repository indexstore-db \ + --skip-repository libxml2 \ + --skip-repository llbuild \ + --skip-repository mimalloc \ + --skip-repository ninja \ + --skip-repository sourcekit-lsp \ + --skip-repository swift-argument-parser \ + --skip-repository swift-asn1 \ + --skip-repository swift-async-algorithms \ + --skip-repository swift-atomics \ + --skip-repository swift-build \ + --skip-repository swift-certificates \ + --skip-repository swift-cmark-gfm \ + --skip-repository swift-collections \ + --skip-repository swift-corelibs-blocksruntime \ + --skip-repository swift-corelibs-foundation \ + --skip-repository swift-corelibs-libdispatch \ + --skip-repository swift-corelibs-xctest \ + --skip-repository swift-crypto \ + --skip-repository swift-docc \ + --skip-repository swift-docc-render-artifact \ + --skip-repository swift-docc-symbolkit \ + --skip-repository swift-driver \ + --skip-repository swift-experimental-string-processing \ + --skip-repository swift-format \ + --skip-repository swift-foundation \ + --skip-repository swift-foundation-icu \ + --skip-repository swift-installer-scripts \ + --skip-repository swift-integration-tests \ + --skip-repository swift-llvm-bindings \ + --skip-repository swift-lmdb \ + --skip-repository swift-log \ + --skip-repository swift-markdown \ + --skip-repository swift-nio \ + --skip-repository swift-nio-ssl \ + --skip-repository swift-numerics \ + --skip-repository swift-sdk-generator \ + --skip-repository swift-stress-tester \ + --skip-repository swift-subprocess \ + --skip-repository swift-syntax \ + --skip-repository swift-system \ + --skip-repository swift-testing \ + --skip-repository swift-toolchain-sqlite \ + --skip-repository swift-tools-protocols \ + --skip-repository swift-tools-support-core \ + --skip-repository swift-xcode-playground-support \ + --skip-repository swiftpm \ + --skip-repository wasi-libc \ + --skip-repository wasmkit \ + --skip-repository yams \ + --skip-repository zlib shell: bash working-directory: ./swift-project/swift env: From 6fd8373381c4eff2b0203c9c18cdebf41ebef53e Mon Sep 17 00:00:00 2001 From: James Moschou Date: Fri, 9 Jan 2026 16:32:59 +0100 Subject: [PATCH 09/21] Add --skip-early-swift-driver --- .github/actions/build-swift-project-macos/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml index 23c9ff85..5520abe5 100644 --- a/.github/actions/build-swift-project-macos/action.yml +++ b/.github/actions/build-swift-project-macos/action.yml @@ -88,6 +88,7 @@ runs: --release --swift-disable-dead-stripping \ --bootstrapping=hosttools \ --skip-build \ + --skip-early-swift-driver \ --sccache ninja -C ../build/Ninja-ReleaseAssert/llvm-macosx-arm64 include/llvm/all ninja -C ../build/Ninja-ReleaseAssert/swift-macosx-arm64 include/swift/all From b3f90e3826b8641923f222c5a288b2fa92fcdaf2 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Fri, 9 Jan 2026 17:01:00 +0100 Subject: [PATCH 10/21] Add --skip-build-cmark --- .github/actions/build-swift-project-macos/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml index 5520abe5..9c048bea 100644 --- a/.github/actions/build-swift-project-macos/action.yml +++ b/.github/actions/build-swift-project-macos/action.yml @@ -89,6 +89,7 @@ runs: --bootstrapping=hosttools \ --skip-build \ --skip-early-swift-driver \ + --skip-build-cmark \ --sccache ninja -C ../build/Ninja-ReleaseAssert/llvm-macosx-arm64 include/llvm/all ninja -C ../build/Ninja-ReleaseAssert/swift-macosx-arm64 include/swift/all From 9959f06d5d54a37774995172addc7a63fc914ff9 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Fri, 9 Jan 2026 17:31:43 +0100 Subject: [PATCH 11/21] Add --skip-build-llvm and --skip-build-swift --- .github/actions/build-swift-project-macos/action.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml index 9c048bea..fe17b66a 100644 --- a/.github/actions/build-swift-project-macos/action.yml +++ b/.github/actions/build-swift-project-macos/action.yml @@ -90,6 +90,8 @@ runs: --skip-build \ --skip-early-swift-driver \ --skip-build-cmark \ + --skip-build-llvm \ + --skip-build-swift \ --sccache ninja -C ../build/Ninja-ReleaseAssert/llvm-macosx-arm64 include/llvm/all ninja -C ../build/Ninja-ReleaseAssert/swift-macosx-arm64 include/swift/all From 6dbca8d7f00c9cb8ecc9086694a003d2bd0cb96d Mon Sep 17 00:00:00 2001 From: James Moschou Date: Fri, 9 Jan 2026 18:05:01 +0100 Subject: [PATCH 12/21] Add --skip-test-swift --- .github/actions/build-swift-project-macos/action.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml index fe17b66a..7504a964 100644 --- a/.github/actions/build-swift-project-macos/action.yml +++ b/.github/actions/build-swift-project-macos/action.yml @@ -90,8 +90,7 @@ runs: --skip-build \ --skip-early-swift-driver \ --skip-build-cmark \ - --skip-build-llvm \ - --skip-build-swift \ + --skip-test-swift \ --sccache ninja -C ../build/Ninja-ReleaseAssert/llvm-macosx-arm64 include/llvm/all ninja -C ../build/Ninja-ReleaseAssert/swift-macosx-arm64 include/swift/all From 9ccd353166f1b8cf4d28882afd19a92f8128f909 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Fri, 9 Jan 2026 19:52:24 +0100 Subject: [PATCH 13/21] Add back swift-driver and cmark --- .github/actions/build-swift-project-macos/action.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml index 7504a964..765e324f 100644 --- a/.github/actions/build-swift-project-macos/action.yml +++ b/.github/actions/build-swift-project-macos/action.yml @@ -21,7 +21,6 @@ runs: --skip-history \ --skip-repository brotli \ --skip-repository cmake \ - --skip-repository cmark \ --skip-repository curl \ --skip-repository icu \ --skip-repository indexstore-db \ @@ -46,7 +45,6 @@ runs: --skip-repository swift-docc \ --skip-repository swift-docc-render-artifact \ --skip-repository swift-docc-symbolkit \ - --skip-repository swift-driver \ --skip-repository swift-experimental-string-processing \ --skip-repository swift-format \ --skip-repository swift-foundation \ @@ -88,9 +86,6 @@ runs: --release --swift-disable-dead-stripping \ --bootstrapping=hosttools \ --skip-build \ - --skip-early-swift-driver \ - --skip-build-cmark \ - --skip-test-swift \ --sccache ninja -C ../build/Ninja-ReleaseAssert/llvm-macosx-arm64 include/llvm/all ninja -C ../build/Ninja-ReleaseAssert/swift-macosx-arm64 include/swift/all From 1eec8834d6b53f35f13b1aa951a9e61764b4e063 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Fri, 9 Jan 2026 23:33:32 +0100 Subject: [PATCH 14/21] --skip-early-swift-driver --skip-build-cmark and --skip-build-llvm --- .github/actions/build-swift-project-macos/action.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml index 765e324f..682237f5 100644 --- a/.github/actions/build-swift-project-macos/action.yml +++ b/.github/actions/build-swift-project-macos/action.yml @@ -83,12 +83,13 @@ runs: run: | utils/build-script --skip-build-benchmarks \ --swift-darwin-supported-archs "$(uname -m)" \ - --release --swift-disable-dead-stripping \ + --release --no-assertions --swift-disable-dead-stripping \ --bootstrapping=hosttools \ --skip-build \ + --skip-early-swift-driver \ + --skip-build-cmark \ + --skip-build-llvm \ --sccache - ninja -C ../build/Ninja-ReleaseAssert/llvm-macosx-arm64 include/llvm/all - ninja -C ../build/Ninja-ReleaseAssert/swift-macosx-arm64 include/swift/all shell: bash working-directory: ./swift-project/swift env: From 17614b6a94a7b843f3cddda1e423466c53960789 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Fri, 9 Jan 2026 23:55:27 +0100 Subject: [PATCH 15/21] Build cmark --- .github/actions/build-swift-project-macos/action.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml index 682237f5..70569677 100644 --- a/.github/actions/build-swift-project-macos/action.yml +++ b/.github/actions/build-swift-project-macos/action.yml @@ -87,7 +87,6 @@ runs: --bootstrapping=hosttools \ --skip-build \ --skip-early-swift-driver \ - --skip-build-cmark \ --skip-build-llvm \ --sccache shell: bash @@ -97,7 +96,7 @@ runs: - name: Create symbolic links to build directories run: | mkdir -p build/Default - ln -s ../Ninja-ReleaseAssert/swift-macosx-arm64 build/Default/swift - ln -s ../Ninja-ReleaseAssert/llvm-macosx-arm64 build/Default/llvm + ln -s ../Ninja-Release/swift-macosx-arm64 build/Default/swift + ln -s ../Ninja-Release/llvm-macosx-arm64 build/Default/llvm shell: bash working-directory: ./swift-project From 0c39f486520c6a53fd5ec452996c3019d07e8c2e Mon Sep 17 00:00:00 2001 From: James Moschou Date: Sat, 10 Jan 2026 16:23:10 +0100 Subject: [PATCH 16/21] Skip build embedded swift stdlib --- .github/actions/build-swift-project-macos/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml index 70569677..23973267 100644 --- a/.github/actions/build-swift-project-macos/action.yml +++ b/.github/actions/build-swift-project-macos/action.yml @@ -88,6 +88,7 @@ runs: --skip-build \ --skip-early-swift-driver \ --skip-build-llvm \ + --build-embedded-stdlib=0 \ --sccache shell: bash working-directory: ./swift-project/swift From b81d4d6fe0a0f9e23a7497c88872366a5480658f Mon Sep 17 00:00:00 2001 From: James Moschou Date: Sat, 10 Jan 2026 18:05:20 +0100 Subject: [PATCH 17/21] Remove skips --- .github/actions/build-swift-project-macos/action.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml index 23973267..56619174 100644 --- a/.github/actions/build-swift-project-macos/action.yml +++ b/.github/actions/build-swift-project-macos/action.yml @@ -86,9 +86,6 @@ runs: --release --no-assertions --swift-disable-dead-stripping \ --bootstrapping=hosttools \ --skip-build \ - --skip-early-swift-driver \ - --skip-build-llvm \ - --build-embedded-stdlib=0 \ --sccache shell: bash working-directory: ./swift-project/swift From 59b7a3e1d53edcc4c62cd17fd8cb8275a8fdf231 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Sat, 10 Jan 2026 18:57:09 +0100 Subject: [PATCH 18/21] Remove dependency on SwiftEquatableSupport.h --- Sources/ComputeCxx/Swift/Metadata.cpp | 8 +++----- Sources/ComputeCxx/Swift/Metadata.h | 10 ++++++++-- Sources/ComputeCxx/Swift/SwiftShims.h | 3 +-- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Sources/ComputeCxx/Swift/Metadata.cpp b/Sources/ComputeCxx/Swift/Metadata.cpp index 95624633..f6b9688c 100644 --- a/Sources/ComputeCxx/Swift/Metadata.cpp +++ b/Sources/ComputeCxx/Swift/Metadata.cpp @@ -2,7 +2,6 @@ #include #include -#include #include #include #include @@ -273,12 +272,11 @@ const equatable_witness_table *metadata::equatable() const { if (!nsobject_metadata) { return nullptr; } - auto witness_table = - swift_conformsToProtocol(nsobject_metadata, &::swift::equatable_support::EquatableProtocolDescriptor); + auto witness_table = swift_conformsToProtocol(nsobject_metadata, EquatableProtocolDescriptor); return reinterpret_cast(witness_table); }(); auto conformance = reinterpret_cast( - swift_conformsToProtocol(this, &::swift::equatable_support::EquatableProtocolDescriptor)); + swift_conformsToProtocol(this, &EquatableProtocolDescriptor)); if (conformance == nsobject_conformance) { return nullptr; } @@ -288,7 +286,7 @@ const equatable_witness_table *metadata::equatable() const { case ::swift::MetadataKind::Enum: case ::swift::MetadataKind::Optional: case ::swift::MetadataKind::Tuple: { - auto witness_table = swift_conformsToProtocol(this, &::swift::equatable_support::EquatableProtocolDescriptor); + auto witness_table = swift_conformsToProtocol(this, &EquatableProtocolDescriptor); return reinterpret_cast(witness_table); } default: diff --git a/Sources/ComputeCxx/Swift/Metadata.h b/Sources/ComputeCxx/Swift/Metadata.h index aa85da13..a6366fcf 100644 --- a/Sources/ComputeCxx/Swift/Metadata.h +++ b/Sources/ComputeCxx/Swift/Metadata.h @@ -1,18 +1,24 @@ #pragma once #include -#include +#include #include #include "Comparison/LayoutDescriptor.h" CF_ASSUME_NONNULL_BEGIN +CF_EXPORT +const void *PROTOCOL_DESCR_SYM(SQ); + namespace AG { namespace swift { +static constexpr auto &EquatableProtocolDescriptor = PROTOCOL_DESCR_SYM(SQ); + +struct equatable_witness_table; + using opaque_value = ::swift::OpaqueValue; -using equatable_witness_table = ::swift::equatable_support::EquatableWitnessTable; class metadata_visitor; class context_descriptor; diff --git a/Sources/ComputeCxx/Swift/SwiftShims.h b/Sources/ComputeCxx/Swift/SwiftShims.h index 17492091..e9031e02 100644 --- a/Sources/ComputeCxx/Swift/SwiftShims.h +++ b/Sources/ComputeCxx/Swift/SwiftShims.h @@ -3,7 +3,6 @@ #include #include #include -#include #include "ComputeCxx/AGSwiftSupport.h" @@ -13,7 +12,7 @@ CF_EXTERN_C_BEGIN AG_SWIFT_CC(swift) bool AGDispatchEquatable(const void *lhs_value, const void *rhs_value, const ::swift::Metadata *type, - const ::swift::equatable_support::EquatableWitnessTable *wt); + const AG::swift::equatable_witness_table *wt); #ifdef __OBJC__ AG_SWIFT_CC(swift) From 81f732a9674fdedb1490002737b5e1aaf028eee1 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Sat, 10 Jan 2026 20:18:10 +0100 Subject: [PATCH 19/21] Checkout swift header files directly, update include flags and manually write CMakeConfig.h --- .../build-swift-project-macos/action.yml | 100 ------------------ .../actions/checkout-swift-headers/action.yml | 43 ++++++++ .github/workflows/swift.yml | 10 +- .gitignore | 3 + Package.swift | 13 +-- 5 files changed, 54 insertions(+), 115 deletions(-) delete mode 100644 .github/actions/build-swift-project-macos/action.yml create mode 100644 .github/actions/checkout-swift-headers/action.yml diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml deleted file mode 100644 index 56619174..00000000 --- a/.github/actions/build-swift-project-macos/action.yml +++ /dev/null @@ -1,100 +0,0 @@ -name: Build Swift Project - -inputs: - checkout-scheme: - description: The schema passed to utils/update-checkout - required: true - -runs: - using: "composite" - steps: - - uses: actions/checkout@v4 - with: - repository: swiftlang/swift - path: swift-project/swift - - name: Install dependencies - run: brew install ninja sccache - shell: bash - - name: Update checkout - run: | - utils/update-checkout --clone --scheme $CHECKOUT_SCHEME \ - --skip-history \ - --skip-repository brotli \ - --skip-repository cmake \ - --skip-repository curl \ - --skip-repository icu \ - --skip-repository indexstore-db \ - --skip-repository libxml2 \ - --skip-repository llbuild \ - --skip-repository mimalloc \ - --skip-repository ninja \ - --skip-repository sourcekit-lsp \ - --skip-repository swift-argument-parser \ - --skip-repository swift-asn1 \ - --skip-repository swift-async-algorithms \ - --skip-repository swift-atomics \ - --skip-repository swift-build \ - --skip-repository swift-certificates \ - --skip-repository swift-cmark-gfm \ - --skip-repository swift-collections \ - --skip-repository swift-corelibs-blocksruntime \ - --skip-repository swift-corelibs-foundation \ - --skip-repository swift-corelibs-libdispatch \ - --skip-repository swift-corelibs-xctest \ - --skip-repository swift-crypto \ - --skip-repository swift-docc \ - --skip-repository swift-docc-render-artifact \ - --skip-repository swift-docc-symbolkit \ - --skip-repository swift-experimental-string-processing \ - --skip-repository swift-format \ - --skip-repository swift-foundation \ - --skip-repository swift-foundation-icu \ - --skip-repository swift-installer-scripts \ - --skip-repository swift-integration-tests \ - --skip-repository swift-llvm-bindings \ - --skip-repository swift-lmdb \ - --skip-repository swift-log \ - --skip-repository swift-markdown \ - --skip-repository swift-nio \ - --skip-repository swift-nio-ssl \ - --skip-repository swift-numerics \ - --skip-repository swift-sdk-generator \ - --skip-repository swift-stress-tester \ - --skip-repository swift-subprocess \ - --skip-repository swift-syntax \ - --skip-repository swift-system \ - --skip-repository swift-testing \ - --skip-repository swift-toolchain-sqlite \ - --skip-repository swift-tools-protocols \ - --skip-repository swift-tools-support-core \ - --skip-repository swift-xcode-playground-support \ - --skip-repository swiftpm \ - --skip-repository wasi-libc \ - --skip-repository wasmkit \ - --skip-repository yams \ - --skip-repository zlib - shell: bash - working-directory: ./swift-project/swift - env: - CHECKOUT_SCHEME: ${{ inputs.checkout-scheme }} - - name: Run sccache-cache - uses: mozilla-actions/sccache-action@v0.0.9 - - name: Build Swift - run: | - utils/build-script --skip-build-benchmarks \ - --swift-darwin-supported-archs "$(uname -m)" \ - --release --no-assertions --swift-disable-dead-stripping \ - --bootstrapping=hosttools \ - --skip-build \ - --sccache - shell: bash - working-directory: ./swift-project/swift - env: - SCCACHE_GHA_ENABLED: "true" - - name: Create symbolic links to build directories - run: | - mkdir -p build/Default - ln -s ../Ninja-Release/swift-macosx-arm64 build/Default/swift - ln -s ../Ninja-Release/llvm-macosx-arm64 build/Default/llvm - shell: bash - working-directory: ./swift-project diff --git a/.github/actions/checkout-swift-headers/action.yml b/.github/actions/checkout-swift-headers/action.yml new file mode 100644 index 00000000..970206b2 --- /dev/null +++ b/.github/actions/checkout-swift-headers/action.yml @@ -0,0 +1,43 @@ +name: Checkout Swift Headers +description: | + This action checks-out certain header files from the swiftlang/swift + repository. + +inputs: + path: + description: Relative path under $GITHUB_WORKSPACE to place the repository + required: true + swift-version-major: + description: The Swift toolchain major version. + required: true + swift-version-minor: + description: The Swift toolchain minor version. + required: true + +runs: + using: "composite" + steps: + - uses: actions/checkout@v4 + with: + repository: swiftlang/swift + path: ${{ inputs.path }} + ref: release/${{ inputs.swift-version-major }}.${{ inputs.swift-version-minor }} + sparse-checkout: | + include/swift + stdlib/include + stdlib/public/SwiftShims + stdlib/public/runtime/MetadataAllocatorTags.def + - name: Write CMakeConfig.h file + run: | + cat > include/swift/Runtime/CMakeConfig.h << EOF + #ifndef SWIFT_RUNTIME_CMAKECONFIG_H + #define SWIFT_RUNTIME_CMAKECONFIG_H + #define SWIFT_VERSION_MAJOR "${SWIFT_VERSION_MAJOR}" + #define SWIFT_VERSION_MINOR "${SWIFT_VERSION_MINOR}" + #endif + EOF + shell: bash + working-directory: ${{ inputs.path }} + env: + SWIFT_VERSION_MAJOR: ${{ inputs.swift-version-major }} + SWIFT_VERSION_MINOR: ${{ inputs.swift-version-minor }} diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 5a788c77..a75e85a8 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -15,17 +15,15 @@ jobs: steps: - uses: actions/checkout@v4 + - uses: ./Compute/.github/actions/checkout-swift-headers with: - path: Compute - - uses: ./Compute/.github/actions/build-swift-project-macos - with: - checkout-scheme: release/6.2 + path: Checkouts/swift + swift-version-major: 6 + swift-version-minor: 2 - name: Build run: swift build - working-directory: ./Compute - name: Test run: | swift test --filter UtilitiesTests swift test --filter ComputeLayoutDescriptorTests swift test --filter ComputeTests - working-directory: ./Compute diff --git a/.gitignore b/.gitignore index 45330081..307a8685 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,6 @@ # Swift .build .swiftpm + +# Dependencies +Checkouts \ No newline at end of file diff --git a/Package.swift b/Package.swift index c62f9e6a..44cf7e5d 100644 --- a/Package.swift +++ b/Package.swift @@ -2,7 +2,7 @@ import PackageDescription -let swiftProjectPath = "\(Context.packageDirectory)/../swift-project" +let swiftCheckoutPath = "\(Context.packageDirectory)/Checkouts/swift" var dependencies: [Package.Dependency] = [ .package(url: "https://github.com/apple/swift-algorithms", from: "1.2.0"), @@ -52,14 +52,9 @@ extension Target { "-DCOMPILED_WITH_SWIFT", "-DPURE_BRIDGING_MODE", "-UIBOutlet", "-UIBAction", "-UIBInspectable", - "-isystem", "\(swiftProjectPath)/swift/include", - "-isystem", "\(swiftProjectPath)/swift/stdlib/public/SwiftShims", - "-isystem", "\(swiftProjectPath)/swift/stdlib/public/runtime", - "-isystem", "\(swiftProjectPath)/llvm-project/llvm/include", - "-isystem", "\(swiftProjectPath)/llvm-project/clang/include", - "-isystem", "\(swiftProjectPath)/build/Default/swift/include", - "-isystem", "\(swiftProjectPath)/build/Default/llvm/include", - "-isystem", "\(swiftProjectPath)/build/Default/llvm/tools/clang/include", + "-isystem", "\(swiftCheckoutPath)/include", + "-isystem", "\(swiftCheckoutPath)/stdlib/include", + "-isystem", "\(swiftCheckoutPath)/stdlib/public/SwiftShims", "-DLLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING", ]) ] + cxxSettings From 5a8c8f9cc9f2429d237c15777be920c0cbc024cd Mon Sep 17 00:00:00 2001 From: James Moschou Date: Sat, 10 Jan 2026 20:20:50 +0100 Subject: [PATCH 20/21] Fix path to action --- .github/workflows/swift.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index a75e85a8..417ef41f 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -15,7 +15,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: ./Compute/.github/actions/checkout-swift-headers + - uses: ./.github/actions/checkout-swift-headers with: path: Checkouts/swift swift-version-major: 6 From 4bd16fdb9c3b00f24318ab622e544d0af4df88d8 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Sat, 10 Jan 2026 20:43:07 +0100 Subject: [PATCH 21/21] Clean up cxxSettings in Package.swift --- Package.swift | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Package.swift b/Package.swift index 44cf7e5d..cbd954d0 100644 --- a/Package.swift +++ b/Package.swift @@ -51,11 +51,9 @@ extension Target { "-static", "-DCOMPILED_WITH_SWIFT", "-DPURE_BRIDGING_MODE", - "-UIBOutlet", "-UIBAction", "-UIBInspectable", "-isystem", "\(swiftCheckoutPath)/include", "-isystem", "\(swiftCheckoutPath)/stdlib/include", - "-isystem", "\(swiftCheckoutPath)/stdlib/public/SwiftShims", - "-DLLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING", + "-isystem", "\(swiftCheckoutPath)/stdlib/public/SwiftShims" ]) ] + cxxSettings )