blob: a98f83aa9942067744eb3312a29efa20e9329f7c [file] [log] [blame]
Brad Fitzpatrickfd2642b2015-01-18 16:00:10 -08001Overall:
Brad Fitzpatrick2b2f09b2015-03-23 10:49:23 -07002toolchain in Go
3new GC
Brad Fitzpatrickfd2642b2015-01-18 16:00:10 -08004
Robert Griesemer754bb712015-03-20 16:17:13 -07005Language:
6permit omission of key type in map composite literals where key is a composite literal (https://golang.org/cl/2591)
7
8Build:
9Go 1.4 required to build (https://golang.org/cl/2470, https://golang.org/cl/2993)
Brad Fitzpatrickfd2642b2015-01-18 16:00:10 -080010
Shenghou Ma89669c62015-02-06 01:09:08 -050011New Ports:
Brad Fitzpatrick2b2f09b2015-03-23 10:49:23 -070012darwin/arm, a.k.a iOS. (https://golang.org/cl/2118, 2119, 3273, 2121, 2122, ..., 2127)
Shenghou Ma8ac129e2015-04-08 04:48:49 -040013linux/arm64 (cgo is supported, but only with external linking)
Shenghou Ma89669c62015-02-06 01:09:08 -050014
Joel Sing3e981d92015-03-14 23:53:31 +110015Removed Ports:
16dragonfly/386 (https://golang.org/cl/7543)
17
Brad Fitzpatrick0e05bd52015-01-02 14:35:55 -080018API additions and behavior changes:
19
Shenghou Madcf1ab32015-03-15 17:23:02 -040020archive/zip: add (*Writer).SetOffset method (https://golang.org/cl/7445)
Brad Fitzpatrick3ef39472015-01-06 22:40:22 -080021bufio: add Reader.Discard (https://golang.org/cl/2260)
Rob Pikeea2c94e2015-04-03 16:51:08 -070022bytes: add Buffer.Cap (https://golang.org/cl/8342)
Josh Bleecher Snyderee54d572015-04-06 16:20:45 -070023bytes, strings: add Reader.Size (https://golang.org/cl/3199)
Shenghou Ma09d369f2014-12-26 16:00:49 -050024crypto/cipher: clarify what will happen if len(src) != len(dst) for the Stream interface. (https://golang.org/cl/1754)
Brad Fitzpatrickfd2642b2015-01-18 16:00:10 -080025crypto/elliptic: add Name field to CurveParams struct (https://golang.org/cl/2133)
Brad Fitzpatrick7a8e8972014-12-19 13:47:12 +110026crypto/tls: change default minimum version to TLS 1.0. (https://golang.org/cl/1791)
Adam Langleyb0d8cb62015-02-24 16:06:08 -080027crypto/x509: wildcards are now only accepted as the first label (https://golang.org/cl/5691)
Josh Bleecher Snyderfb4b4672015-04-01 16:33:43 -070028database/sql: add Stats (https://golang.org/cl/7950)
Josh Bleecher Snyder466118c2014-12-22 09:32:34 -080029encoding/base64: add unpadded encodings (https://golang.org/cl/1511)
Rob Pike0d1c0272015-04-13 14:40:09 -070030flag: new nicer format for PrintDefaults (https://golang.org/cl/7330)
31fmt: empty slices now print nothing with %x (bug fix) (https://golang.org/cl/8864)
Rob Pike40db92f2015-04-15 09:01:38 -070032fmt: reflect.Value now prints what it holds (https://golang.org/cl/8731)
Robert Griesemer5ce9fde2015-02-23 23:51:05 -080033go/ast: add Implicit field to ast.EmptyStmt; changed meaning of ast.EmptyStmt.Semicolon position (https://golang.org/cl/5720)
Rob Pike40db92f2015-04-15 09:01:38 -070034io: add CopyBuffer, Copy with user-provided buffer (https://golang.org/cl/8730)
Andrew Gerrandda167b02015-01-30 16:01:14 +000035log: add SetOutput functions (https://golang.org/cl/2686, https://golang.org/cl/3023)
Rob Pike2539ccb2015-04-10 19:32:10 -070036log: add LUTC flag (https://golang.org/cl/8761)
Robert Griesemer754bb712015-03-20 16:17:13 -070037math/big: add arbitrary precision Floats (many cl's)
Josh Bleecher Snyder2f7ad522015-03-27 11:11:54 -070038mime: add ExtensionByType (https://golang.org/cl/7444)
Brad Fitzpatrick827a8a562015-04-07 11:59:52 +020039mime/quotedprintable: new package (https://golang.org/cl/5940 + others)
Brad Fitzpatrick7e56eee2014-12-30 10:01:49 -080040net/http: support for setting trailers from a server Handler (https://golang.org/cl/2157)
Brad Fitzpatrick2b2f09b2015-03-23 10:49:23 -070041net/http: ignore the Unix epoch time in ServeContent (https://golang.org/cl/7915)
Brad Fitzpatrickbbf38e92015-02-18 11:59:16 -080042net/http/cgi: fix REMOTE_ADDR, REMOTE_HOST, add REMOTE_PORT (https://golang.org/cl/4933)
Brad Fitzpatrick3b76b012014-12-28 13:37:44 -080043net/smtp: add TLSConnectionState accessor (https://golang.org/cl/2151)
Michael MacInnisa25e40d2015-02-16 16:27:20 -050044os/signal: add Ignore and Reset (https://golang.org/cl/3580)
Brad Fitzpatrickfd2642b2015-01-18 16:00:10 -080045runtime, syscall: use SYSCALL instruction on FreeBSD (Go 1.5 now requires FreeBSD 8-STABLE+) (https://golang.org/cl/3020)
Shenghou Mae89fdb822015-03-24 22:31:35 -040046runtime, syscall: use get_random_bytes syscall for NaCl (Go 1.5 now requires NaCl SDK pepper-39 or above) (https://golang.org/cl/1755)
Brad Fitzpatrickfd2642b2015-01-18 16:00:10 -080047strings: add Compare(x, y string) int, for symmetry with bytes.Compare (https://golang.org/cl/2828)
Brad Fitzpatrick2b2f09b2015-03-23 10:49:23 -070048syscall: Add Foreground and Pgid to SysProcAttr (https://golang.org/cl/5130)
49syscall: add missing Syscall9 for darwin/amd64 (https://golang.org/cl/6555)
Josh Bleecher Snyder11c12272015-02-04 09:32:44 -080050testing/quick: support generation of arrays (https://golang.org/cl/3865)
Rob Pikeea2c94e2015-04-03 16:51:08 -070051text/template: add Options method (https://golang.org/cl/8462)
Rob Pike49a5a972015-04-10 13:19:20 -070052time: add time.AppendFormat(https://golang.org/cl/1760)
Brad Fitzpatrick0e05bd52015-01-02 14:35:55 -080053
Rob Pike1a27c072015-01-13 10:16:30 +110054Tools:
55
Shenghou Ma21aad022015-03-13 22:36:51 -040056build: external linking support for windows (https://golang.org/cl/7163, 7282, 7283, 7284, 7534, 7535)
Robert Griesemer2f16ddc2015-04-07 16:20:38 -070057cmd/gc: constant arithmetic is based on math/big (https://golang.org/cl/7830, 7851, 7857, 8426, 7858, 7912, 8171)
Shenghou Ma214fbd42015-03-12 13:24:24 -040058cmd/go, go/build: add ${SRCDIR} variable expansion to cgo lines (https://golang.org/cl/1756)
Damian Gryskic754be82015-03-27 10:12:00 +010059cmd/go: add $DOLLAR to generate's variables (https://golang.org/cl/8091)
Russ Cox271a6502015-02-22 12:48:16 -050060cmd/go: std wildcard now excludes commands in main repo (https://golang.org/cl/5550)
Ian Lance Taylor73a73e52015-03-06 09:48:08 -080061cmd/go: .swig/.swigcxx files now require SWIG 3.0.6 or later
Rob Pike1a27c072015-01-13 10:16:30 +110062cmd/vet: better validation of struct tags (https://golang.org/cl/2685)
Shenghou Ma98376202015-02-02 18:53:24 -050063cmd/ld: no longer record build timestamp in Windows PE file header (https://golang.org/cl/3740)
Ian Lance Taylor0eadcc82015-04-10 16:47:14 -070064cmd/go: add -toolexec build option
65cmd/go: drop -ccflags build option
66cmd/go: add -asmflags build option
67cmd/go: add -buildmode build option
68cmd/gc: add -dynlink option (for amd64 only)
69cmd/ld: add -buildmode option
Brad Fitzpatrick715d0172015-02-23 12:17:20 -080070cmd/trace: new command to view traces (https://golang.org/cl/3601)
Brad Fitzpatrick0e05bd52015-01-02 14:35:55 -080071
72Performance:
73
Brad Fitzpatrickf8fd5502015-03-31 06:16:40 -070074cmd/gc: evaluate concrete == interface without allocating (https://golang.org/cl/2096)
Brad Fitzpatrickfd2642b2015-01-18 16:00:10 -080075cmd/gc: optimize memclr of slices and arrays (https://golang.org/cl/2520)
Brad Fitzpatrickffc22992015-03-27 14:25:25 +010076cmd/gc: transform closure calls to function calls (https://golang.org/cl/4050)
Brad Fitzpatrickf8fd5502015-03-31 06:16:40 -070077cmd/gc: transitive inlining (https://golang.org/cl/5952)
78cmd/gc, runtime: speed up some cases of _, ok := i.(T) (https://golang.org/cl/7697)
79cmd/gc: speed up large string switches (https://golang.org/cl/7698)
80cmd/gc: inline x := y.(*T) and x, ok := y.(*T) (https://golang.org/cl/7862)
81cmd/gc: allocate backing storage for non-escaping interfaces on stack (https://golang.org/cl/8201)
Brad Fitzpatrickffc22992015-03-27 14:25:25 +010082encoding/xml: avoid an allocation for tags without attributes (https://golang.org/cl/4160)
83image: many optimizations
84runtime: add ARM runtime.cmpstring and bytes.Compare (https://golang.org/cl/8010)
Brad Fitzpatrickfd2642b2015-01-18 16:00:10 -080085sort: number of Sort performance optimizations (https://golang.org/cl/2100, https://golang.org/cl/2614, ...)
Brad Fitzpatrick0e05bd52015-01-02 14:35:55 -080086strconv: optimize decimal to string conversion (https://golang.org/cl/2105)
Brad Fitzpatrickffc22992015-03-27 14:25:25 +010087strconv: optimize float to string conversion (https://golang.org/cl/5600)
88sync: add active spinning to Mutex (https://golang.org/cl/5430)
Robert Griesemerfbe28452015-01-08 13:09:22 -080089math/big: faster assembly kernels for amd64 and 386 (https://golang.org/cl/2503, https://golang.org/cl/2560)
90math/big: faster "pure Go" kernels for platforms w/o assembly kernels (https://golang.org/cl/2480)
Brad Fitzpatrick2b2f09b2015-03-23 10:49:23 -070091regexp: port RE2's bitstate backtracker to the regexp package (https://golang.org/cl/2153)
Rob Pike94d0b382015-02-13 15:12:03 -080092
93Assembler:
94
Ian Lance Taylor0eadcc82015-04-10 16:47:14 -070095New cmd/asm tool (now use go tool asm, not go tool 6a)
96
97Assembler now supports -dynlink option.
98
Rob Pike94d0b382015-02-13 15:12:03 -080099ARM assembly syntax has had some features removed.
100
101 - mentioning SP or PC as a hardware register
102 These are always pseudo-registers except that in some contexts
103 they're not, and it's confusing because the context should not affect
104 which register you mean. Change the references to the hardware
105 registers to be explicit: R13 for SP, R15 for PC.
106 - constant creation using assignment
107 The files say a=b when they could instead say #define a b.
108 There is no reason to have both mechanisms.
109 - R(0) to refer to R0.
110 Some macros use this to a great extent. Again, it's easy just to
111 use a #define to rename a register.
112
113Also expression evaluation now uses uint64s instead of signed integers and the
114precedence of operators is now Go-like rather than C-like.