The common contract for functions which return a value of the interface type error, is the caller should not presume anything about the state of the other values returned from that call without first checking the error.| Dave Cheney
This is a thought experiment about sentinel error values in Go.| Dave Cheney
Occasionally new Gophers stumble across a curious property of the Go language related to the amount of stack available to a Goroutine. This typically arises due to the programmer inadvertently creating an infinitely recursive function call. To illustrate this, consider the following (slightly contrived) example.| Dave Cheney
This post is an extract from my presentation at the recent GoCon spring conference in Tokyo, Japan.| Dave Cheney
In the previous post I discussed how leaf inlining allows the Go compiler to reduce the overhead of function calls and extend optimisation opportunities across function boundaries. In this post I’ll discuss the limits of inlining and leaf vs mid-stack inlining.| Dave Cheney