Updating the bootstrap toolchain for Windows

Hello Swift Developers,

In order to get the early swift-driver working on Windows, reduce build times, and enable some additional performance improvements on Windows, I would like to bump up the bootstrap toolchain on Windows to a newer snapshot on main. While this is going against some of the project's general desired direction (i.e. supporting a bootstrap toolchain 2 releases back), this work is pretty critical to make significant improvements to the development process on Windows.

In theory, we could try to backport the changes to 6.2, but that would be extremely risky as we would be backporting O(100) changes across the clang importer, IRGen, build, Foundation, ICU, Runtimes, etc.

The migration is meant to enable us to bootstrap the toolchain in a much more reasonable manner, (finally) enable the early swift-driver on Windows, and reduce overall build times, as well as finish the migration to the new "experimental" SDKs (which bring a set of new functionalities for Windows).

I would personally feel a bit more comfortable to do this transition as a multi-stage transition:

  1. transition now to near-term future snapshot (i.e. ~10/10)
  2. wait for the next release branch and then update to a snapshot from the release branch on main
  3. wait for the final release on the next release branch and update main to the final release version

However, this would not be possible to carry out on the release branch itself which would have to stick to an imminent snapshot.

I am hopeful that this will bring the windows toolchain builds into a much better state and enable a number of new opportunities for developers, while also improving the development experience for the Swift distribution itself.

Saleem

3 Likes

Personally I think this is a good plan. IMO getting Windows using the new driver is more important than keeping it bootstrapping from two versions back, and this change only affects Windows.