Overall:
toolchain in Go
new GC

Language:
permit omission of key type in map composite literals where key is a composite literal (https://golang.org/cl/2591)

Build:
Go 1.4 required to build (https://golang.org/cl/2470, https://golang.org/cl/2993)

New Ports:
darwin/arm, a.k.a iOS. (https://golang.org/cl/2118, 2119, 3273, 2121, 2122, ..., 2127)
linux/arm64 (cgo is supported, but only with external linking)

Removed Ports:
dragonfly/386 (https://golang.org/cl/7543)

API additions and behavior changes:

archive/zip: add (*Writer).SetOffset method (https://golang.org/cl/7445)
bufio: add Reader.Discard (https://golang.org/cl/2260)
bytes: add Buffer.Cap (https://golang.org/cl/8342)
bytes, strings: add Reader.Size (https://golang.org/cl/3199)
crypto/cipher: clarify what will happen if len(src) != len(dst) for the Stream interface. (https://golang.org/cl/1754)
crypto/elliptic: add Name field to CurveParams struct (https://golang.org/cl/2133)
crypto/tls: change default minimum version to TLS 1.0. (https://golang.org/cl/1791)
crypto/x509: wildcards are now only accepted as the first label (https://golang.org/cl/5691)
database/sql: add Stats (https://golang.org/cl/7950)
encoding/base64: add unpadded encodings (https://golang.org/cl/1511)
flag: new nicer format for PrintDefaults (https://golang.org/cl/7330)
fmt: empty slices now print nothing with %x (bug fix) (https://golang.org/cl/8864)
go/ast: add Implicit field to ast.EmptyStmt; changed meaning of ast.EmptyStmt.Semicolon position (https://golang.org/cl/5720)
log: add SetOutput functions (https://golang.org/cl/2686, https://golang.org/cl/3023)
log: add LUTC flag (https://golang.org/cl/8761)
math/big: add arbitrary precision Floats (many cl's)
mime: add ExtensionByType (https://golang.org/cl/7444)
mime/quotedprintable: new package (https://golang.org/cl/5940 + others)
net/http: support for setting trailers from a server Handler (https://golang.org/cl/2157)
net/http: ignore the Unix epoch time in ServeContent (https://golang.org/cl/7915)
net/http/cgi: fix REMOTE_ADDR, REMOTE_HOST, add REMOTE_PORT (https://golang.org/cl/4933)
net/smtp: add TLSConnectionState accessor (https://golang.org/cl/2151)
os/signal: add Ignore and Reset (https://golang.org/cl/3580)
runtime, syscall: use SYSCALL instruction on FreeBSD (Go 1.5 now requires FreeBSD 8-STABLE+) (https://golang.org/cl/3020)
runtime, syscall: use get_random_bytes syscall for NaCl (Go 1.5 now requires NaCl SDK pepper-39 or above) (https://golang.org/cl/1755)
strings: add Compare(x, y string) int, for symmetry with bytes.Compare (https://golang.org/cl/2828)
syscall: Add Foreground and Pgid to SysProcAttr (https://golang.org/cl/5130)
syscall: add missing Syscall9 for darwin/amd64 (https://golang.org/cl/6555)
testing/quick: support generation of arrays (https://golang.org/cl/3865)
text/template: add Options method (https://golang.org/cl/8462)
time: add time.AppendFormat(https://golang.org/cl/1760)

Tools:

build: external linking support for windows (https://golang.org/cl/7163, 7282, 7283, 7284, 7534, 7535)
cmd/gc: constant arithmetic is based on math/big (https://golang.org/cl/7830, 7851, 7857, 8426, 7858, 7912, 8171)
cmd/go, go/build: add ${SRCDIR} variable expansion to cgo lines (https://golang.org/cl/1756)
cmd/go: add $DOLLAR to generate's variables (https://golang.org/cl/8091)
cmd/go: std wildcard now excludes commands in main repo (https://golang.org/cl/5550)
cmd/go: .swig/.swigcxx files now require SWIG 3.0.6 or later
cmd/vet: better validation of struct tags (https://golang.org/cl/2685)
cmd/ld: no longer record build timestamp in Windows PE file header (https://golang.org/cl/3740)
cmd/go: add -toolexec build option
cmd/go: drop -ccflags build option
cmd/go: add -asmflags build option
cmd/go: add -buildmode build option
cmd/gc: add -dynlink option (for amd64 only)
cmd/ld: add -buildmode option
cmd/trace: new command to view traces (https://golang.org/cl/3601)

Performance:

cmd/gc: evaluate concrete == interface without allocating (https://golang.org/cl/2096)
cmd/gc: optimize memclr of slices and arrays (https://golang.org/cl/2520)
cmd/gc: transform closure calls to function calls (https://golang.org/cl/4050)
cmd/gc: transitive inlining (https://golang.org/cl/5952)
cmd/gc, runtime: speed up some cases of _, ok := i.(T) (https://golang.org/cl/7697)
cmd/gc: speed up large string switches (https://golang.org/cl/7698)
cmd/gc: inline x := y.(*T) and x, ok := y.(*T) (https://golang.org/cl/7862)
cmd/gc: allocate backing storage for non-escaping interfaces on stack (https://golang.org/cl/8201)
encoding/xml: avoid an allocation for tags without attributes (https://golang.org/cl/4160)
image: many optimizations
runtime: add ARM runtime.cmpstring and bytes.Compare (https://golang.org/cl/8010)
sort: number of Sort performance optimizations (https://golang.org/cl/2100, https://golang.org/cl/2614, ...)
strconv: optimize decimal to string conversion (https://golang.org/cl/2105)
strconv: optimize float to string conversion (https://golang.org/cl/5600)
sync: add active spinning to Mutex (https://golang.org/cl/5430)
math/big: faster assembly kernels for amd64 and 386 (https://golang.org/cl/2503, https://golang.org/cl/2560)
math/big: faster "pure Go" kernels for platforms w/o assembly kernels (https://golang.org/cl/2480)
regexp: port RE2's bitstate backtracker to the regexp package (https://golang.org/cl/2153)

Assembler:

New cmd/asm tool (now use go tool asm, not go tool 6a)

Assembler now supports -dynlink option.

ARM assembly syntax has had some features removed.

	- mentioning SP or PC as a hardware register
		These are always pseudo-registers except that in some contexts
		they're not, and it's confusing because the context should not affect
		which register you mean. Change the references to the hardware
		registers to be explicit: R13 for SP, R15 for PC.
	- constant creation using assignment
		The files say a=b when they could instead say #define a b.
		There is no reason to have both mechanisms.
	- R(0) to refer to R0.
		Some macros use this to a great extent. Again, it's easy just to
		use a #define to rename a register.
	
Also expression evaluation now uses uint64s instead of signed integers and the
precedence of operators is now Go-like rather than C-like.
