Is there any in-progress project for the compiler build system?

Hi! I'm a member of SwiftWasm project.

I'm planning to work on build-script and CMake things to achieve cross-compilation of wasm and Darwin.

The main blocker of the cross-compile is that the CMake script is not designed to be able to build static stdlib and dynamic stdlib at once.
We need this feature because wasm only supports static stdlib but static stdlib is not supported on Darwin.

Before starting this work, I want to confirm whether there is any big in-progress work related to the compiler build system to avoid conflict.

As far as I see, it seems @compnerd is working to refactor build system, but I couldn't find description of the long-term vision of this work.

I would appreciate it if you could tell me about that.
Thanks :pray:

3 Likes

Hey @kateinoigakukun,

Yes, I have been leading work on the build system in order to better support the builds for adding WASM support. This will also make it easier for other collaborators to contribute to the project. It also should pay down the technical debt that has accrued over the project's life in the build system which makes it more difficult to add new features.

The work involves removing the custom build rules for C/C++ (and Swift) code and enabling using modern CMake practices to build the project. This should actually help reduce the CMake configure time, the build time, simplify the build, reduce the amount of CMake code we are maintaining, enable/improve cross-compilation, and enable porting to other environments more readily.

The larger vision is documented at: swift/BuildManifesto.md at main · apple/swift · GitHub

I'd love to see others contributing to this effort.

4 Likes

Thanks for detailed info!

After each stdlib building is isolated, the wasm work will be much easier!

I'm not so much familiar with modern CMake, so I'll take a look around that at first to contribute the project.