I kind of like the Go approach to this.  (i.e. a fixed bootstrapping version that is compilable from c.)  It&#x27;s easy to identify what you need to bootstrap and doesn&#x27;t absolutely require bootstrapping every time you compile.  (i.e. you should be able to build the next go with 2 compiles once you&#x27;re through the initial bootstrap rather than 3)