From ce03ce33f0177e73060832d885f668f8095b4d80 Mon Sep 17 00:00:00 2001 From: Kyle Date: Sun, 11 May 2025 21:22:42 +0800 Subject: [PATCH 1/3] Fix duplicated -enable-library-evolution flag --- Package.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/Package.swift b/Package.swift index 6b915acd..6a5e42b7 100644 --- a/Package.swift +++ b/Package.swift @@ -35,7 +35,6 @@ var sharedCSettings: [CSetting] = [ var sharedSwiftSettings: [SwiftSetting] = [ .enableUpcomingFeature("InternalImportsByDefault"), .swiftLanguageMode(.v5), - .unsafeFlags(["-enable-library-evolution"]), ] // MARK: [env] OPENGRAPH_SWIFT_TOOLCHAIN_PATH From d987dc7b877299b0d6fbf6a4d8afa58a640b4732 Mon Sep 17 00:00:00 2001 From: Kyle Date: Sun, 11 May 2025 21:35:02 +0800 Subject: [PATCH 2/3] Disable OPENGRAPH_LIBRARY_EVOLUTION for swift test --- .github/workflows/compatibility_tests.yml | 2 ++ .github/workflows/macos.yml | 4 ++++ Package.swift | 1 + 3 files changed, 7 insertions(+) diff --git a/.github/workflows/compatibility_tests.yml b/.github/workflows/compatibility_tests.yml index 0e127baf..eb20b1ce 100644 --- a/.github/workflows/compatibility_tests.yml +++ b/.github/workflows/compatibility_tests.yml @@ -36,6 +36,8 @@ jobs: - name: Swift version run: swift --version - name: Run tests against Apple's AttributeGraph on macOS via SwiftPM + env: + OPENGRAPH_LIBRARY_EVOLUTION: 0 run: | swift test \ --build-path .build-compatibility-test-debug diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index f299b1c8..18fdca4e 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -35,6 +35,8 @@ jobs: - name: Swift version run: swift --version - name: Build and run tests in debug mode with coverage + env: + OPENGRAPH_LIBRARY_EVOLUTION: 0 run: | swift test \ -c debug \ @@ -45,6 +47,8 @@ jobs: .build-test-debug/debug/OpenGraphPackageTests.xctest/Contents/MacOS/OpenGraphPackageTests \ > coverage.txt - name: Build and run tests in release mode + env: + OPENGRAPH_LIBRARY_EVOLUTION: 0 run: | swift test \ -c release \ diff --git a/Package.swift b/Package.swift index 6a5e42b7..b803ec3a 100644 --- a/Package.swift +++ b/Package.swift @@ -118,6 +118,7 @@ let libraryEvolutionCondition = envEnable("OPENGRAPH_LIBRARY_EVOLUTION") #endif if libraryEvolutionCondition { + // NOTE: -enable-library-evolution is not supported on `swift build` yet. sharedSwiftSettings.append(.unsafeFlags(["-enable-library-evolution"])) } From ee15a46457fd46f57eeee1eccaab72cf1724089a Mon Sep 17 00:00:00 2001 From: Kyle Date: Sun, 11 May 2025 22:11:28 +0800 Subject: [PATCH 3/3] Fix reserved_runtime_symbol_name warning --- Package.swift | 1 + Sources/OpenGraph/Runtime/TupleType.swift | 16 ++++++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Package.swift b/Package.swift index b803ec3a..3394cf49 100644 --- a/Package.swift +++ b/Package.swift @@ -34,6 +34,7 @@ var sharedCSettings: [CSetting] = [ var sharedSwiftSettings: [SwiftSetting] = [ .enableUpcomingFeature("InternalImportsByDefault"), + .enableExperimentalFeature("Extern"), .swiftLanguageMode(.v5), ] diff --git a/Sources/OpenGraph/Runtime/TupleType.swift b/Sources/OpenGraph/Runtime/TupleType.swift index e8f296ff..fddf1e4b 100644 --- a/Sources/OpenGraph/Runtime/TupleType.swift +++ b/Sources/OpenGraph/Runtime/TupleType.swift @@ -75,15 +75,15 @@ extension UnsafeTuple { // MARK: - UnsafeMutableTuple -@_silgen_name("swift_slowAlloc") -private func slowAlloc(_ size: Int, _ alignMask: Int) -> UnsafeMutableRawPointer - -@_silgen_name("swift_slowDealloc") -private func slowDealloc(_ ptr: UnsafeMutableRawPointer, _ size: Int, _ alignMask: Int) - extension UnsafeMutableTuple { public init(with tupleType: TupleType) { - self.init(type: tupleType, value: slowAlloc(tupleType.size, -1)) + self.init( + type: tupleType, + value: UnsafeMutableRawPointer.allocate( + byteCount: tupleType.size, + alignment: -1 + ) + ) } public func initialize(at index: Int, to element: T) { @@ -104,7 +104,7 @@ extension UnsafeMutableTuple { if initialized { deinitialize() } - slowDealloc(value, -1, -1) + value.deallocate() } public var count: Int { type.count }