- 
                Notifications
    You must be signed in to change notification settings 
- Fork 1.4k
Open
Labels
Description
Is it reproducible with SwiftPM command-line tools: swift build, swift test, swift package etc?
-  Confirmed reproduction steps with SwiftPM CLI. The description text must include reproduction steps with either of command-line SwiftPM commands, swift build,swift test,swift packageetc.
Description
When building swift-foundation-icu with the swiftbuild build system, it takes 30% longer (40s vs. 30s) to build the package on Linux. Despite a small absolute difference of 10s, relative to the existing build time this is quite significant and likely to be very visible in constrained CI environments.
Expected behavior
I'd expect the performance to be relatively equivalent or better
Actual behavior
root@nightly-noble:/Repos/Public/swift-foundation-icu# rm -rf .build
root@nightly-noble:/Repos/Public/swift-foundation-icu# swift build --build-system swiftbuild
Building for debugging...
warning: /Repos/Public/swift-foundation-icu/icuSources/common/ualoc.cpp:1070:32 variable length arrays in C++ are a Clang extension
warning: /Repos/Public/swift-foundation-icu/icuSources/common/ualoc.cpp:1071:32 variable length arrays in C++ are a Clang extension
[99/100] _FoundationICU 499 / 500
[100/100] 
Build complete! (40.71 secs)
root@nightly-noble:/Repos/Public/swift-foundation-icu# rm -rf .build
root@nightly-noble:/Repos/Public/swift-foundation-icu# swift build        
Building for debugging...
/Repos/Public/swift-foundation-icu/icuSources/common/ualoc.cpp:1070:32: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
 1070 |     LocaleIDInfo prefLangInfos[preferredLanguagesCount];
      |                                ^~~~~~~~~~~~~~~~~~~~~~~
/Repos/Public/swift-foundation-icu/icuSources/common/ualoc.cpp:1070:32: note: function parameter 'preferredLanguagesCount' with unknown value cannot be used in a constant expression
/Repos/Public/swift-foundation-icu/icuSources/common/ualoc.cpp:1038:35: note: declared here
 1038 |                           int32_t preferredLanguagesCount,
      |                                   ^
/Repos/Public/swift-foundation-icu/icuSources/common/ualoc.cpp:1071:32: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
 1071 |     LocaleIDInfo availLocInfos[availableLocalizationsCount];
      |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/Repos/Public/swift-foundation-icu/icuSources/common/ualoc.cpp:1071:32: note: function parameter 'availableLocalizationsCount' with unknown value cannot be used in a constant expression
/Repos/Public/swift-foundation-icu/icuSources/common/ualoc.cpp:1040:35: note: declared here
 1040 |                           int32_t availableLocalizationsCount,
      |                                   ^
2 warnings generated.
[487/487] Compiling icu_packaged_data.cpp
Build complete! (30.93s)
Steps to reproduce
- Checkout swift-foundation-icu
- Build via swift build
- Clean build folder
- Build via swift build --build-system swiftbuild
Swift Package Manager version/commit hash
10/17 Nightly Main Toolchain
Swift & OS version (output of swift --version ; uname -a)
Swift version 6.3-dev (LLVM d8e7cc748ee6e7f, Swift a07ea37d0054945)
Target: aarch64-unknown-linux-gnu
Build config: +assertions
Linux nightly-noble 6.1.68 #1 SMP Fri Nov 22 18:05:17 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux