doc: more go1.8.html additions

And start deleting from go1.8.txt.

TBR=See https://golang.org/cl/33244

Updates #17929

Change-Id: I71011d97b23a7ba94cd51e16ae61fda18e8b96eb
Reviewed-on: https://go-review.googlesource.com/33680
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
Brad Fitzpatrick 2016-11-30 01:44:15 +00:00
parent 0b1b6d4ce3
commit 012ec29ad4
2 changed files with 124 additions and 359 deletions

View file

@ -372,13 +372,30 @@ optimizations in the standard library.
</p>
<p>
There have been significant optimizations bringing more than 10% improvements
to implementations in the
TODO TODO:
<a href="/pkg/foo/"><code>foo</code></a>,
<a href="/pkg/bar/"><code>bar</code></a>,
and
<a href="/pkg/quux/"><code>quux</code></a>
There have been optimizations to implementations in the
<a href="/pkg/bytes/"><code>bytes</code></a>,
<a href="/pkg/crypto/aes/"><code>crypto/aes</code></a>,
<a href="/pkg/crypto/cipher/"><code>crypto/cipher</code></a>,
<a href="/pkg/crypto/elliptic/"><code>crypto/elliptic</code></a>,
<a href="/pkg/crypto/sha256/"><code>crypto/sha256</code></a>,
<a href="/pkg/crypto/sha512/"><code>crypto/sha512</code></a>,
<a href="/pkg/encoding/asn1/"><code>encoding/asn1</code></a>,
<a href="/pkg/encoding/csv/"><code>encoding/csv</code></a>,
<a href="/pkg/encoding/hex/"><code>encoding/hex</code></a>,
<a href="/pkg/encoding/json/"><code>encoding/json</code></a>,
<a href="/pkg/hash/crc32/"><code>hash/crc32</code></a>,
<a href="/pkg/image/color/"><code>image/color</code></a>,
<a href="/pkg/image/draw/"><code>image/draw</code></a>,
<a href="/pkg/math/"><code>math</code></a>,
<a href="/pkg/math/big/"><code>math/big</code></a>,
<a href="/pkg/reflect/"><code>reflect</code></a>,
<a href="/pkg/regexp/"><code>regexp</code></a>,
<a href="/pkg/runtime/"><code>runtime</code></a>,
<a href="/pkg/strconv/"><code>strconv</code></a>,
<a href="/pkg/strings/"><code>strings</code></a>,
<a href="/pkg/syscall/"><code>syscall</code></a>,
<a href="/pkg/text/template/"><code>text/template</code></a>, and
<a href="/pkg/unicode/utf8/"><code>unicode/utf8</code></a>,
packages.
</p>
@ -483,7 +500,8 @@ now implements the new
<p>
As always, there are various minor changes and updates to the library,
made with the Go 1 <a href="/doc/go1compat">promise of compatibility</a>
in mind.
in mind. The follow sections list the user visible changes and additions.
Optimizations and bug fixes are not listed.
</p>
<dl id="archive_tar"><dt><a href="/pkg/archive/tar/">archive/tar</a></dt>
@ -840,6 +858,16 @@ pkg debug/pe, type StringTable []uint8</pre>
</dd>
</dl>
<dl id="encoding_xml"><dt><a href="/pkg/encoding/xml/">encoding/xml</a></dt>
<dd>
<p> <!-- CL 30946 -->
<a href="/pkg/encoding/xml/#Unmarshal"><code>Unmarshal</code></a>
now has wildcard support for collecting all attributes using
the new <code>",any,attr"</code> struct tag.
</p>
</dd>
</dl>
<dl id="expvar"><dt><a href="/pkg/expvar/">expvar</a></dt>
<dd>
<p> <!-- CL 30917 -->
@ -860,6 +888,14 @@ pkg debug/pe, type StringTable []uint8</pre>
</dd>
</dl>
<dl id="go_doc"><dt><a href="/pkg/go/doc/">go/doc</a></dt>
<dd>
<p><!-- CL 29870 -->
The new <a href="/pkg/go/doc/#IsPredeclared"><code>IsPredeclared</code></a>
function reports whether a string is a predeclared identifier.
</p>
</dd>
</dl>
<dl id="image_png"><dt><a href="/pkg/image/png/">image/png</a></dt>
<dd>
@ -974,7 +1010,29 @@ pkg debug/pe, type StringTable []uint8</pre>
the listener is closed.
</p>
<p>TODO: many other net changes</p>
<p><!-- CL 29951 -->
The new <a href="/pkg/net/#Buffers"><code>Buffers</code></a> types permits
more efficiently writing to the network from multiple discontiguous buffers
in memory. On certain machines, for certain types of connections,
this is optimized into an OS-specific batch write operation (such as <code>writev</code>).
</p>
<p><!-- CL 29440 -->
The new <a href="/pkg/net/#Resolver"><code>Resolver</code></a> looks up names and numbers
and supports <a href="/pkg/context/#Context"><code>context.Context</code></a>.
The <a href="/pkg/net/#Dialer"><code>Dialer</code></a> now has an optional
<a href="/pkg/net/#Dialer.Resolver"><code>Resolver</code> field</a>.
</p>
<p><!-- CL 29892 -->
<a href="/pkg/net/#Interfaces"><code>Interfaces</code></a> is now supported on Solaris.
</p>
<p><!-- CL 29233, CL 24901 -->
The Go DNS resolver now supports <code>resolv.conf</code>'s "<code>rotate</code>"
and "<code>option ndots:0</code>" options. The "<code>ndots</code>" option is
now respected in the same way as <code>libresolve</code>.
</p>
</dd>
</dl>
@ -1108,6 +1166,30 @@ pkg debug/pe, type StringTable []uint8</pre>
</dd>
</dl>
<dl id="net_http_httptrace"><dt><a href="/pkg/net/http/httptrace/">net/http/httptrace</a></dt>
<dd>
<p> <!-- CL 30359 -->
There is now support for tracing a client request's TLS handshakes with
the new
<a href="/pkg/net/http/httptrace/#ClientTrace.TLSHandshakeStart"><code>ClientTrace.TLSHandshakeStart</code></a>
and
<a href="/pkg/net/http/httptrace/#ClientTrace.TLSHandshakeDone"><code>ClientTrace.TLSHandshakeDone</code></a>.
</p>
</dd>
</dl>
<dl id="net_http_httputil"><dt><a href="/pkg/net/http/httputil/">net/http/httputil</a></dt>
<dd>
<p> <!-- CL 32356 -->
The <a href="/pkg/net/http/httputil/#ReverseProxy"><code>ReverseProxy</code></a>
has a new optional hook,
<a href="/pkg/net/http/httputil/#ReverseProxy.ModifyResponse"><code>ModifyResponse</code></a>,
for modifying the response from the backend before proxying it to the client.
</p>
</dd>
</dl>
<dl id="net_mail"><dt><a href="/pkg/net/mail/">net/mail</a></dt>
<dd>
@ -1202,6 +1284,22 @@ pkg debug/pe, type StringTable []uint8</pre>
</dd>
</dl>
<dl id="path_filepath"><dt><a href="/pkg/path/filepath/">path/filepath</a></dt>
<dd>
<p>
<p>A number of bugs and corner cases on Windows were fixed:
<a href="/pkg/path/filepath/#Abs"><code>Abs</code></a> now calls <code>Clean</code> paths as documented,
<a href="/pkg/path/filepath/#Glob"><code>Glob</code></a> now matches
"<code>\\?\c:\*</code>",
<a href="/pkg/path/filepath/#EvalSymlinks"><code>EvalSymlinks</code></a> now
correctly handles "<code>C:.</code>", and
<a href="/pkg/path/filepath/#Clean"><code>Clean</code></a> now properlys handles a leading "<code>..</code>"
in the path.
<p>
</dd>
</dl>
<dl id="reflect"><dt><a href="/pkg/reflect/">reflect</a></dt>
<dd>
<p> <!-- CL 30088 -->
@ -1224,6 +1322,20 @@ pkg debug/pe, type StringTable []uint8</pre>
</dd>
</dl>
<dl id="text_template"><dt><a href="/pkg/text/template/">text/template</a></dt>
<dd>
<p> <!-- CL 31462 -->
<a href="/pkg/text/template/#Template.Execute"><code>Template.Execute</code></a>
can now take a
<a href="/pkg/reflect/#Value"><code>reflect.Value</code></a> as its data
argument, and
<a href="/pkg/text/template/#FuncMap"><code>FuncMap</code></a>
functions can also accept and return <code>reflect.Value</code>.
</p>
</dd>
</dl>
<dl id="time"><dt><a href="/pkg/time/">time</a></dt>
<dd>

