RustConf 2022 - Bootstrapping: The once and future compiler by Jynn Nelson
Ғылым және технология
"Bootstrapping" is the process of building a compiler written in its target language. Bootstrapping has been used since the development of ALGOL and LISP in the 1960s. In this talk, you'll learn the history of the bootstrapping the Rust compiler, how bootstrap works today, and some big ideas for bootstrap in the future. You'll also have a chance to get involved in working on bootstrap.
Пікірлер: 12
I once built a 6502 assembler for the Commodore 64. I wrote it in Commodore Basic. Then I started writing it in itself. Unfortunately, it assembled very slowly. Getting the symbol table management wound up taking 30 minutes to assemble! No problem I loaded the object code for the symbol table into memory and modified the Basic version to use it. Now it could assemble that part in a minute or so. I kept writing. Eventually it built up to 30 minutes to assemble. I then linked that part in and took it out of the Basic compiler. Eventually I was able to get the whole assembler working. Once I got to that stage, it could assemble itself in a few seconds. Super Bootstrapping.
I like this guy. No-nonsense, good explanations, interesting talk.
@mikkelens
7 ай бұрын
I like them too, though I'm pretty sure they don't like being addressed as a guy (see their website).
Here are the slides for this talk: docs.google.com/presentation/d/1GnKlK98APzZ0Fw1BOqbroPQyvIio5Tm7SP7P0B8x3Cc
@leonie9248
Жыл бұрын
Thanks!
@Robstafarian
Жыл бұрын
I just subscribed to your channel in case you upload more Rust videos.
This is a very interesting talk.
Good talk. 👍
Great talk, very interesting I always wondered how bootstrapping was done
My solution would be just to compile with the compiler, then decompile it again with some (trusted) C decompiler. If it roughly matches, then the compiler should be safe. Alternatively, I could run the program is wasm
@CamaradaArdi
8 ай бұрын
That doesn't fix anything
@UncleJemima
4 ай бұрын
yeah, "roughly matches" is not good enough to == trusted