Tools: compile: SSA for 386, arm, arm64, ppc64le, ... (many CLs) yacc: "go tool yacc" is removed. now at golang.org/x/tools/cmd/goyacc (CL 27324, CL 27325) go: -buildmode=c-archive now builds PIC on ELF (CL 24180) go: mobile pkg dir change, recommend using go list in scripts (CL 24930, CL 27929) Ports: dragonfly: go1.8 requires DragonFly BSD 4.4.4 or above (CL 29491) API additions and behavior changes: cmd/compile: args no longer live until end of function - use runtime.KeepAlive instead (CL 28310) crypto/tls: set Conn.ConnectionState.ServerName unconditionally (CL 22862) crypto/tls: support AES-128-CBC cipher suites with SHA-256 (CL 27315) crypto/tls: don't generate random ticket keys if already set (CL 27317) crypto/x509: require a NULL parameters for RSA public keys (CL 16166) crypto/x509: return error for missing SerialNumber (CL 27238) crypto/x509: support PSS signatures (CL 24743) net/http: make Transport retry non-idempotent requests if no bytes written (CL 27117) net: support "option ndots:0" in resolv.conf (CL 24901) net: use libresolv rules for ndots range and validation (CL 24901) testing: add Name method to *T and *B runtime: fix map iterator concurrent map check (CL 23711) Optimizations: cmd/compile: handle e == T comparison more efficiently (CL 26660) cmd/compile: inline _, ok = i.(T) (CL 26658) cmd/compile: inline x, ok := y.(T) where T is a scalar (CL 26659) cmd/compile: optimize bool to int conversion (CL 22711) container/heap: remove one unnecessary comparison in Fix (CL 24273) encoding/hex: change lookup table from string to array (CL 27254) hash/crc32: improve the processing of the last bytes in the SSE4.2 code for AMD64 (CL 24470) math/big: avoid allocation in float.{Add, Sub} when there's no aliasing (CL 23568) math/big: use array instead of slice for deBruijn lookups (CL 26663) strings: add special cases for Join of 2 and 3 strings (CL 25005)