Given the bit of recent work to restore Windows to a working state on master, I thought I would summarize the current state.
There are a few different approaches to the Windows support. This state regards only one of them: the “native” Windows approach. This uses the Windows SDK and the Visual Studio C Runtime.
With this approach, there are two different ways to build the compiler and runtime. You could cross-compile from Linux or macOS to Windows or you could build on Windows. If you are looking for the easy route, I would highly recommend that you go with the build on Windows for Windows approach. There are still a few issues with the cross-compilation that need to be worked out. If anyone is interested in helping that, please let me know, it would be great to have that work finished up as well.
So far, I have found that there are a few patches which are needed that have not yet been incorporated into the current stable/master branches.
clang: SVN r324439, d1f199e0e0, PR161
swift: PR14493, PR14515, PR14307
Additionally, @AndrewSB is working on the last piece, PR14280.
With these patches, it is possible to build for Windows x86_64 on Windows x86_64. The recommended build is with clang-cl. @AndrewSB has been updating the Windows documentation as well.
Windows cross-module protocol conformances do not work and prevent swiftPrivate.dll from being built (which is a separate thread). Barring that, Windows x86_64 is now able to build a functioning compiler and runtime and is able to build and run a hello world program.
I have created a dashboard on JIRA to track Swift on Windows.