Hacker News new | ask | show | jobs
by citizenpaul 533 days ago
>soup to nuts compiler

Any chance you can explain that to rubes like me?

1 comments

Go isn't built on an existing compiler framework like LLVM. It does its own code generation, has its own assembler.
There is an accident of history here. Go was developed with the plan 9 C compiler suite as a starting point. Most notably those compilers did not generate assembler -- they emitted object code directly. This is described here: https://9p.io/sys/doc/compiler.html. The assembler facilitated transforming hand-written assembly to object code. And here the plan 9 folks chose a new syntax, probably because it was simpler to start afresh over using the existing "AT&T" or "Intel" syntax.
Typical plan 9, change for the sake of change. Second system effect writ large.