-
Notifications
You must be signed in to change notification settings - Fork 226
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Linux Support #223
[WIP] Linux Support #223
Conversation
* master: move file system check out of String.isSwiftFile fix '.swift' directories considered Swift files Remove "key.offset" and "key.length" from results of `dictWithCommentMarkNamesCursorInfo()` use guard in File.parseDeclaration(...) simplify File.parseDeclaration(...) fix bug where parsed declaration would include body
Yes, I am. |
@norio-nomura once you manage to get this building we should chat to see how we can both work on this minimizing overlap. |
to avoid Xcode prompting us for this all the time
…hs (#237) Without using `LINUX_SOURCEKIT_LIB_PATH`.
I confirmed that
I think commits of swift-corelibs are more important on Linux. |
Yes, you're right. |
I've updated this to use @norio-nomura's Swift 3.0 Docker image (thanks!) and point SWXMLHash and YamlSwift to their official canonical releases. This is still using my fork of Commandant until Carthage/Commandant#69 or Carthage/Commandant#73 is merged and released. Once Commandant supports Swift 3, I'd like to split this PR into 2 new ones:
That should make it easier to review. |
Carthage/Commandant#69 got merged but Carthage/Commandant#73 has been closed. |
Closing in favor of #268. |
This is a⚠️ SUPER EARLY ⚠️ proof of concept, but I have the very basics of SourceKitten building with SwiftPM and linking against
libsourcekitdInProc.so
on Linux, building with the head of Swift.Now this is a big mess at the moment because of the simultaneous moves to Swift 3, Linux and SwiftPM changes among other things, but I wanted to start the conversation now.
This branch will likely be frequently force-pushed, be warned.
Here are the (long and tedious) steps to get this running on a fresh x64 Ubuntu 16.04 machine:
Which will then print the JSON-formatted syntax map for
main.swift
. That's the only thing that's exposed via the CLI interface at the moment. Tests don't run either.At this point, I think the next steps are roughly:
Re-add as much of the removed or commented out code that doesn't depend on external packages.(July 18 edit: done)Add Swift 3 & Linux support for upstream dependencies (Commandant (jp-05-31-snapshot), Result, YamlSwift (jp-wip-linux), SWXMLHash (jp-swift-3) & Clang_C). I've started this process for some of these, but they're all very hacked together and/or out of date at the moment.(June 30 edit: done)Re-integrate dependencies.(June 30 edit: done)Add CI integration for Linux.(July 18 edit: done)We may also want to stage this out, for example by first getting Swift 3 support on OS X merged in, then maybe moving to a SwiftPM-based workflow, dropping Carthage & generating the Xcode project via
swift package generate-xcodeproj
.Given the massive changes in Swift 3, I'd probably want to drop Swift 2.x support even before Xcode 8 GM is out.
@norio-nomura are you interested in helping with any of this?