this post was submitted on 25 Aug 2024
110 points (97.4% liked)
Rust
6052 readers
120 users here now
Welcome to the Rust community! This is a place to discuss about the Rust programming language.
Wormhole
Credits
- The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
In principle you could start from hand assembly. Look up "sectorlisp" as a lowest level option. Or you could start from Forth, which is traditionally implemented using very simple methods. The blog post really doesn't make clear what problem the author is trying to solve. It gives some general description but leaves a lot to be guessed at.
Then there is the question of where the CPU is supposed to come from. Any modern one was designed using lots of mysterious CAD tools. Maybe scrounge a vintage Z80 out of an old Timex-Sinclair or something?
The author doesn't explain exactly what their interest in bootstrapping is, but the goal is pretty explicit:
It seems it would be a lot easier to work on the GCC compiler, and work with others to bootstrap GCC (if it hasn't already been done). Getting the GCC Rust compiler able to compile some version of rustc probably wouldn't be that hard, and then you can just use that version to compile up the chain to modern Rust.
That's the
mrustc
project the author mentions. He wants Rust to be bootstrapped earlier in the process.Sure, but I guess I don't really understand the argument. Why would Rust need to be involved earlier in the process? Isn't the point to have a way to compile rustc completely from source?
I guess it's cool to have multiple ways to get there, but that project would take way less work and get to the same end goal. It sounds to me like the author is trying to justify a cool project instead of trying to solve a real problem. That's completely fine, but I think most people would be happy with the mrustc project.
I asked, and it's to replace some of the bits that require Perl: https://hachyderm.io/@notgull/113035157972265244
You can see the full (current) sequence here: https://bootstrapping.miraheze.org/wiki/Live-bootstrap