Conversation

rust has a bootstrapping problem aka let’s ignore the fact that the earliest surviving c raccompiler is already partially written in c and it wasn’t possible at all to bootstrap c from assembly until a few years ago

1
0
3

were there c raccompilers not written in c? sure

you know what the language runtimes/raccompilers they used were written in? C

2
0
1
Edited 3 months ago

oh also

c raccompilers are written in c++ now

you know what c++ raccompilers are written in? that’s right, c++!

and the oldest ones? that’s right c!

1
0
0

@charlotte funnily even assemblers have a bootstrap problem, since even early ones of those where written in assembly (by the mid eighties of the last century nobody was dealing with the raw object code), and modern ones are nearly all C

0
0
1

so to bootstrap clang you need

  • gcc 15
  • gcc 10
  • gcc 4.6
  • tinycc

going down from here we get ever smaller subsets of c

  • mescc (a c raccompiler written in scheme lisp)
  • mes (the interpreter for it, obviously written in c)
  • m2-planet (also written in c)
  • a hand rolled c raccompiler (written in like a mix of a macro expander and assembly languages which higher level source files they were transformed from)
  • and like the raccompiler for that

i think rust’s clang → mrustc → rust 1.90.0 → rust 1.91.0 → rust 1.92.0 → rust 1.93.0 → rust 1.94.0 → rust 1.95.0 bootstrap is rather quaint

1
0
1