
Swift compiler driver rewritten in Swift - rvz
https://github.com/apple/swift-driver
======
est31
Does that mean you'll soon need to have Swift to compile the Swift compiler?
How many versions back do they want to support for bootstrapping?

~~~
dorfsmay
I suspect they'll sell a binary if all you want to do is develop apps in
swift, and that they have a bootstrapping system to compile the compiler, like
every other native compiler.

I believe that Chris Lattner the original author of LLVM also started Swift
and is (or was) working at Apple on compilers.

[https://en.wikipedia.org/wiki/Chris_Lattner](https://en.wikipedia.org/wiki/Chris_Lattner)

~~~
favorited
Why would anyone sell a binary? It's all open source.

And Chris Lattner has worked at Google for a while now.

~~~
dorfsmay
So make a binary a available for download?

~~~
favorited
You can get macOS or Ubuntu builds already:
[https://swift.org/download/#snapshots](https://swift.org/download/#snapshots)

------
oscargrouch
So, this is basically the build pipeline driver?

I remember hacking the original C++ version of this, trying to pass wasm
target compilation flags back to the llvm just for fun.

What more can you get from this.. the ability to fiddle with the build process
from Swift API? For consumers like package managers?

I guess it needs a little bit more of clarification, of what can be done with
it.. i guess, a introduction to the API behind it would help, giving the
target audience for this sort of thing.

I've changed a GN(chrome ninja build generator) to build Swift, and unlike
C/C++ code where you compile each file, i had to create a different scheme to
compile all source files into the the final object module file.

Wonder if i can call this instead of swiftc directly and if it would help
somewhere.

~~~
slavapestov
> What more can you get from this.. the ability to fiddle with the build
> process from Swift API? For consumers like package managers?

Yeah, SwiftPM being one obvious candidate of course.

------
dasdom
What does this do to the compile time?

------
jdlyga
And that my friends is called bootstrapping.

~~~
bsaul
I thought bootstrapping would mean at least part of the language features
would be implemented in the language itself ? "compiler driver" seems more
like plumbing. I would call that bootstraping when either part of the syntax
tree parsing or production of LLVM instructions are done in swift..

