To eliminate confusion with the naming scheme of the newly introduced SourceKit-LSP project compared to the pre-existing Swift/sourcekitd framework, we intend to transition
sourcekitd to become the
swiftd framework. We believe
swiftd is a name that better reflects its functionality, which is providing access to the Swift compiler and no more, while
SourceKit-LSP encompasses much more than that.
What this transition means is that in the swift-5.0 release there will be a
sourcekitd framework and a
swiftd framework alongside it in the toolchain. These frameworks will have identical functionality, but with a slightly modified C API:
- The prefix name of the C functions will change
- There will be a connection object to encompass the global state that is currently implicit in the sourcekitd framework.
- The response object will become reference counted.
As you can see we'll take this opportunity to make a couple of improvements to the C API, which we cannot do on sourcekitd since they would break compatibility. However, adopting the new C API should be straightforward.
Both of the frameworks will be in the swift-5.0 toolchain to provide time for third-party tools that are currently using sourcekitd to transition to linking with swiftd. After this release the sourcekitd framework will likely get removed.
Let me know if you have any comments or concerns about this.