It has been a while since I've posted about what has been going on in the World of Windows.
I'm happy to announce that we are effectively at a fully passing test suite (caveat emptor - there are pending patches that are needed)! The official benchmark for this is obviously the runs on Azure, which currently reports 14 failures (with pending patches for most of them),
I think at this point, with pending patches, we should be able to claim that Windows support is as good as macOS and Linux! There are still known deficiencies that need to be addressed (which are being found as means of the work on Foundation).
I have been working on Foundation as well, which is in a better shape than before. It is possible to build it on Windows, though there is pending work to refactor the build a slight bit which will improve things and enable the nightlies to build Foundation as well. However, getting the library to build is only the beginning and running through the test suite should help get some level of confidence in the library functioning properly. To that end, there is a good chunk of the test suite which currently runs and passes, but there is still work to be done there to actually get the library to the level of polish that I would like to see on the library. Others have reported being able to build and use Foundation on Windows as well :-).
The Foundation test suite suite uses XCTest, which needed to be ported to Windows. That work is complete and in tree. With one known issue (which is the cause of the two test failures in the XCTest test suite on Windows), this library is fully functional and passing the complete test suite on Windows and should be considered to be ready for regular use on Windows.
One of the core dependencies in libdispatch, which along with the 1121 merge gained a bunch of improvements for supporting XCTest and Foundation. Timer queues also work on Windows as well, though, File and Socket sources still need to be implemented. Nearly half the test suite builds and passes on Windows now!
llbuild has a partial port to Windows and there are additional pending patches to allow it to build on Windows. swift-package-manager has some work done as well to help move along that port to Windows, but there is still a bunch of work to be done there.
The Windows instructions have been updated to reflect all of this information, and it should be possible for others to replicate this work as well. Overall, it seems that most of the compiler, runtime, and core libraries are now usable on Windows with the test coverage quickly converging to the point where it is nearly as good as the other supported platforms!
Yes, I am aware of the day that this is being posted on, and no, this is not an elaborate hoax!
Happy April Fool's day!
Saleem
CC: @tkremenek