Bootstrapping #616
-
hello! interesting language! reminds me of Skew, which (imho) never received the love it deserved. 🙂 do you have any plans to bootstrap the compiler, or is it going to stay in Rust? being (mostly) bootstrapped was one of the really strong points for Skew, I think - I love the idea of having a programming language with a codebase that users of the language can actually understand, at least being able to read it, potentially even contributing to it. do you have plans to support a language service or was the compiler not designed to do that? looks like a very cool, simple and elegant language! ✌️ |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
@mindplay-dk Bootstrapping/self-hosting was something I planned and worked towards for a while. This was abandoned in 0.10.0, as the effort in my opinion isn't worth it. For example, to ensure bootstrapping works, certain changes have to be released carefully in steps. An example is adding a new keyword: rather than add and use it, you first have to add support in both compilers, release a new version, then start using the keyword in the version that comes afterwards. If you instead use it right away, the last released version of your bootstrapping compiler can't compile the new version, as it doesn't have support for the keyword. Ignoring all that, it's also a lot of extra work: both compilers need support for type checking, move analysis, code generation, etc. Maybe in the future I'll change my mind, but for the next 5-10 years there are no plans to self-host. |
Beta Was this translation helpful? Give feedback.
@mindplay-dk Bootstrapping/self-hosting was something I planned and worked towards for a while. This was abandoned in 0.10.0, as the effort in my opinion isn't worth it. For example, to ensure bootstrapping works, certain changes have to be released carefully in steps.
An example is adding a new keyword: rather than add and use it, you first have to add support in both compilers, release a new version, then start using the keyword in the version that comes afterwards. If you instead use it right away, the last released version of your bootstrapping compiler can't compile the new version, as it doesn't have support for the keyword.
Ignoring all that, it's also a lot of extra work: both com…