3 ms·
How does cross compiling help? How do you build the first Java from source?
by davexunit 10y ago
How does cross compiling help? How do you build the first Java from source?
- JoshTriplett 10y agoCross-compiling allows you to just have one binary of the compiler, for a fast architecture like x86-64, and then bootstrap binaries for every architecture from there. Without cross-compiling, you need to have a bootstrap binary of the compiler for every architecture you want to support.
- davexunit 10y agoThat's a different and less important problem.
- mitchty 10y agoAs someone that has done this to get ghc building on an unsupported platform, it really is the only sane way to approach this chicken/egg problem. I'm slightly surprised that .net doesn't have a cross compilation option.
- davexunit 10y agoThe sane way is to write a bootstrapping compiler, like some language implementations do.
- mitchty 10y agoghc can compile to c to do bootstrapping, or a more standard 3 stage bootstrap. There are pros/cons to both approaches.
- davexunit 10y agoMachine-generated C is not source code, so this doesn't solve the reproducibility problem.
- mitchty 10y agoSo for languages like Haskell, or lets have fun and throw Idris in the mix too as its implemented in Haskell, what/how should they be changed to not have to bootstrap the way they do now so that reproducibility is preserved? For languages that have effectively abandoned that route, what would satisfy your requirements? Which languages specifically handle things in a way you consider correct? Is the effort involved worth it if only reproducibility is the end goal? I don't think its safe to say that a bootstrapping compiler is the only sane way. Even if System F is a fairly simple language and what GHC compiles to, having to keep a bootstrapping compiler around just for bootstrapping purposes seems like mostly wasted effort IMO.