Skip to content

Upgrade SwiftPM dependency to master branch #10

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

Merged
merged 2 commits into from
Nov 17, 2018

Conversation

benlangmuir
Copy link
Contributor

We are tied to using a SwiftPM that matches the toolchain, so upgrade
from 0.3.0 to .branch("master") and add a pins file to manage updating
that dependency.

This was driven by changes that broke loading packages being developed
with newer version of SwiftPM when using the 0.3.0 tag of libSwiftPM.
However, the changes seem to work when going in the other direction, so
using the newer libSwiftPM hasn't caused any known regressions for using
older toolchain versions (not guarantteed and not tested extensively
though).

This fixes using the latest (November 13) toolchain snapshot on macOS.
On Linux there are other issues not specific to LSP.

Note: there's also a fix to use RTLD_DEEP_BIND; see the commit message for details.

We are tied to using a SwiftPM that matches the toolchain, so upgrade
from 0.3.0 to .branch("master") and add a pins file to manage updating
that dependency.

This was driven by changes that broke loading packages being developed
with newer version of SwiftPM when using the 0.3.0 tag of libSwiftPM.
However, the changes seem to work when going in the other direction, so
using the newer libSwiftPM hasn't caused any known regressions for using
older toolchain versions (not guarantteed and not tested extensively
though).

This fixes using the latest (November 13) toolchain snapshot on macOS.
On Linux there are other issues not specific to LSP.
We have multiple copies of llvm symbols (indexstoredb, indexstore,
llbuild via swiftpm, and sourcekitd), so it's important to keep them
isolated. In practice this seems to have started breaking after we
updated swiftpm and llbuild was added, but it was already a potential
issue before that. The most egregious issue is if you build sourcekit
with assertions, it enables ABI-breaking checks in llvm. On macOS this
dlopen behaviour is already the default.
@benlangmuir
Copy link
Contributor Author

This was tested on Linux with the Nov 1 toolchain, and macOS with the swift-4.2, Nov 1, and Nov 13 toolchains. This resolves the issues with using the Nov 13 toolchain on macOS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants