Switch branches/tags
Nothing to show
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


The Design of the Go Assembler

Rob Pike, July 2016


The Go assembler was rewritten for the 1.5 release, replacing a suite of C programs, one per architecture, with a single binary, written in Go, that supports all architectures. The usual variables, GOOS and GOARCH, are sufficient to configure it for any environment.

This talk will explain how this extreme portability is achieved for such a non-portable problem. The answer lies in the structure and origin of the Go compilation tool chain, a mostly machine-independent input language, and a lot of automation. Even for non-assembling Gophers, there are lessons in the design.

View the slides on line