Hello fellow developers,
After the Swift/Win32 post, I figure that some people may be curious as to the actual state of Swift for Windows. Well, I would like to share a small status update to that end.
This has been a rather interesting and fun journey. I feel that up until this point, we have been making progress, but the surface area is pretty high, particularly for a single person to take on. I have been chipping away at this for a while now. However, as of today, I think that the situation is about to change. I have finally managed to get the compiler, the support libraries, the runtime, standard library, libdispatch, and now, Foundation to build and run on Windows! This is still dependent on a couple of patches that will no doubt need to be cleaned up before they are ready to be merged. But, with Foundation at least running on Windows, Swift on Windows becomes viable for a large number of developers and enables others to start contributing to the effort as well.
I would really like to thank a number of people for their invaluable help through this, including in no particular order, @Michael_Gottesman, @millenomi, @John_McCall, @Joe_Groff, @Slava_Pestov, @jrose, @graskind for their suggestions, conversations, discussions (and sometimes serving as someone that I would need to vent to!). I'm sure that I am missing a many good others who have helped along the way. The task would have been a great deal more challenging (nearly impossible!) without their assistance.
There are still a number of patches in flight across the board - the compiler, Foundation, tests, build system, etc, but should be mostly a matter of polishing off the patches and getting them merged. Additionally, I am still slowly chipping away at the remaining test failures in the Swift test suite. With the outstanding patch, we are now under 100 test failures (that is in a test suite of ~5100 tests!). As to the test failures, the bulk of them are in the driver tests, the reflection tests (due to the reflection support not being able to read the PE/COFF image), and the remainder are smatterings all over the place. Additionally, I have been going through the test suite and enabling them where ever possible even across Linux, which should give us a fairly good coverage to ensure that things on Windows are stable.
Finally, a small parting screenshot of plutil
running on Windows