[swift-dev] Swift port to Windows : Offering help!

Sangjin Han tinysun.net at gmail.com
Thu Apr 21 21:18:35 CDT 2016

Hi Joel,

I list some URLs.

Bug/Feature report in http://bugs.swift.org
SR-34 Port Swift to Windows (https://bugs.swift.org/browse/SR-34)
SR-612 In Cygwin port, print() crashed at hook (
SR-1128 autolink extraction does not work on Cygwin (
SR-1131 Build script for MSVC on Windows (

Pull Requsts in http://github.com/apple/swift
[stdlib/msvc] Runtime with MSVC library (
-- Currently working on. Waiting passing PR #1950.

[swiftc/msvc] Compiling with MSVC library (
-- Waiting some more opinions or reviews.

[runtime] enhanced and refactored recently added Mutex abstraction (
-- This is not about porting, but it enhances portability by removing POSIX
pthread. After merging, PR #1918 will be more simpler.

IRGen: add support for DLL Storage semantics (
-- I think this is the most important topic for Windows/MSVC porting, but
not Cygwin port.

Issues in Mailing list
Subject: "swift (ABI) and Windows" in

Subject: "long double usage in swift" in

My Repo for Patch
binary for MSVC:
binary for Cygwin:

If you are also interested in Cygwin port, it is also very helpful to
verify/check the build manual (it is placed at /BUILD-CYGWIN-64.md in root
of my repo), so that we make a PR for master, and everyone build the Cygwin
port without my forked repo.

For building MSVC port, it will be better waiting several days until I
prepare a draft build manual - current build description is too dirty

If you once run the compilers, you can see they are lack compared to Linux
or OS X.

All of that is only on swift port. For swift-lldb,
swift-corelibs-foundation, swift-corelibs-libdispatch, I have not touched
at all.

Han Sangjin

2016-04-22 8:20 GMT+09:00 Joel Van Eenwyk <joel.vaneenwyk at gmail.com>:

> Hi Han,
> Thanks for the details! Do you have a custom fork or branch with these
> changes? I'd love to be able to test this out and contribute if you think
> that could help you out. I can get started on testing what you have now as
> soon as tomorrow.
> Cheers,
> --Joel
> On Thu, Apr 21, 2016 at 4:15 PM, Sangjin Han via swift-dev <
> swift-dev at swift.org> wrote:
>> I'm writing code for Windows/Cygwin port on my free time. There is no
>> well documented information about that. Instead I'll give you some
>> information and several links for you.
>> 1. Cygwin port
>>   Cygwin is a POSIX environment on Windows. Porting to Cygwin is
>> relatively easer than Windows native. This is x86_64-unknown-windows-cygwin
>> in llvm target name.
>>   Currently, you can build the swift compiler and standard library if you
>> applying my 'informal' hacked patch and build manual.
>>   To-be tasks are verifying and sharing the build manual, porting the
>> autolink-extract module, passing failed test code, etc.
>> 2. Window port
>>   This is x86_64-pc-windows-msvc in llvm target name, so I call this
>> 'Windows with MSVC library' when confusing with Cygwin - Windows with
>> Cygwin DLL. Porting to Windows is harder than Cygwin. Swift source uses
>> C++11 standard with some POSIX functions, GNU extension functions as well
>> as platform specific codes for OS X or Linux, and the build script for
>> Swift supposed to run on BASH shell. To compile the Swift source, we should
>> use the Clang compiler for clang specific feature.
>>   Currently, there is a 'informal' compiler that barely compiles
>> Hello.swift.
>>   To-be tasks are the solving problems, dllimport/dllexport problem for
>> DLL, build script problem, plus all tasks of Cygwin's.
>> I'll give you related links in next post.
>> Han Sangjin
>> 2016-04-22 3:29 GMT+09:00 Dmitri Gribenko <gribozavr at gmail.com>:
>>> CC'ing Han, the maintainer of the Cygwin port.
>>> On Wed, Apr 20, 2016 at 10:59 PM, Joel Van Eenwyk via swift-dev
>>> <swift-dev at swift.org> wrote:
>>> > Hi all,
>>> >
>>> > I'm a very new user of Swift and interested in finding ways to
>>> contribute to
>>> > the project. I can happily work with the Linux port of the project,
>>> but I
>>> > have a lot of Windows development experience and would probably be most
>>> > useful there. Where can I find information about the current status of
>>> a
>>> > Windows port (if any)? Perhaps I'm blind but finding any 'official'
>>> > information about a Windows version has been quite tricky. :)
>>> >
>>> > For background on me, I'm primarily a game programmer and the company
>>> I work
>>> > for (Havok) recently got acquired by Microsoft. Working on some open
>>> source
>>> > projects is just something I'm interested in exploring in my free time.
>>> >
>>> > All the best,
>>> >
>>> > --Joel
>>> >
>>> > _______________________________________________
>>> > swift-dev mailing list
>>> > swift-dev at swift.org
>>> > https://lists.swift.org/mailman/listinfo/swift-dev
>>> >
>>> --
>>> main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
>>> (j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/
>> _______________________________________________
>> swift-dev mailing list
>> swift-dev at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-dev/attachments/20160422/7b646f7c/attachment.html>

More information about the swift-dev mailing list