View file

@ -1,8 +1,5 @@
Note: once things are added to go1.8.html or deemed too minor they're
moved from the sections at top down to the "HTMLified" or "Probably
omit" sections below.
These top sections remain to be HTMLified or deemed too boring:
This file lists things yet to be moved into go1.8.html or deemed too
minor to mention. Either way, delete from here when done.
Tools:
@ -58,6 +55,7 @@ cmd/pprof: instruction-level granularity in callgrind output (CL 23781)
cmd/trace: add option to output pprof files (CL 23324)
cmd/trace: fix a runnable goroutine count bug (CL 25552)
cmd/trace: move process-wide GC events to their own row (CL 30017)
internal/trace: fix analysis of EvGoWaiting/EvGoInSyscall events (CL 25572)
cmd/vet: accept space-separated tag lists for compatibility with cmd/go (CL 32030)
cmd/vet: allow ^& uintptr arithmetic (CL 27156)
@ -70,11 +68,6 @@ cmd/vet: improve asmdecl parameter handling (CL 27150)
cmd/vet: properly handle indexed arguments in printf (CL 24391)
cmd/vet: skip printf check for non-constant format string during failed import (CL 29014)
crypto/cipher: enforce message size limits for GCM (CL 28410)
encoding/asn1: return error for unexported fields in Marshal, Unmarshal (CL 31540)
encoding/xml: add wildcard support for collecting all attributes (CL 30946)
encoding/xml: prevent omitempty from omitting non-nil pointers to empty values (CL 15684)
fmt: document and adjust Scanf space handling to eliminate a few paradoxes (CL 30611)
@ -83,42 +76,12 @@ go/build: allow % in ${SRCDIR} expansion for Jenkins (CL 31611)
go/build: do not record go:binary-only-package if build tags not satisfied (CL 31577)
go/build: implement default GOPATH (CL 32019)
go/doc: add IsPredeclared function (CL 29870)
go/doc: allow ToHTML to properly handle URLs containing semicolons (CL 25385)
go/printer: don't drop required semi/linebreak after /*-comment (CL 33016)
go/token: fix race in FileSet.PositionFor. (CL 25345)
go/types: expose Default function, which converts untyped T to T (CL 30715)
go/types: match cmd/compile's alignment for complex64 (CL 31939)
html/template: check "type" attribute in <script> (CL 14336)
internal/trace: fix analysis of EvGoWaiting/EvGoInSyscall events (CL 25572)
net/http/httptest: fill ContentLength in recorded Response (CL 28302)
net/http/httptrace: add ClientTrace.TLSHandshakeStart & TLSHandshakeDone (CL 30359)
net/http/httputil: add ModifyResponse to reverseProxy (CL 32356)
net/http/httputil: copy header map if necessary in ReverseProxy (CL 28493)
net/http/httputil: log err encountered during reverseproxy body copying (CL 30692)
net/http/httputil: make ReverseProxy send nil Body requests when possible (CL 28412)
net/http/httputil: remove custom hop-by-hop headers from response in ReverseProxy (CL 28810)
net/http/httputil: remove proxied headers mentioned in connection-tokens (CL 27970)
net: add Buffers type, do writev on unix (CL 29951)
net: implement Buffers on windows (CL 32371)
net: add Resolver type, Dialer.Resolver, and DefaultResolver (CL 29440)
net: apply tcp4/tcp6 restrictions to literals in ResolveTCPAddr (CL 32100)
net: break up >1GB reads and writes on stream connections (CL 31584)
net: bring domain name length checks into RFC compliance (CL 31722)
net: fix Dial(":80") on Windows (CL 32101)
net: implement network interface API for Solaris (CL 29892)
net: only remove Unix domain socket file on the first call to Close (CL 32098)
net: remove parsing of negative decimals in IPv4 literal (CL 28414)
net: respect resolv.conf rotate option (CL 29233)
net: support "option ndots:0" in resolv.conf (CL 24901)
net: there are no invalid domain names anymore (CL 31468)
net: use libresolv rules for ndots range and validation (CL 24901)
os, syscall: fix incorrect offset calculation in Readlink on windows (CL 31118)
os: add ErrClosed, return for use of closed File (CL 30614)
os: consider only files from #M as regular on Plan 9 (CL 32152)
@ -128,12 +91,6 @@ os: make Windows readConsole handle input and output correctly (CL 29493)
os: reject Rename("old", "new") where new is a directory (CL 31358)
os: use extended-length paths on Windows when possible (CL 32451)
path/filepath: don't return SkipDir at top (CL 24780)
path/filepath: fix Abs on Windows (CL 32292)
path/filepath: fix match of \\?\c:\* on Windows (CL 31460)
path/filepath: handle ".." in normalizing a path on Windows (CL 27410)
path/filepath: handle "C:." correctly in EvalSymlinks on Windows (CL 28214)
runtime, cmd/trace: annotate different mark worker types (CL 30702)
runtime, runtime/cgo: revert CL 18814; don't drop signal stack in new thread on dragonfly (CL 29971)
runtime/pprof: output CPU profiles in pprof protobuf format (CL 33071)
@ -169,307 +126,3 @@ syscall: remove X__cmsg_data from Cmsghdr (CL 32319)
syscall: unify NsecToTime{spec,val}, fix for times < 1970 (CL 30826)
syscall: validate ParseDirent inputs (CL 23780)
text/template: add support for reflect.Value args, results in funcs (CL 31462)
Optimizations:
bytes, strings: optimize for ASCII sets (CL 31593)
bytes, strings: optimize multi-byte index operations on s390x (CL 32447)
bytes,strings: use IndexByte more often in Index on AMD64 (CL 31690)
bytes: Use the same algorithm as strings for Index (CL 22550)
bytes: improve WriteRune performance (CL 28816)
bytes: improve performance for bytes.Compare on ppc64x (CL 30949)
bytes: make IndexRune faster (CL 28537)
cmd/asm, go/build: invoke cmd/asm only once per package (CL 27636)
cmd/compile: do more type conversion inline (CL 32313)
cmd/compile: inline convI2E (CL 31260)
cmd/compile, cmd/link: more efficient typelink generation (CL 31772)
cmd/compile, cmd/link: stop generating unused go.string.hdr symbols. (CL 31030)
cmd/compile,runtime: redo how map assignments work (CL 30815)
cmd/compile/internal/obj/x86: eliminate some function prologues (CL 24814)
cmd/compile/internal/ssa: generate bswap on AMD64 (CL 32222)
cmd/compile: accept literals in samesafeexpr (CL 26666)
cmd/compile: add more non-returning runtime calls (CL 28965)
cmd/compile: add size hint to map literal allocations (CL 23558)
cmd/compile: be more aggressive in tighten pass for booleans (CL 28390)
cmd/compile: directly construct Fields instead of ODCLFIELD nodes (CL 31670)
cmd/compile: don't reserve X15 for float sub/div any more (CL 28272)
cmd/compile: dont generate pointless gotos during inlining (CL 27461)
cmd/compile: fold negation into comparison operators (CL 28232)
cmd/compile: generate makeslice calls with int arguments (CL 27851)
cmd/compile: handle e == T comparison more efficiently (CL 26660)
cmd/compile: improve s390x SSA rules for logical ops (CL 31754)
cmd/compile: improve s390x rules for folding ADDconst into loads/stores (CL 30616)
cmd/compile: improve string iteration performance (CL 27853)
cmd/compile: improve tighten pass (CL 28712)
cmd/compile: inline _, ok = i.(T) (CL 26658)
cmd/compile: inline atomics from runtime/internal/atomic on amd64 (CL 27641, CL 27813)
cmd/compile: inline convT2{I,E} when result doesn't escape (CL 29373)
cmd/compile: inline x, ok := y.(T) where T is a scalar (CL 26659)
cmd/compile: intrinsify atomic operations on s390x (CL 31614)
cmd/compile: intrinsify math/big.mulWW, divWW on AMD64 (CL 30542)
cmd/compile: intrinsify runtime/internal/atomic.Xaddint64 (CL 29274)
cmd/compile: intrinsify slicebytetostringtmp when not instrumenting (CL 29017)
cmd/compile: intrinsify sync/atomic for amd64 (CL 28076)
cmd/compile: make [0]T and [1]T SSAable types (CL 32416)
cmd/compile: make link register allocatable in non-leaf functions (CL 30597)
cmd/compile: missing float indexed loads/stores on amd64 (CL 28273)
cmd/compile: move stringtoslicebytetmp to the backend (CL 32158)
cmd/compile: only generate ·f symbols when necessary (CL 31031)
cmd/compile: optimize bool to int conversion (CL 22711)
cmd/compile: optimize integer "in range" expressions (CL 27652)
cmd/compile: remove Zero and NilCheck for newobject (CL 27930)
cmd/compile: remove duplicate nilchecks (CL 29952)
cmd/compile: remove some write barriers for stack writes (CL 30290)
cmd/compile: simplify div/mod on ARM (CL 29390)
cmd/compile: statically initialize some interface values (CL 26668)
cmd/compile: unroll comparisons to short constant strings (CL 26758)
cmd/compile: use 2-result divide op (CL 25004)
cmd/compile: use masks instead of branches for slicing (CL 32022)
cmd/compile: when inlining ==, dont take the address of the values (CL 22277)
container/heap: remove one unnecessary comparison in Fix (CL 24273)
crypto/elliptic: add s390x assembly implementation of NIST P-256 Curve (CL 31231)
crypto/sha256: improve performance for sha256.block on ppc64le (CL 32318)
crypto/sha512: improve performance for sha512.block on ppc64le (CL 32320)
crypto/{aes,cipher}: add optimized implementation of AES-GCM for s390x (CL 30361)
encoding/asn1: reduce allocations in Marshal (CL 27030)
encoding/csv: avoid allocations when reading records (CL 24723)
encoding/hex: change lookup table from string to array (CL 27254)
encoding/json: Use a lookup table for safe characters (CL 24466)
hash/crc32: improve the AMD64 implementation using SSE4.2 (CL 24471, CL 27931)
hash/crc32: improve the processing of the last bytes in the SSE4.2 code for AMD64 (CL 24470)
image/color: improve speed of RGBA methods (CL 31773)
image/draw: optimize drawFillOver as drawFillSrc for opaque fills (CL 28790)
math/big: 10%-20% faster float->decimal conversion (CL 31250, CL 31275)
math/big: avoid allocation in float.{Add, Sub} when there's no aliasing (CL 23568)
math/big: make division faster (CL 30613)
math/big: test and optimize Exp(2, y, n) for large y, odd n (CL 30708)
math/big: use array instead of slice for deBruijn lookups (CL 26663)
math/big: uses SIMD for some math big functions on s390x (CL 32211)
math: speed up Gamma(+Inf) (CL 31370)
math: speed up bessel functions on AMD64 (CL 28086)
math: use SIMD to accelerate some scalar math functions on s390x (CL 32352)
reflect: avoid zeroing memory that will be overwritten (CL 28011)
regexp: avoid alloc in QuoteMeta when not quoting (CL 31395)
regexp: reduce mallocs in Regexp.Find* and Regexp.ReplaceAll* (CL 23030)
runtime: cgo calls are about 100ns faster (CL 29656, CL 30080)
runtime: implement getcallersp in Go (CL 29655)
runtime: improve memmove for amd64 (CL 22515, CL 29590)
runtime: increase malloc size classes (CL 24493)
runtime: large objects no longer cause significant goroutine pauses (CL 23540)
runtime: make append only clear uncopied memory (CL 30192)
runtime: make assists perform root jobs (CL 32432)
runtime: memclr perf improvements on ppc64x (CL 30373)
runtime: minor string/rune optimizations (CL 27460)
runtime: remove a load and shift from scanobject (CL 22712)
runtime: remove defer from standard cgo call (CL 30080)
runtime: speed up StartTrace with lots of blocked goroutines (CL 25573)
runtime: speed up non-ASCII rune decoding (CL 28490)
strconv: make FormatFloat slowpath a little faster (CL 30099)
strings: add special cases for Join of 2 and 3 strings (CL 25005)
strings: make IndexRune faster (CL 28546)
strings: use AVX2 for Index if available (CL 22551)
strings: use Index in Count (CL 28586)
syscall: avoid convT2I allocs for common Windows error values (CL 28484, CL 28990)
text/template: improve lexer performance in finding left delimiters (CL 24863)
unicode/utf8: optimize ValidRune (CL 32122)
unicode/utf8: reduce bounds checks in EncodeRune (CL 28492)
Binary Size:
cmd/link: more efficient encoding of DWARF line number information (CL 30577)
cmd/compile: recognize integer ranges in switch statements (CL 26770)
cmd/compile: use two tables for table-driven map inserts (CL 26669)
cmd/link: when dynlinking, do not mangle short symbol names (CL 26890)
cmd/compile, runtime: stop padding stackmaps to 4 bytes (CL 30817)
Probably omit: (too minor, or just bug fixes)
all: freeze net/rpc and reword the 'frozen' message in other frozen packages (CL 32112)
archive/tar: fix and cleanup readOldGNUSparseMap (CL 28471)
archive/tar: fix parsePAX to be POSIX.1-2001 compliant (CL 31440)
archive/tar: fix parsePAXTime (CL 31441)
archive/tar: make Reader handle GNU format properly (CL 31444)
archive/tar: reapply Header.Size to regFileReader after merging (CL 28418)
archive/tar: validate sparse headers in parsePAX (CL 31439)
archive/zip: handle mtime in NTFS/UNIX/ExtendedTS extra fields (CL 18274)
archive/zip: only use Extended Timestamp on non-zero MS-DOS timestamps (CL 30811)
cmd/compile: add go:notinheap type pragma (CL 30939)
cmd/compile: fail gracefully on export format skew (CL 27814)
cmd/compile: remove support for textual export format (CL 27171)
cmd/gofmt: don't eat source if -w fails (CL 33018)
compress/gzip, compress/zlib: add HuffmanOnly as compression levels. (CL 31186)
crypto/rsa: ensure that generating toy RSA keys doesn't loop (CL 28969)
debug/elf: add sparc64 relocations (CL 30870)
flag: arrange for FlagSet.Usage to be non-nil by default (CL 31576)
go/internal/gcimporter: fail gracefully on export format skew (CL 27816)
image/color: tweak the formula for converting to gray. (CL 31538)
io: fix infinite loop bug in MultiReader (CL 27397)
io: make MultiReader nil exhausted Readers for earlier GC (CL 28533)
math/big: Rat.SetString to report error if input is not consumed entirely (CL 30472)
math/cmplx: prevent infinite loop in tanSeries (CL 31952)
math: fix Gamma(-171.5) on all platforms (CL 30540)
net/http/internal: don't block unnecessarily in ChunkedReader (CL 31329)
net: make LookupPort and lookupProtocol work on nacl (CL 28951)
os: prevent infinite symlink loop of Stat on Windows (CL 27580)
os: use GetConsoleCP() instead of GetACP() (CL 27575)
reflect: fix DeepEqual for some cyclic corner cases (CL 31588)
runtime/race: don't crash on invalid PCs (CL 29714)
spec: update language on type switches to match implementations (CL 27356)
strings, bytes: panic if Repeat overflows or if given a negative count (CL 29954)
sync: enable Pool when using race detector (CL 31589)
sync: throw, not panic, for unlock of unlocked mutex (CL 31359)
testing/quick, text/tabwriter: freeze packages (CL 31910)
testing: introduce testing/internal/testdeps for holding testmain dependencies (CL 32455)
testing: respect benchtime on very fast benchmarks (CL 26664)
time: be consistent about representation of UTC location in Time struct (CL 31144)
website: recreate 16px and 32px favicon (CL 26850)
HTMLified:
all: many more examples in documentations (many CLs)
all: plugin build mode & package (many CLs)
cmd/compile: add SSA backend for s390x and enable by default (CL 28978)
cmd/compile: args no longer live until end of function - use runtime.KeepAlive instead (CL 28310)
cmd/compile: make ssa compilation unconditional (CL 29155)
cmd/compile: remove old lexer and parser (CL 32020)
cmd/doc: ensure summaries truly are only one line (CL 25420)
cmd/doc: perform type grouping for constants and variables (CL 25419)
cmd/doc: show documentation for interface methods when requested explicitly (CL 31852)
compress/flate: always return uncompressed data in the event of error (CL 28216)
compress/flate: level 1 (best speed) match across blocks (CL 31640)
compress/flate: make compression level 0 consistent (CL 31174)
compress/flate: tighten the BestSpeed max match offset bound. (CL 32149)
compress/gzip: only encode MTIME if it is valid (CL 32325)
context: make DeadlineExceeded implement net.Error (CL 30370)
crypto/tls: add CloseWrite method to Conn (CL 25159, 31318)
crypto/tls: add Config.Clone (CL 28075)
crypto/tls: add Config.GetConfigForClient (CL 30790)
crypto/tls: add GetClientCertificate callback (CL 32115)
crypto/tls: add KeyLogWriter for debugging (CL 27434)
crypto/tls: add VerifyPeerCertificate to tls.Config (CL 26654)
crypto/tls: add a SignatureScheme type. (CL 32119)
crypto/tls: don't generate random ticket keys if already set (CL 27317)
crypto/tls: enable ChaCha20-Poly1305 cipher suites by default. (CL 30958)
crypto/tls: expand ClientHelloInfo (CL 31391)
crypto/tls: fix deadlock when racing to complete handshake (CL 29164)
crypto/tls: flush the buffer on handshake errors (CL 28818)
crypto/tls: implement countermeasures against CBC padding oracles (CL 18130)
crypto/tls: set Conn.ConnectionState.ServerName unconditionally (CL 22862)
crypto/tls: support AES-128-CBC cipher suites with SHA-256 (CL 27315)
crypto/tls: support ChaCha20-Poly1305. (CL 30957)
crypto/tls: support X25519 (CL 30824, CL 30825)
crypto/{tls,cipher,internal/cryptohw}: prioritise AES-GCM when hardware support is present. (CL 32871)
crypto/x509: support PSS signatures (CL 24743)
crypto/x509: implement SystemCertPool on Windows (CL 30578)
crypto/x509: expose UnknownAuthorityError.Cert (CL 32644)
crypto/x509: allow a leaf certificate to be specified directly as root (CL 27393)
crypto/x509: check that the issuer name matches the issuer's subject name (CL 23571)
crypto/x509: don't accept a root that already appears in a chain. (CL 32121)
crypto/x509: fix name constraints handling (CL 30155)
crypto/x509: parse all names in an RDN (CL 30810)
crypto/x509: recognise ISO OID for RSA+SHA1 (CL 27394)
crypto/x509: require a NULL parameters for RSA public keys (CL 16166, CL 27312)
crypto/x509: return error for missing SerialNumber (CL 27238)
crypto/x509: support RHEL 7 cert bundle (CL 30375)
database/sql: accept nil pointers to Valuers implemented on value receivers (CL 31259)
database/sql: add Pinger interface to driver Conn (CL 32136)
database/sql: add context helper methods and transaction types (CL 31258)
database/sql: add context methods (CL 29381)
database/sql: add option to use named parameter in query arguments (CL 30166)
database/sql: add support for multiple result sets (CL 30592)
database/sql: don't hang if the driver Exec method panics (CL 23576)
database/sql: support returning query database types (CL 29961)
debug/pe: revert CL 22720 (CL 27212)
encoding/base64: add Encoding.Strict (CL 24964)
encoding/binary: add bool support (CL 28514)
encoding/json: add struct and field name to UnmarshalTypeError message (CL 18692)
encoding/json: encode nil Marshaler as "null" (CL 31932)
encoding/json: fix decoding of null into Unmarshaler, TextUnmarshaler (CL 30944)
encoding/json: marshal the RawMessage value type the same as its pointer type (CL 21811)
encoding/json: use standard ES6 formatting for numbers during marshal (CL 30371)
encoding/pem: be stricter about the ending line (CL 27391)
expvar: add Value methods (CL 30917)
expvar: export http.Handler (CL 24722)
image/png: implement grayscale transparency. (CL 32143)
image/png: implement truecolor transparency. (CL 32140)
image/png: improve compression by skipping filter for paletted images (CL 29872)
lib/time: update tzdata to 2016i (CL 33029)
math/big: add (*Int).Sqrt (CL 30706)
math/big: implement Float.Scan, type assert fmt interfaces to enforce docs (CL 30723)
math/big: support negative numbers in ModInverse (CL 29299)
math/rand: add Rand.Uint64 (CL 27253)
mime: preserve unnecessary backslash escapes as literals (CL 32175)
mime/quotedprintable: accept = not followed by 2 hex digits as literal equals (CL 32174)
mime/quotedprintable: accept trailing soft line-break at the end of message (CL 27530)
net/http, net/http/httptest: make http2's TrailerPrefix work for http1 (CL 32479)
net/http: add ErrAbortHandler, make Server quiet if used as panic value (CL 33099)
net/http: add NoBody, don't return nil from NewRequest on zero bodies (CL 31726)
net/http: add Request.GetBody func for 307/308 redirects (CL 31733)
net/http: add Server.Close & Server.Shutdown for forced & graceful shutdown (CL 32329)
net/http: add Server.ReadHeaderTimeout, IdleTimeout, document WriteTimeout (CL 32024)
net/http: add Transport.ProxyConnectHeader to control headers to proxies (CL 32481)
net/http: add an interface for HTTP/2 server push (CL 32012)
net/http: allow Handlers to test Hijacked conn without spamming error log (CL 30812)
net/http: don't sniff Request.Body on 100-continue requests in Transport (CL 30151)
net/http: handle 3xx redirects properly (CL 29852)
net/http: make Client copy headers on redirect (CL 28930)
net/http: make DefaultTransport's Dialer enable DualStack ("Happy Eyeballs") (CL 28077)
net/http: make NewRequest set empty Body nil, don't peek Read Body in Transport (CL 31445)
net/http: make Redirect escape non-ASCII in Location header (CL 31732)
net/http: make Server Handler's Request.Context be done on conn errors (CL 31173)
net/http: make Server log on bad requests from clients (CL 27950)
net/http: make Transport reject URLs with bogus ports with non-digits (CL 32482)
net/http: make Transport retry non-idempotent requests if no bytes written (CL 27117)
net/http: make Transport support international domain names (CL 29072)
net/http: omit Content-Length in Response.Write for 1xx or 204 status (CL 28351)
net/http: returned typed error on Transport proxy dial (CL 30750)
net/http: send Content-Range if no byte range overlaps (CL 24212)
net/http: skip test needing good DNS in short mode, except on builders (CL 28782)
net/http: support If-Match in ServeContent (CL 32014)
net/http: support multiple identical Content-Length headers (CL 31252)
net/http: update bundled http2 for ErrAbortHandler support, document it more (CL 33103)
net/http: update bundled http2, add h2 Transport.IdleConnTimeout tests (CL 30078)
net/mail: allow empty quoted string name in address again (CL 32176)
net/mail: expose ParseDate, for use parsing Resent-Date headers (CL 31581)
net/smtp: make Client.Auth trim final space if Auth.Start toServer is empty (CL 33143)
net/url: add PathEscape, PathUnescape (CL 31322)
net/url: add URL.Hostname and URL.Port accessors (CL 28933)
net/url: handle escaped paths in ResolveReference (CL 28343)
net/url: make URL implement encoding.BinaryMarshaler, BinaryUnmarshaler (CL 31467)
net/url: prefix relative paths containing ":" in the first segment with "./" (CL 29610)
net/url: reject colon in first segment of relative path in Parse (CL 31582)
net: add (*UnixListener).SetUnlinkOnClose (CL 32099)
net: always wake up the readers on close on Plan 9 (CL 31390)
net: close the connection gracefully on Plan 9 (CL 31271)
net: implement network interface API for Plan 9 (CL 29963)
net: make lookupPort case-insensitive on Plan 9 (CL 29051)
os: add Executable() (CL 16551)
plugin: darwin support (CL 29392)
plugin: mention OS X support and concurrency (CL 31463)
plugin: new package for loading plugins (CL 27823)
ports: doc: document minimum OS X version as 10.8 (CL 28870)
ports: dragonfly: go1.8 requires DragonFly BSD 4.4.4 or above (CL 29491)
ports: mips, mipsle
ports: plan9: various fixes (Close unblocks Read, I/O deadline maybe?)
reflect: add Swapper func (CL 30088)
reflect: ignore struct tags when converting structs (CL 30191)
runtime: Hybrid barrier. <100us GC pauses.
runtime: defer is now 2X faster (CL 29656)
runtime: optimize defer code (CL 29656)
runtime: runtime.MemStats has much more detailed documentation (CL 28972)
sort: add Slice, SliceStable, and SliceIsSorted (CL 27321)
spec: ignore struct tags when converting structs (CL 24190)
spec: require 16 bit minimum exponent in constants rather than 32 (CL 17711)
strconv: strip \r in raw strings passed to Unquote (CL 31210)
testing: add Name method to *T and *B (CL 29970)
testing: add T.Context method (CL 31724)
testing: add a method testing.CoverMode (CL 32483)
testing: mark tests and benchmarks failed if a race occurs during execution (CL 32615)
time: add Until helper function (CL 20118)
time: allow long fractions in ParseDuration (CL 29338)
tools: Many ppc64, s390x, arm, arm64 optimizations
tools: New frontend
tools: compile: SSA for 386, nacl, arm, arm64, ppc64, ppc64le, s390x ... (many CLs)
tools: yacc: "go tool yacc" is removed. now at golang.org/x/tools/cmd/goyacc (CL 27324, CL 27325)
unicode: change SimpleFold to handle invalid runes (CL 30935)