From afe375a907b8ed020e2fa31dd05337025b84638c Mon Sep 17 00:00:00 2001 From: Mads Odgaard Date: Tue, 21 Oct 2025 07:59:54 +0200 Subject: [PATCH 1/7] disable SIL verification in release builds --- Package.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index 52ec7ae7..f6cc83e7 100644 --- a/Package.swift +++ b/Package.swift @@ -245,7 +245,8 @@ let package = Package( exclude: ["swift-java.config"], swiftSettings: [ .swiftLanguageMode(.v5), - .unsafeFlags(["-I\(javaIncludePath)", "-I\(javaPlatformIncludePath)"], .when(platforms: [.macOS, .linux, .windows])) + .unsafeFlags(["-I\(javaIncludePath)", "-I\(javaPlatformIncludePath)"], .when(platforms: [.macOS, .linux, .windows])), + .unsafeFlags(["-Xfrontend", "-sil-verify-none"], .when(configuration: .release)), // Workaround for https://github.com/swiftlang/swift/issues/84899 ], linkerSettings: [ .unsafeFlags( From 34715986081050e9fc78de19fb54a84589800e14 Mon Sep 17 00:00:00 2001 From: Mads Odgaard Date: Tue, 21 Oct 2025 08:30:50 +0200 Subject: [PATCH 2/7] enable benchmarks in cI --- .github/workflows/pull_request.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 35cdd448..b436e61d 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -112,6 +112,26 @@ jobs: - name: Gradle compile JMH benchmarks run: ./gradlew compileJmh --info + benchmark-swift: + name: Benchmark (Swift) (${{ matrix.os_version }} swift:${{ matrix.swift_version }} jdk:${{matrix.jdk_vendor}}) + runs-on: ubuntu-latest + strategy: + fail-fast: true + matrix: + swift_version: ['6.2.0'] + os_version: ['jammy'] + jdk_vendor: ['corretto'] + container: + image: ${{ (contains(matrix.swift_version, 'nightly') && 'swiftlang/swift') || 'swift' }}:${{ matrix.swift_version }}-${{ matrix.os_version }} + env: + SWIFT_JAVA_VERBOSE: true + steps: + - uses: actions/checkout@v4 + - name: Prepare CI Environment + uses: ./.github/actions/prepare_env + - name: Swift Benchmarks + run: swift package --package-path Benchmarks/ benchmark list + test-swift: name: Test (Swift) (${{ matrix.os_version }} swift:${{ matrix.swift_version }} jdk:${{matrix.jdk_vendor}}) runs-on: ubuntu-latest From c4640ee69bdd77b96cdb6c398038516cdfcb7709 Mon Sep 17 00:00:00 2001 From: Mads Odgaard Date: Tue, 21 Oct 2025 08:39:18 +0200 Subject: [PATCH 3/7] run benchmarks --- .github/workflows/pull_request.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index b436e61d..3409d4ce 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -129,8 +129,10 @@ jobs: - uses: actions/checkout@v4 - name: Prepare CI Environment uses: ./.github/actions/prepare_env + - name: Install jemalloc + run: sudo apt install -y jemalloc - name: Swift Benchmarks - run: swift package --package-path Benchmarks/ benchmark list + run: swift package --package-path Benchmarks/ benchmark test-swift: name: Test (Swift) (${{ matrix.os_version }} swift:${{ matrix.swift_version }} jdk:${{matrix.jdk_vendor}}) From 304c89586f44093eb749bc96c98b558efa1fb3e0 Mon Sep 17 00:00:00 2001 From: Mads Odgaard Date: Tue, 21 Oct 2025 08:42:52 +0200 Subject: [PATCH 4/7] no sudo --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 3409d4ce..b2584659 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -130,7 +130,7 @@ jobs: - name: Prepare CI Environment uses: ./.github/actions/prepare_env - name: Install jemalloc - run: sudo apt install -y jemalloc + run: apt install -y jemalloc - name: Swift Benchmarks run: swift package --package-path Benchmarks/ benchmark From 27668cc44d1cfc8a1820fcaed58ab77a8ce3266b Mon Sep 17 00:00:00 2001 From: Mads Odgaard Date: Tue, 21 Oct 2025 08:46:48 +0200 Subject: [PATCH 5/7] update jemalloc install --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index b2584659..7eeab635 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -130,7 +130,7 @@ jobs: - name: Prepare CI Environment uses: ./.github/actions/prepare_env - name: Install jemalloc - run: apt install -y jemalloc + run: apt-get update && apt-get install -y jemalloc - name: Swift Benchmarks run: swift package --package-path Benchmarks/ benchmark From 202fa87dc6f4b6c85e878c4ad88627f56264c2d9 Mon Sep 17 00:00:00 2001 From: Mads Odgaard Date: Tue, 21 Oct 2025 08:50:32 +0200 Subject: [PATCH 6/7] install correct jemalloc --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 7eeab635..51efc801 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -130,7 +130,7 @@ jobs: - name: Prepare CI Environment uses: ./.github/actions/prepare_env - name: Install jemalloc - run: apt-get update && apt-get install -y jemalloc + run: apt-get install -y libjemalloc-dev - name: Swift Benchmarks run: swift package --package-path Benchmarks/ benchmark From 1f7aa518d1cab6a6396cd7bee4c517f3f57a6d4c Mon Sep 17 00:00:00 2001 From: Mads Odgaard Date: Tue, 21 Oct 2025 08:53:18 +0200 Subject: [PATCH 7/7] update apt --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 51efc801..f2a1db71 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -130,7 +130,7 @@ jobs: - name: Prepare CI Environment uses: ./.github/actions/prepare_env - name: Install jemalloc - run: apt-get install -y libjemalloc-dev + run: apt-get update && apt-get install -y libjemalloc-dev - name: Swift Benchmarks run: swift package --package-path Benchmarks/ benchmark