mirror of
https://github.com/golang/go
synced 2024-11-27 03:11:19 -07:00
4d898776ff
Change-Id: Ibae0be046c6a6596d3a98b094ec5f089bb68be7a Reviewed-on: https://go-review.googlesource.com/31182 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
293 lines
17 KiB
Plaintext
293 lines
17 KiB
Plaintext
Overall:
|
||
|
||
plugin build mode & package (many CLs)
|
||
Many ppc64, s390x, arm, arm64 optimizations
|
||
New frontend
|
||
Summarize improvements to binary size, runtime speed, compile speed
|
||
|
||
Language:
|
||
|
||
Alias declarations?
|
||
|
||
Tools:
|
||
|
||
compile: SSA for 386, nacl, arm, arm64, ppc64, ppc64le, s390x ... (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)
|
||
go, dist: can set default pkg-config tool using PKG_CONFIG env var (CL 29991)
|
||
go: can set secure/insecure GIT schemes using GIT_ALLOW_PROTOCOL env var (CL 30135)
|
||
|
||
Ports:
|
||
|
||
dragonfly: go1.8 requires DragonFly BSD 4.4.4 or above (CL 29491)
|
||
|
||
API additions and behavior changes:
|
||
|
||
archive/tar: fix and cleanup readOldGNUSparseMap (CL 28471)
|
||
archive/tar: reapply Header.Size to regFileReader after merging (CL 28418)
|
||
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/cgo: fix line info in _cgo_gotypes.go (CL 29713)
|
||
cmd/compile, runtime, etc: get rid of constant FP registers (CL 28095)
|
||
cmd/compile, runtime: add go:yeswritebarrierrec pragma (CL 30938)
|
||
cmd/compile/internal/gc: add runtime/trace support (CL 25354)
|
||
cmd/compile/internal/syntax: fast Go syntax trees, initial commit (CL 27195)
|
||
cmd/compile: add SSA backend for s390x and enable by default (CL 28978)
|
||
cmd/compile: add compiler phase timing (CL 24462)
|
||
cmd/compile: add go:notinheap type pragma (CL 30939)
|
||
cmd/compile: add inline explainer (CL 22782)
|
||
cmd/compile: args no longer live until end of function - use runtime.KeepAlive instead (CL 28310)
|
||
cmd/compile: fail gracefully on export format skew (CL 27814)
|
||
cmd/compile: make ssa compilation unconditional (CL 29155)
|
||
cmd/compile: remove support for textual export format (CL 27171)
|
||
cmd/cover: Fix compiler directives handling (CL 30161)
|
||
cmd/cover: handle gotos (CL 30977)
|
||
cmd/dist: enable plugin test on darwin/amd64 (CL 29396)
|
||
cmd/dist: test PIE internal linking on linux/amd64 (CL 28545)
|
||
cmd/doc: ensure summaries truly are only one line (CL 25420)
|
||
cmd/doc: perform type grouping for constants and variables (CL 25419)
|
||
cmd/fix: add golang.org/x/net/context fix (CL 28872)
|
||
cmd/go: add bug command (CL 28485)
|
||
cmd/go: add distribution-specific info for Linux to bug command (CL 28581)
|
||
cmd/go: enable -buildmode=plugin on darwin/amd64 (CL 29395)
|
||
cmd/go: for -msan build runtime/cgo with -fsanitize=memory (CL 24855)
|
||
cmd/go: make bug subcommand open the browser (CL 29210)
|
||
cmd/internal/obj, cmd/link: darwin dynlink support (CL 29393)
|
||
cmd/internal/objfile: add ppc64/ppc64le disassembler support (CL 9682)
|
||
cmd/link, cmd/go: delay linking of mingwex and mingw32 until very end (CL 26670)
|
||
cmd/link: R_ADDR dynamic relocs for internal PIE (CL 29118)
|
||
cmd/link: allow internal PIE linking (CL 28543)
|
||
cmd/link: fix -buildmode=pie / -linkshared combination (CL 28996)
|
||
cmd/link: insert trampolines for too-far jumps on ARM (CL 29397)
|
||
cmd/link: non-executable stack support for Solaris (CL 24142)
|
||
cmd/link: plugin support on darwin/amd64 (CL 29394)
|
||
cmd/link: remove the -shared flag (CL 28852)
|
||
cmd/link: split large elf text sections on ppc64x (CL 27790)
|
||
cmd/objdump: implement objdump of .o files (CL 24818)
|
||
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)
|
||
cmd/vet: allow ^& uintptr arithmetic (CL 27156)
|
||
cmd/vet: allow any printf verb with any interface (CL 27127)
|
||
cmd/vet: check for copying of array of locks (CL 24340)
|
||
cmd/vet: check for duplicate json, xml struct field tags (CL 16704)
|
||
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)
|
||
compress/flate: always return uncompressed data in the event of error (CL 28216)
|
||
context: make DeadlineExceeded implement net.Error (CL 30370)
|
||
crypto/cipher: enforce message size limits for GCM (CL 28410)
|
||
crypto/rsa: ensure that generating toy RSA keys doesn't loop (CL 28969)
|
||
crypto/tls: add Config.Clone (CL 28075)
|
||
crypto/tls: add KeyLogWriter for debugging (CL 27434)
|
||
crypto/tls: don't generate random ticket keys if already set (CL 27317)
|
||
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 X25519 (CL 30824, CL 30825)
|
||
crypto/x509: Fix bug in UnknownAuthorityError.Error (CL 27992)
|
||
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: 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)
|
||
crypto/x509: require a NULL parameters for RSA public keys (CL 27312)
|
||
crypto/x509: return error for missing SerialNumber (CL 27238)
|
||
crypto/x509: support PSS signatures (CL 24743)
|
||
crypto/x509: support RHEL 7 cert bundle (CL 30375)
|
||
database/sql: add context methods (CL 29381)
|
||
database/sql: add support for multiple result sets (CL 30592)
|
||
database/sql: don't hang if the driver Exec method panics (CL 23576)
|
||
debug/elf: add sparc64 relocations (CL 30870)
|
||
debug/pe: revert CL 22720 (CL 27212)
|
||
doc: document minimum OS X version as 10.8 (CL 28870)
|
||
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: use standard ES6 formatting for numbers during marshal (CL 30371)
|
||
encoding/pem: be stricter about the ending line (CL 27391)
|
||
encoding/xml: prevent omitempty from omitting non-nil pointers to empty values (CL 15684)
|
||
expvar: add Value methods (CL 30917)
|
||
expvar: export http.Handler (CL 24722)
|
||
fmt: document and adjust Scanf space handling to eliminate a few paradoxes (CL 30611)
|
||
go/ast, go/parser: parse alias declarations (CL 30211)
|
||
go/doc: add IsPredeclared function (CL 29870)
|
||
go/doc: allow ToHTML to properly handle URLs containing semicolons (CL 25385)
|
||
go/internal/gcimporter: fail gracefully on export format skew (CL 27816)
|
||
go/types: expose Default function, which converts untyped T to T (CL 30715)
|
||
go/types: minimal support for alias declarations: don't crash (CL 30213)
|
||
html/template: check "type" attribute in <script> (CL 14336)
|
||
image/png: improve compression by skipping filter for paletted images (CL 29872)
|
||
internal/trace: fix analysis of EvGoWaiting/EvGoInSyscall events (CL 25572)
|
||
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/big: support negative numbers in ModInverse (CL 29299)
|
||
math/big: test and optimize Exp(2, y, n) for large y, odd n (CL 30708)
|
||
math/rand: add Rand.Uint64 (CL 27253)
|
||
math: fix Gamma(-171.5) on all platforms (CL 30540)
|
||
mime/quotedprintable: accept trailing soft line-break at the end of message (CL 27530)
|
||
net/http/httptest: fill ContentLength in recorded Response (CL 28302)
|
||
net/http/httputil: copy header map if necessary in ReverseProxy (CL 28493)
|
||
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/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: make Client copy headers on redirect (CL 28930)
|
||
net/http: make DefaultTransport's Dialer enable DualStack ("Happy Eyeballs") (CL 28077)
|
||
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: 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: update bundled http2, add h2 Transport.IdleConnTimeout tests (CL 30078)
|
||
net/url: add URL.Hostname and URL.Port accessors (CL 28933)
|
||
net/url: handle escaped paths in ResolveReference (CL 28343)
|
||
net/url: prefix relative paths containing ":" in the first segment with "./" (CL 29610)
|
||
net: add Buffers type, do writev on unix (CL 29951)
|
||
net: add Resolver type, Dialer.Resolver, and DefaultResolver (CL 29440)
|
||
net: implement network interface API for Plan 9 (CL 29963)
|
||
net: implement network interface API for Solaris (CL 29892)
|
||
net: make LookupPort and lookupProtocol work on nacl (CL 28951)
|
||
net: make lookupPort case-insensitive on Plan 9 (CL 29051)
|
||
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: use libresolv rules for ndots range and validation (CL 24901)
|
||
os: don't let File.Readdir return an empty slice and nil error (CL 28056)
|
||
os: make IsExist report true on ERROR_DIR_NOT_EMPTY on Windows (CL 29753)
|
||
os: make Windows readConsole handle input and output correctly (CL 29493)
|
||
os: prevent infinite symlink loop of Stat on Windows (CL 27580)
|
||
os: use GetConsoleCP() instead of GetACP() (CL 27575)
|
||
path/filepath: don't return SkipDir at top (CL 24780)
|
||
path/filepath: handle ".." in normalizing a path on Windows (CL 27410)
|
||
path/filepath: handle "C:." correctly in EvalSymlinks on Windows (CL 28214)
|
||
plugin: darwin support (CL 29392)
|
||
plugin: new package for loading plugins (CL 27823)
|
||
reflect: add Swapper func (CL 30088)
|
||
reflect: ignore struct tags when converting structs (CL 30191)
|
||
runtime, runtime/cgo: revert CL 18814; don't drop signal stack in new thread on dragonfly (CL 29971)
|
||
runtime/race: don't crash on invalid PCs (CL 29714)
|
||
runtime: assume 64kB physical pages on ARM (CL 25021)
|
||
runtime: don't call cgocallback from signal handler (CL 30218)
|
||
runtime: fetch physical page size from the OS (CL 25050)
|
||
runtime: fix check for vacuous page boundary rounding (CL 27230)
|
||
runtime: fix map iterator concurrent map check (CL 24749)
|
||
runtime: fix newextram PC passed to race detector (CL 29712)
|
||
runtime: limit the number of map overflow buckets (CL 25049)
|
||
runtime: record current PC for SIGPROF on non-Go thread (CL 30252)
|
||
runtime: report GCSys and OtherSys in heap profile (CL 29276)
|
||
runtime: sleep on CLOCK_MONOTONIC in futexsleep1 on freebsd (CL 30154)
|
||
runtime: use RtlGenRandom instead of CryptGenRandom (CL 29700)
|
||
runtime: use correct system page size on all arches (CL 25022)
|
||
sort: add Slice, SliceStable, and SliceIsSorted (CL 27321)
|
||
spec: ignore struct tags when converting structs (CL 24190)
|
||
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)
|
||
syscall: add bounds checking and error returns to ParseNetlinkMessage (CL 26990)
|
||
syscall: fix Send{msg,msgN}, Recvmsg and control message handling on solaris (CL 30171)
|
||
syscall: make Getpagesize return system-reported page size (CL 25051)
|
||
syscall: unify NsecToTime{spec,val}, fix for times < 1970 (CL 30826)
|
||
syscall: validate ParseDirent inputs (CL 23780)
|
||
testing: add Name method to *T and *B (CL 29970)
|
||
testing: respect benchtime on very fast benchmarks (CL 26664)
|
||
time: add Until helper function (CL 20118)
|
||
time: allow long fractions in ParseDuration (CL 29338)
|
||
unicode: change SimpleFold to handle invalid runes (CL 30935)
|
||
website: recreate 16px and 32px favicon (CL 26850)
|
||
|
||
Optimizations:
|
||
|
||
bytes: Use the same algorithm as strings for Index (CL 22550)
|
||
bytes: improve WriteRune performance (CL 28816)
|
||
bytes: make IndexRune faster (CL 28537)
|
||
cmd/asm, go/build: invoke cmd/asm only once per package (CL 27636)
|
||
cmd/compile,runtime: redo how map assignments work (CL 30815)
|
||
cmd/compile/internal/obj/x86: eliminate some function prologues (CL 24814)
|
||
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: 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 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 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 link register allocatable in non-leaf functions (CL 30597)
|
||
cmd/compile: missing float indexed loads/stores on amd64 (CL 28273)
|
||
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: when inlining ==, don’t take the address of the values (CL 22277)
|
||
container/heap: remove one unnecessary comparison in Fix (CL 24273)
|
||
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)
|
||
hash/crc32: improve the AMD64 implementation using SSE4.2 (CL 27931)
|
||
hash/crc32: improve the processing of the last bytes in the SSE4.2 code for AMD64 (CL 24470)
|
||
image/draw: optimize drawFillOver as drawFillSrc for opaque fills (CL 28790)
|
||
math/big: avoid allocation in float.{Add, Sub} when there's no aliasing (CL 23568)
|
||
math/big: make division faster (CL 30613)
|
||
math/big: use array instead of slice for deBruijn lookups (CL 26663)
|
||
math: speed up bessel functions on AMD64 (CL 28086)
|
||
reflect: avoid zeroing memory that will be overwritten (CL 28011)
|
||
regexp: reduce mallocs in Regexp.Find* and Regexp.ReplaceAll* (CL 23030)
|
||
runtime: cgo calls are about 100ns faster (CL 29656, CL 30080)
|
||
runtime: defer is now 2X faster (CL 29656)
|
||
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: memclr perf improvements on ppc64x (CL 30373)
|
||
runtime: minor string/rune optimizations (CL 27460)
|
||
runtime: optimize defer code (CL 29656)
|
||
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)
|
||
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: reduce bounds checks in EncodeRune (CL 28492)
|
||
|
||
Documentation:
|
||
|
||
all: many more examples in documentations (many CLs)
|
||
runtime: runtime.MemStats has much more detailed documentation (CL 28972)
|
||
|
||
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)
|