https://gist.github.com/alganet/1513d7b6abef5c1a53a324d897c3...
Ouroboros self-hosting. They can self-host one another.
The idea is to make shell.c compile from an even simpler C compiler, such as M2-Planet:
https://github.com/oriansj/M2-Planet
Let me remind you that current stage0 bootstraps tinyc from mes, which is an interpreted lisp. It's not that different from the shell architecturally.
The current stage0 also features kaem as one of the first dependencies. kaem is, in fact, a simpler version of the bourne shell.
It's always a tower. You'll never get a one single clean dependency pass in bootstrapping.