<div dir="ltr"><div>Hi, Joel.</div><div><br></div><div>These are procedures to build the Swift compiler/library in Cygwin and in Windows (MSVC). It has some interim workaround to resolve problems.</div><div><br></div><div>I think you will take time to build these. If you failed at some steps or have any questions, let me know them.</div><div><br></div><a href="https://github.com/tinysun212/swift-windows/blob/swift-msvc-20160428/BUILD-WINDOWS.md">https://github.com/tinysun212/swift-windows/blob/swift-msvc-20160428/BUILD-WINDOWS.md</a><br><div><br></div><div><a href="https://github.com/tinysun212/swift-windows/blob/swift-cygwin-20160428/BUILD-CYGWIN-64.md">https://github.com/tinysun212/swift-windows/blob/swift-cygwin-20160428/BUILD-CYGWIN-64.md</a><br></div><div><br></div><div>- Han Sanjign</div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-04-28 11:55 GMT+09:00 Erica Sadun <span dir="ltr"><<a href="mailto:erica@ericasadun.com" target="_blank">erica@ericasadun.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>Please whoever is doing the windows port, please drop me an email and let me know how things are going, what challenges you're facing etc. I'd like to get you a little publicity. (Also happy to write about any other dev-specific challenges for the language, not just Windows.)</div><div><br></div><div>Cheers, -- Erica</div><div><div class="h5"><div><br></div><div><blockquote type="cite"><div>On Apr 27, 2016, at 6:25 PM, Han via swift-dev <<a href="mailto:swift-dev@swift.org" target="_blank">swift-dev@swift.org</a>> wrote:</div><br><div><div dir="auto"><div>I was busy. Before cleaning build procedure, I merged recent snapshot, and resolving conflict, followed up some bug, modified and checked Cygwin build. Now in cleaning build procedure for MSVC, I decided to change the cmake generator to Ninja from MSBuild - it is more faster when recompiling.</div><div><br></div><div>It will be finished in soon. But don't expect too much, ... you should use hexa editor to build the static library.</div><div><br></div><div>- Han Sangjin</div><div><br>2016. 4. 28. 6:09 Joel Van Eenwyk <<a href="mailto:joel.vaneenwyk@gmail.com" target="_blank">joel.vaneenwyk@gmail.com</a>> :<br><br></div><blockquote type="cite"><div><div dir="ltr"><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Hi Han,<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">I’ve synced and ready to help out on this.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">“For building MSVC port, it will be better waiting several days until I prepare a draft build manual - current build description is too dirty (/<span>misc</span>/Build_msvc.txt).”<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Any updates on this?</span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><a name="m_-7202498904121080928_m_4695428887972579702_m_-6179875563934254525__MailEndCompose"><br></a></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><a name="m_-7202498904121080928_m_4695428887972579702_m_-6179875563934254525__MailEndCompose">--Joel</a></span></p><p class="MsoNormal"><span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></span></p><span></span><p class="MsoNormal"><a name="m_-7202498904121080928_m_4695428887972579702_m_-6179875563934254525__MailOriginal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b></a><span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Shawn Erickson [mailto:<a href="mailto:shawnce@gmail.com" target="_blank">shawnce@gmail.com</a>] <br><b>Sent:</b> Friday, April 22, 2016 8:27 AM<br><b>To:</b> Sangjin Han <<a href="mailto:tinysun.net@gmail.com" target="_blank">tinysun.net@gmail.com</a>>; Joel Van Eenwyk <<a href="mailto:joel.vaneenwyk@gmail.com" target="_blank">joel.vaneenwyk@gmail.com</a>><br><b>Cc:</b> swift-dev <<a href="mailto:swift-dev@swift.org" target="_blank">swift-dev@swift.org</a>><br><b>Subject:</b> Re: [swift-dev] Swift port to Windows : Offering help!<u></u><u></u></span></span></p><p class="MsoNormal"><span><u></u> <u></u></span></p><div><p class="MsoNormal"><span>Trying to get back on PR1950 today.. fighting to get things building again after a recent update-checkout.<u></u><u></u></span></p><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt"><span>-Shawn<u></u><u></u></span></p><div><div><p class="MsoNormal"><span>On Thu, Apr 21, 2016 at 7:18 PM Sangjin Han via swift-dev <</span><a href="mailto:swift-dev@swift.org" target="_blank"><span>swift-dev@swift.org</span><span></span></a><span>> wrote:<u></u><u></u></span></p></div><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"><div><div><p class="MsoNormal"><span>Hi Joel,<u></u><u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span>I list some URLs.<u></u><u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span>Bug/Feature report in </span><a href="http://bugs.swift.org/" target="_blank"><span>http://bugs.swift.org</span><span></span></a><span><u></u><u></u></span></p></div><div><p class="MsoNormal"><span>-------------------------------------------<u></u><u></u></span></p></div><div><p class="MsoNormal"><span>SR-34 Port Swift to Windows (</span><a href="https://bugs.swift.org/browse/SR-34" target="_blank"><span>https://bugs.swift.org/browse/SR-34</span><span></span></a><span>)<u></u><u></u></span></p></div><div><p class="MsoNormal"><span>SR-612 In Cygwin port, print() crashed at hook (</span><a href="https://bugs.swift.org/browse/SR-612" target="_blank"><span>https://bugs.swift.org/browse/SR-612</span><span></span></a><span>)<u></u><u></u></span></p></div><div><p class="MsoNormal"><span>SR-1128 autolink extraction does not work on Cygwin (</span><a href="https://bugs.swift.org/browse/SR-1128" target="_blank"><span>https://bugs.swift.org/browse/SR-1128</span><span></span></a><span>)<u></u><u></u></span></p></div><div><p class="MsoNormal"><span>SR-1131 Build script for MSVC on Windows (</span><a href="https://bugs.swift.org/browse/SR-1131" target="_blank"><span>https://bugs.swift.org/browse/SR-1131</span><span></span></a><span>)<u></u><u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span>Pull Requsts in </span><a href="http://github.com/apple/swift" target="_blank"><span>http://github.com/apple/swift</span><span></span></a><span> <u></u><u></u></span></p></div><div><p class="MsoNormal"><span>---------------------------------------------<u></u><u></u></span></p></div><div><p class="MsoNormal"><span>[stdlib/msvc] Runtime with MSVC library (</span><a href="https://github.com/apple/swift/pull/1918" target="_blank"><span>https://github.com/apple/swift/pull/1918</span><span></span></a><span>)<u></u><u></u></span></p></div><div><p class="MsoNormal"><span>-- Currently working on. Waiting passing PR #1950.<u></u><u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span>[swiftc/msvc] Compiling with MSVC library (</span><a href="https://github.com/apple/swift/pull/1516" target="_blank"><span>https://github.com/apple/swift/pull/1516</span><span></span></a><span>)<u></u><u></u></span></p></div><div><p class="MsoNormal"><span>-- Waiting some more opinions or reviews.<u></u><u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span>[runtime] enhanced and refactored recently added Mutex abstraction (</span><a href="https://github.com/apple/swift/pull/1950" target="_blank"><span>https://github.com/apple/swift/pull/1950</span><span></span></a><span>)<u></u><u></u></span></p></div><div><p class="MsoNormal"><span>-- This is not about porting, but it enhances portability by removing POSIX pthread. After merging, PR #1918 will be more simpler.<u></u><u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span>IRGen: add support for DLL Storage semantics (</span><a href="https://github.com/apple/swift/pull/2080" target="_blank"><span>https://github.com/apple/swift/pull/2080</span><span></span></a><span>)<u></u><u></u></span></p></div><div><p class="MsoNormal"><span>-- I think this is the most important topic for Windows/MSVC porting, but not Cygwin port.<u></u><u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span>Issues in Mailing list<u></u><u></u></span></p></div><div><p class="MsoNormal"><span>----------------------<u></u><u></u></span></p></div><div><p class="MsoNormal"><span>Subject: "swift (ABI) and Windows" in </span><a href="https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20160404/subject.html" target="_blank"><span>https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20160404/subject.html</span><span></span></a><span> and </span><a href="https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20160411/subject.html" target="_blank"><span>https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20160411/subject.html</span><span></span></a><span> <u></u><u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span>Subject: "long double usage in swift" in </span><a href="https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20160321/subject.html" target="_blank"><span>https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20160321/subject.html</span><span></span></a><span><u></u><u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span>My Repo for Patch<u></u><u></u></span></p></div><div><p class="MsoNormal"><span>-----------------<u></u><u></u></span></p></div><div><p class="MsoNormal"><span>Repository: </span><a href="https://github.com/tinysun212/swift-windows/tree/upstream-with-windows" target="_blank"><span>https://github.com/tinysun212/swift-windows/tree/upstream-with-windows</span><span></span></a><span><u></u><u></u></span></p></div><div><p class="MsoNormal"><span>binary for MSVC: </span><a href="https://github.com/tinysun212/swift-windows/releases/tag/swift-msvc-20160418" target="_blank"><span>https://github.com/tinysun212/swift-windows/releases/tag/swift-msvc-20160418</span><span></span></a><span><u></u><u></u></span></p></div><div><p class="MsoNormal"><span>binary for Cygwin: </span><a href="https://github.com/tinysun212/swift-windows-bin/tree/master/swift-cygwin" target="_blank"><span>https://github.com/tinysun212/swift-windows-bin/tree/master/swift-cygwin</span><span></span></a><span><u></u><u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span>Help<u></u><u></u></span></p></div><div><p class="MsoNormal"><span>----<u></u><u></u></span></p></div><div><p class="MsoNormal"><span>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.<u></u><u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span>For building MSVC port, it will be better waiting several days until I prepare a draft build manual - current build description is too dirty (/misc/Build_msvc.txt).<u></u><u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span>If you once run the compilers, you can see they are lack compared to Linux or OS X.<u></u><u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span>All of that is only on swift port. For swift-lldb, swift-corelibs-foundation, swift-corelibs-libdispatch, I have not touched at all.<u></u><u></u></span></p></div></div><div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span>Han Sangjin<u></u><u></u></span></p></div></div><div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><div><p class="MsoNormal"><span>2016-04-22 8:20 GMT+09:00 Joel Van Eenwyk <</span><a href="mailto:joel.vaneenwyk@gmail.com" target="_blank"><span>joel.vaneenwyk@gmail.com</span><span></span></a><span>>:<u></u><u></u></span></p><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"><div><p class="MsoNormal"><span>Hi Han,<u></u><u></u></span></p><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span>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.<u></u><u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span>Cheers,<u></u><u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span>--Joel<u></u><u></u></span></p></div></div><div><div><div><p class="MsoNormal"><span><u></u> <u></u></span></p><div><p class="MsoNormal"><span>On Thu, Apr 21, 2016 at 4:15 PM, Sangjin Han via swift-dev <</span><a href="mailto:swift-dev@swift.org" target="_blank"><span>swift-dev@swift.org</span><span></span></a><span>> wrote:<u></u><u></u></span></p><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"><div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span>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.<u></u><u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span>1. Cygwin port<u></u><u></u></span></p></div><div><p class="MsoNormal"><span> 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.<u></u><u></u></span></p></div><div><p class="MsoNormal"><span> <u></u><u></u></span></p></div><div><p class="MsoNormal"><span> Currently, you can build the swift compiler and standard library if you applying my 'informal' hacked patch and build manual.<u></u><u></u></span></p></div><div><p class="MsoNormal"><span> <u></u><u></u></span></p></div><div><p class="MsoNormal"><span> To-be tasks are verifying and sharing the build manual, porting the autolink-extract module, passing failed test code, etc.<u></u><u></u></span></p></div><div><p class="MsoNormal"><span> <u></u><u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span>2. Window port<u></u><u></u></span></p></div><div><p class="MsoNormal"><span> 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.<u></u><u></u></span></p></div><div><p class="MsoNormal"><span> <u></u><u></u></span></p></div><div><p class="MsoNormal"><span> Currently, there is a 'informal' compiler that barely compiles Hello.swift.<u></u><u></u></span></p></div><div><p class="MsoNormal"><span> <u></u><u></u></span></p></div><div><p class="MsoNormal"><span> To-be tasks are the solving problems, dllimport/dllexport problem for DLL, build script problem, plus all tasks of Cygwin's.<u></u><u></u></span></p></div><div><p class="MsoNormal"><span><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span>I'll give you related links in next post.<u></u><u></u></span></p></div><div><p class="MsoNormal"><span><span style="color:#888888"><u></u> <u></u></span></span></p></div><div><p class="MsoNormal"><span><span style="color:#888888">Han Sangjin<u></u><u></u></span></span></p></div><div><p class="MsoNormal"><span><span style="color:#888888"><u></u> <u></u></span></span></p></div></div><div><div><div><p class="MsoNormal"><span><u></u> <u></u></span></p><div><p class="MsoNormal"><span>2016-04-22 3:29 GMT+09:00 Dmitri Gribenko <</span><a href="mailto:gribozavr@gmail.com" target="_blank"><span>gribozavr@gmail.com</span><span></span></a><span>>:<u></u><u></u></span></p><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"><p class="MsoNormal"><span>CC'ing Han, the maintainer of the Cygwin port.<u></u><u></u></span></p><div><div><p class="MsoNormal"><span><br>On Wed, Apr 20, 2016 at 10:59 PM, Joel Van Eenwyk via swift-dev<br><</span><a href="mailto:swift-dev@swift.org" target="_blank"><span>swift-dev@swift.org</span><span></span></a><span>> wrote:<br>> Hi all,<br>><br>> I'm a very new user of Swift and interested in finding ways to contribute to<br>> the project. I can happily work with the Linux port of the project, but I<br>> have a lot of Windows development experience and would probably be most<br>> useful there. Where can I find information about the current status of a<br>> Windows port (if any)? Perhaps I'm blind but finding any 'official'<br>> information about a Windows version has been quite tricky. :)<br>><br>> For background on me, I'm primarily a game programmer and the company I work<br>> for (Havok) recently got acquired by Microsoft. Working on some open source<br>> projects is just something I'm interested in exploring in my free time.<br>><br>> All the best,<br>><br>> --Joel<br>><u></u><u></u></span></p></div></div><p class="MsoNormal"><span>> _______________________________________________<br>> swift-dev mailing list<br>> </span><a href="mailto:swift-dev@swift.org" target="_blank"><span>swift-dev@swift.org</span><span></span></a><span><br>> </span><a href="https://lists.swift.org/mailman/listinfo/swift-dev" target="_blank"><span>https://lists.swift.org/mailman/listinfo/swift-dev</span><span></span></a><span><br>><br><span style="color:#888888"><br><br><br>--<br>main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if<br>(j){printf("%d\n",i);}}} /*Dmitri Gribenko <</span></span><a href="mailto:gribozavr@gmail.com" target="_blank"><span>gribozavr@gmail.com</span><span></span></a><span><span style="color:#888888">>*/</span><u></u><u></u></span></p></blockquote></div><p class="MsoNormal"><span><u></u> <u></u></span></p></div></div></div><p class="MsoNormal" style="margin-bottom:12.0pt"><span><br>_______________________________________________<br>swift-dev mailing list<br></span><a href="mailto:swift-dev@swift.org" target="_blank"><span>swift-dev@swift.org</span><span></span></a><span><br></span><a href="https://lists.swift.org/mailman/listinfo/swift-dev" target="_blank"><span>https://lists.swift.org/mailman/listinfo/swift-dev</span><span></span></a><span><u></u><u></u></span></p></blockquote></div><p class="MsoNormal"><span><u></u> <u></u></span></p></div></div></div></blockquote></div><p class="MsoNormal"><span><u></u> <u></u></span></p></div></div><p class="MsoNormal"><span>_______________________________________________<br>swift-dev mailing list<br></span><a href="mailto:swift-dev@swift.org" target="_blank"><span>swift-dev@swift.org</span><span></span></a><span><br></span><a href="https://lists.swift.org/mailman/listinfo/swift-dev" target="_blank"><span>https://lists.swift.org/mailman/listinfo/swift-dev</span><span></span></a><span></span><u></u><u></u></p></blockquote></div></div></div></div></div></div>
</div></blockquote></div>_______________________________________________<br>swift-dev mailing list<br><a href="mailto:swift-dev@swift.org" target="_blank">swift-dev@swift.org</a><br><a href="https://lists.swift.org/mailman/listinfo/swift-dev" target="_blank">https://lists.swift.org/mailman/listinfo/swift-dev</a><br></div></blockquote></div><br></div></div></div></blockquote></div><br></div>