aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@golang.org>2016-11-30 01:44:15 +0000
committerBrad Fitzpatrick <bradfitz@golang.org>2016-11-30 01:48:59 +0000
commit012ec29ad46128265e0ec2dd2ac3a620c01619c5 (patch)
tree525ee9c1424c34adc9166f3c5fae55434da566d1
parent0b1b6d4ce32818e0aa6db3bd37c6ca4a4d5613af (diff)
downloadgo-012ec29ad46128265e0ec2dd2ac3a620c01619c5.tar.gz
go-012ec29ad46128265e0ec2dd2ac3a620c01619c5.zip
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>
-rw-r--r--doc/go1.8.html130
-rw-r--r--doc/go1.8.txt353
2 files changed, 124 insertions, 359 deletions
diff --git a/doc/go1.8.html b/doc/go1.8.html
index 1435542923..88ba6bc0a3 100644
--- a/doc/go1.8.html
+++ b/doc/go1.8.html
@@ -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>
diff --git a/doc/go1.8.txt b/doc/go1.8.txt
index 6780b60242..7c61a4f91a 100644
--- a/doc/go1.8.txt
+++ b/doc/go1.8.txt
@@ -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: don’t 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 ==, don’t 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)