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

Joel Van Eenwyk joel.vaneenwyk at gmail.com
Fri Apr 22 10:24:16 CDT 2016


Hi Han,

Thanks for all the details and links! I'll pull these down today and give
the Cygwin port a shot to start with. Please let me know when the MSVC port
is in a good place to start hammering on it.

As for the JIRA tickets, are you alright with me updating some of those to
include more details and active progress so that it's easier for others to
find it? I use JIRA daily and find great pleasure in cleaning up tickets. I
agree with your comments on https://bugs.swift.org/browse/SR-34 that there
should be separate issues for each variant. If nobody disagrees, I can get
those created and linked up properly.

Cheers,

--Joel

On Thu, Apr 21, 2016 at 7:18 PM, Sangjin Han <tinysun.net at gmail.com> 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
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-dev/attachments/20160422/e424d59c/attachment.html>


More information about the swift-dev mailing list