diff --git a/doc/devel/release.html b/doc/devel/release.html new file mode 100644 index 00000000000..6f36448ea19 --- /dev/null +++ b/doc/devel/release.html @@ -0,0 +1,149 @@ + + +
This page summarizes the changes between tagged releases of Go. +For full details, see the Mercurial change log.
+ ++This release is mainly bug fixes. There are no language changes. + +6prof: now works on 386 +8a, 8l: add FCOMI, FCOMIP, FUCOMI, and FUCOMIP (thanks Evan Shaw) +big: fix ProbablyPrime on small numbers +container/vector: faster []-based implementation (thanks Jan Mercl) +crypto/tls: extensions and Next Protocol Negotiation +gob: one encoding bug fix, one decoding bug fix +image/jpeg: support for RST markers +image/png: support for transparent paletted images +misc/xcode: improved support (thanks Ken Friedenbach) +net: return nil Conn on error from Dial (thanks Roger Peppe) +regexp: add Regexp.NumSubexp (thanks Peter Froehlich) +syscall: add Nanosleep on FreeBSD (thanks Devon H. O'Dell) +template: can use map in .repeated section + +There is now a public road map, in the repository and online +at http://golang.org/doc/devel/roadmap.html. ++ +
+Since the last release there has been one large syntactic change to +the language, already discussed extensively on this list: semicolons +are now implied between statement-ending tokens and newline characters. +See http://groups.google.com/group/golang-nuts/t/5ee32b588d10f2e9 for +details. + +By default, gofmt now parses and prints the new lighter weight syntax. +To convert programs written in the old syntax, you can use: + + gofmt -oldparser -w *.go + +Since everything was being reformatted anyway, we took the opportunity to +change the way gofmt does alignment. Now gofmt uses tabs at the start +of a line for basic code alignment, but it uses spaces for alignment of +interior columns. Thus, in an editor with a fixed-width font, you can +choose your own tab size to change the indentation, and no matter what +tab size you choose, columns will be aligned properly. + + +In addition to the syntax and formatting changes, there have been many +smaller fixes and updates: + +6g,8g,5g: many bug fixes, better registerization, + build process fix involving mkbuiltin (thanks Yongjian Xu), + method expressions for concrete types +8l: support for Windows PE files (thanks Hector Chu) +bytes: more efficient Buffer handling +bytes, strings: new function Fields (thanks Andrey Mirtchovski) +cgo: handling of enums (thanks Moriyoshi Koizumi), + handling of structs with bit fields, multiple files (thanks Devon H. O'Dell), + installation of .so to non-standard locations +crypto/sha256: new package for SHA 256 (thanks Andy Davis) +encoding/binary: support for slices of fixed-size values (thanks Maxim Ushakov) +exp/vector: experimental alternate vector representation (thanks Jan Mercl) +fmt: %p for chan, map, slice types +gob: a couple more bug fixes +http: support for basic authentication (thanks Ivan Krasin) +image/jpeg: basic JPEG decoder +math: correct handling of Inf and NaN in Pow (thanks Charles Dorian) +misc/bash: completion file for bash (thanks Alex Ray) +os/signal: support for handling Unix signals (thanks David Symonds) +rand: Zipf-distributed random values (thanks William Josephson) +syscall: correct error return bug on 32-bit machines (thanks Christopher Wedgwood) +syslog: new package for writing to Unix syslog daemon (thanks Yves Junqueira) +template: will automatically invoke niladic methods +time: new ISO8601 format generator (thanks Ben Olive) +xgb: converted generator to new syntax (thanks Tor Andersson) +xml: better mapping of tag names to Go identifiers (thanks Kei Son), + better handling of unexpected EOF (thanks Arvindh Rajesh Tamilmani) ++ +
+Since the last release there are two changes to the language: + +* new builtin copy(dst, src) copies n = min(len(dst), len(src)) + elements to dst from src and returns n. It works correctly + even if dst and src overlap. bytes.Copy is gone. + Convert your programs using: + gofmt -w -r 'bytes.Copy(d, s) -> copy(d, s)' *.go + +* new syntax x[lo:] is shorthand for x[lo:len(x)]. + Convert your programs using: + gofmt -w -r 'a[b:len(a)] -> a[b:]' *.go + +In addition, there have been many smaller fixes and updates: + +* 6g/8g/5g: many bug fixes +* 8g: fix 386 floating point stack bug (thanks Charles Dorian) +* all.bash: now works even when $GOROOT has spaces (thanks Sergio Luis O. B. Correia), + starting to make build work with mingw (thanks Hector Chu), + FreeBSD support (thanks Devon O'Dell) +* big: much faster on 386. +* bytes: new function IndexByte, implemented in assembly + new function Runes (thanks Peter Froehlich), + performance tuning in bytes.Buffer. +* codereview: various bugs fixed +* container/vector: New is gone; just declare a Vector instead. + call Resize to set len and cap. +* cgo: many bug fixes (thanks Eden Li) +* crypto: added MD4 (thanks Chris Lennert), + added XTEA (thanks Adrian O'Grady). +* crypto/tls: basic client +* exp/iterable: new functions (thanks Michael Elkins) +* exp/nacl: native client tree builds again +* fmt: preliminary performance tuning +* go/ast: more powerful Visitor (thanks Roger Peppe) +* gob: a few bug fixes +* gofmt: better handling of standard input, error reporting (thanks Fazlul Shahriar) + new -r flag for rewriting programs +* gotest: support for Benchmark functions (thanks Trevor Strohman) +* io: ReadFile, WriteFile, ReadDir now in separate package io/ioutil. +* json: new Marshal function (thanks Michael Hoisie), + better white space handling (thanks Andrew Skiba), + decoding into native data structures (thanks Sergey Gromov), + handling of nil interface values (thanks Ross Light). +* math: correct handling of sin/cos of large angles +* net: better handling of Close (thanks Devon O'Dell and Christopher Wedgwood) + support for UDP broadcast (thanks Jonathan Wills), + support for empty packets +* rand: top-level functions now safe to call from multiple goroutines +(thanks Roger Peppe). +* regexp: a few easy optimizations +* rpc: better error handling, a few bug fixes +* runtime: better signal handling on OS X, malloc fixes, + global channel lock is gone. +* sync: RWMutex now allows concurrent readers (thanks Péter Szabó) +* template: can use maps as data (thanks James Meneghello) +* unicode: updated to Unicode 5.2. +* websocket: new package (thanks Fumitoshi Ukai) +* xgb: preliminary X Go Bindings (thanks Tor Andersson) +* xml: fixed crash (thanks Vish Subramanian) +* misc: bbedit config (thanks Anthony Starks), + kate config (thanks Evan Shaw) +