Updated (2023-05-08): the Go compiler keeps evolving and it takes time to keep up with changes. While the general gist of this post remains true and it's worth reading to understand how the compiler works on a high level, the details of the modifications are slightly different now. To see up-do-date changes that work with the latest Go (in-development version 1.21 at the time of this update), chec