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

Joel Van Eenwyk joel.vaneenwyk at gmail.com
Wed Apr 27 16:09:40 CDT 2016


Hi Han,



I’ve synced and ready to help out on this.



“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).”



Any updates on this?


--Joel



*From:* Shawn Erickson [mailto:shawnce at gmail.com]
*Sent:* Friday, April 22, 2016 8:27 AM
*To:* Sangjin Han <tinysun.net at gmail.com>; Joel Van Eenwyk <
joel.vaneenwyk at gmail.com>
*Cc:* swift-dev <swift-dev at swift.org>
*Subject:* Re: [swift-dev] Swift port to Windows : Offering help!



Trying to get back on PR1950 today.. fighting to get things building again
after a recent update-checkout.



-Shawn

On Thu, Apr 21, 2016 at 7:18 PM Sangjin Han via swift-dev <
swift-dev at swift.org> wrote:

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 (
https://bugs.swift.org/browse/SR-612)

SR-1128 autolink extraction does not work on Cygwin (
https://bugs.swift.org/browse/SR-1128)

SR-1131 Build script for MSVC on Windows (
https://bugs.swift.org/browse/SR-1131)





Pull Requsts in http://github.com/apple/swift

---------------------------------------------

[stdlib/msvc] Runtime with MSVC library (
https://github.com/apple/swift/pull/1918)

-- Currently working on. Waiting passing PR #1950.



[swiftc/msvc] Compiling with MSVC library (
https://github.com/apple/swift/pull/1516)

-- Waiting some more opinions or reviews.



[runtime] enhanced and refactored recently added Mutex abstraction (
https://github.com/apple/swift/pull/1950)

-- 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 (
https://github.com/apple/swift/pull/2080)

-- 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
https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20160404/subject.html
and
https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20160411/subject.html




Subject: "long double usage in swift" in
https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20160321/subject.html





My Repo for Patch

-----------------

Repository:
https://github.com/tinysun212/swift-windows/tree/upstream-with-windows

binary for MSVC:
https://github.com/tinysun212/swift-windows/releases/tag/swift-msvc-20160418

binary for Cygwin:
https://github.com/tinysun212/swift-windows-bin/tree/master/swift-cygwin





Help

----

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
(/misc/Build_msvc.txt).



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





_______________________________________________
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/20160427/23844bd4/attachment.html>


More information about the swift-dev mailing list