Go 1.3.1: The Bad Character
Go 1.3.1 fixed a miscompile that corrupted bytes, a resolver crash on eight-letter words, and a liveness analysis that took 30 seconds to compile a literal.
14 articles tagged “go-history”.
Go 1.3.1 fixed a miscompile that corrupted bytes, a resolver crash on eight-letter words, and a liveness analysis that took 30 seconds to compile a literal.
Go 1.3 gave every goroutine a contiguous stack and a precise collector, then nearly shipped a 4KB default that turned Bolt seventy times slower.
Go 1.2.2 changed no code in the main repository. Its one fix closed a hole that let any website run programs on your machine through the tour.
Every fix in Go 1.2.1 is a bug with no workaround. The sharpest is a GC data race that took the better part of a year to reproduce.
Go 1.2 could finally take the processor back from a goroutine that never yielded, but only when the goroutine entered a function.
Every headline bug in Go 1.1.2 reported that it had worked. The sharpest of them zeroed your process's file limit and returned nil.
Go 1.1.1 patched both enforcers of Go's memory safety at once: a compiler that could write your data over a function's return address, and a garbage collector that could free memory still in use.
A year after freezing the language, Go 1.1 recompiled the same code faster and shipped a tool that found data races.
Go 1.0.3 was 223 commits the release note called minor. Three of them: a decompressor crash, an RSA signature OpenSSL rejected, and a compiler that rounded.
Go's second point release fixed two ways a map could crash on struct or array keys, one of them a struct hash that XORed its own fields back to zero.
Go's first point release fixed an escape-analysis bug that could corrupt memory, a case where a wrong stack-versus-heap decision breaks memory safety.
On 28 March 2012 Go 1 shipped almost no new features and one promise: the code you wrote would keep compiling for years.
From the 2009 open-source launch to the Go 1 freeze in March 2012, Go shipped no compatibility promise and broke your code most weeks.
September 21, 2007: three engineers, one whiteboard, and a shared impatience with slow builds. How Go was designed, and why it went public two years later.