Comment

Comment by pjmlp

Lets use Go as an example.

Now that Go 1.0 release exists and is stable. One could write a Go compiler using Go 1.0.

Eventually the compiler will reach a state that it can fully compile Go 1.0.

Now replace the C implementation of Go 1.0 by this new compiler and use it to write Go X.Y using only Go 1.0 features.

When the need to target a new OS or CPU arises, add a new backend that generates code for the desired target system in the Go 1.0 compiler.

Use the cross-compiler to compile itself with the new backend. Copy the binary to the new system, now use the Go 1.0 compiler to compile the Go X.Y version, whatever X and Y are.

You don't need to use multiple versions of the language and by keeping the feature set of base compiler small, it makes it easier to write cross-compilers.

parent pjmlp 13 years ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton