| 
									
										
										
										
											2010-01-06 15:46:09 -08:00
										 |  |  | <!-- Release History --> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <h2 id="Releases">Release History</h2> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <p>This page summarizes the changes between tagged releases of Go. | 
					
						
							|  |  |  | For full details, see the <a href="http://code.google.com/p/go/source/list">Mercurial change log</a>.</p> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-28 14:05:01 +10:00
										 |  |  | <h3 id="2010-04-27">2010-04-27</h3> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <pre> | 
					
						
							|  |  |  | This release includes a new Codelab that illustrates the construction of a | 
					
						
							|  |  |  | simple wiki web application:  | 
					
						
							|  |  |  | 	http://golang.org/doc/codelab/wiki/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | It also includes a Codewalk framework for documenting code. See: | 
					
						
							|  |  |  | 	http://golang.org/doc/codewalk/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Other changes: | 
					
						
							|  |  |  | * 6g: fix need for parens around array index expression. | 
					
						
							|  |  |  | * 6l, 8l: include ELF header in PT_LOAD mapping for text segment. | 
					
						
							|  |  |  | * arm: add android runner script, | 
					
						
							|  |  |  | 	support for printing floats. | 
					
						
							|  |  |  | * big: implemented Karatsuba multiplication, | 
					
						
							|  |  |  | 	many fixes and improvements (thanks Evan Shaw). | 
					
						
							|  |  |  | * bytes: add Next method to Buffer, simplify Read, | 
					
						
							|  |  |  | 	shuffle implementation, making WriteByte 50% faster. | 
					
						
							|  |  |  | * crypto/tls: simpler implementation of record layer. | 
					
						
							|  |  |  | * exp/eval: fixes (thanks Evan Shaw). | 
					
						
							|  |  |  | * flag: eliminate unnecessary structs. | 
					
						
							|  |  |  | * gc: better windows support, | 
					
						
							|  |  |  | 	cmplx typecheck bug fix, | 
					
						
							|  |  |  | 	more specific error for statements at top level. | 
					
						
							|  |  |  | * go/parser: don't require unnecessary parens. | 
					
						
							|  |  |  | * godoc: exclude duplicate entries (thanks Andrei Vieru), | 
					
						
							|  |  |  | 	use int64 for timestamps (thanks Christopher Wedgwood). | 
					
						
							|  |  |  | * gofmt: fine-tune stripping of parentheses, | 
					
						
							|  |  |  | * json: Marshal, Unmarshal using new scanner, | 
					
						
							|  |  |  | 	preserve field name case by default, | 
					
						
							|  |  |  | 	scanner, Compact, Indent, and tests, | 
					
						
							|  |  |  | 	support for streaming. | 
					
						
							|  |  |  | * libmach: disassemble MOVLQZX correctly. | 
					
						
							|  |  |  | * math: more special cases for signed zero (thanks Charles L. Dorian). | 
					
						
							|  |  |  | * net: add Pipe, | 
					
						
							|  |  |  | 	fix bugs in packStructValue (thanks Michael Hoisie), | 
					
						
							|  |  |  | 	introduce net.Error interface. | 
					
						
							|  |  |  | * os: FileInfo: regularize the types of some fields, | 
					
						
							|  |  |  | 	create sys_bsd.go (thanks Giles Lean), | 
					
						
							|  |  |  | 	mingw bug fixes (thanks Alex Brainman). | 
					
						
							|  |  |  | * reflect: add FieldByNameFunc (thanks Raif S. Naffah), | 
					
						
							|  |  |  | 	implement Set(nil), SetValue(nil) for PtrValue and MapValue. | 
					
						
							|  |  |  | * regexp: allow escaping of any punctuation. | 
					
						
							|  |  |  | * rpc/jsonrpc: support for jsonrpc wire encoding. | 
					
						
							|  |  |  | * rpc: abstract client and server encodings, | 
					
						
							|  |  |  | 	add Close() method to rpc.Client. | 
					
						
							|  |  |  | * runtime: closures, defer bug fix for Native Client, | 
					
						
							|  |  |  | 	rename cgo2c, *.cgo to goc2c, *.goc to avoid confusion with real cgo. | 
					
						
							|  |  |  | 	several other fixes. | 
					
						
							|  |  |  | * scanner: implement Peek() to look at the next char w/o advancing. | 
					
						
							|  |  |  | * strings: add ReadRune to Reader, add FieldsFunc (thanks Kyle Consalus). | 
					
						
							|  |  |  | * syscall: match linux Setsid function signature to darwin, | 
					
						
							|  |  |  | 	mingw bug fixes (thanks Alex Brainman). | 
					
						
							|  |  |  | * template: fix handling of pointer inside interface. | 
					
						
							|  |  |  | * test/bench: add fannkuch-parallel.go (thanks Kyle Consalus), | 
					
						
							|  |  |  | 	pidigits ~10% performance win by using adds instead of shifts. | 
					
						
							|  |  |  | * time: remove incorrect time.ISO8601 and add time.RFC3339 (thanks Micah Stetson). | 
					
						
							|  |  |  | * utf16: add DecodeRune, EncodeRune. | 
					
						
							|  |  |  | * xml: add support for XML marshalling embedded structs (thanks Raif S. Naffah), | 
					
						
							|  |  |  | 	new "innerxml" tag to collect inner XML. | 
					
						
							|  |  |  | </pre> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-14 11:49:47 +10:00
										 |  |  | <h3 id="2010-04-13">2010-04-13</h3> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <pre> | 
					
						
							|  |  |  | This release contains many changes: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | * 8l: add DOS stub to PE binaries (thanks Evan Shaw). | 
					
						
							|  |  |  | * cgo: add //export. | 
					
						
							|  |  |  | * cmath: new complex math library (thanks Charles L. Dorian). | 
					
						
							|  |  |  | * docs: update to match current coding style (thanks Christopher Wedgwood). | 
					
						
							|  |  |  | * exp/eval: fix example and add target to Makefile (thanks Evan Shaw). | 
					
						
							|  |  |  | * fmt: change behaviour of format verb %b to match %x when negative (thanks Andrei Vieru). | 
					
						
							|  |  |  | * gc: compile s == "" as len(s) == 0, | 
					
						
							|  |  |  | 	distinguish fatal compiler bug from error+exit, | 
					
						
							|  |  |  | 	fix alignment on non-amd64, | 
					
						
							|  |  |  | 	good syntax error for defer func() {} - missing fina (), | 
					
						
							|  |  |  | 	implement panic and recover, | 
					
						
							|  |  |  | 	zero unnamed return values on entry if func has defer. | 
					
						
							|  |  |  | * goyacc: change to be reentrant (thanks Roger Peppe). | 
					
						
							|  |  |  | * io/ioutil: fix bug in ReadFile when Open succeeds but Stat fails. | 
					
						
							|  |  |  | * kate: update for recent language changes (thanks Evan Shaw). | 
					
						
							|  |  |  | * libcgo: initial mingw port work - builds but untested (thanks Joe Poirier). | 
					
						
							|  |  |  | * math: new functions and special cases (thanks Charles L. Dorian)  | 
					
						
							|  |  |  | * net: use chan bool instead of chan *netFD to avoid cycle. | 
					
						
							|  |  |  | * netchan: allow client to send as well as receive. | 
					
						
							|  |  |  | * nntp: new package, NNTP client (thanks Conrad Meyer). | 
					
						
							|  |  |  | * os: rename os.Dir to os.FileInfo. | 
					
						
							|  |  |  | * rpc: don't log normal EOF, | 
					
						
							|  |  |  | 	fix ServeConn to block as documented. | 
					
						
							|  |  |  | * runtime: many bug fixes, better ARM support. | 
					
						
							|  |  |  | * strings: add IndexRune, Trim, TrimLeft, TrimRight, etc (thanks Michael Hoisie). | 
					
						
							|  |  |  | * syscall: implement some mingw syscalls required by os (thanks Alex Brainman). | 
					
						
							|  |  |  | * test/bench: add k-nucleotide-parallel (thanks Kyle Consalus). | 
					
						
							|  |  |  | * Unicode: add support for Turkish case mapping. | 
					
						
							|  |  |  | * xgb: move from the main repository to http://code.google.com/p/x-go-binding/ | 
					
						
							|  |  |  | </pre> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-31 11:40:57 +11:00
										 |  |  | <h3 id="2010-03-30">2010-03-30</h3> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <pre> | 
					
						
							|  |  |  | This release contains three language changes: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 1. Accessing a non-existent key in a map is no longer a run-time error.   | 
					
						
							|  |  |  | It now evaluates to the zero value for that type.  For example: | 
					
						
							|  |  |  |         x := myMap[i]   is now equivalent to:   x, _ := myMap[i] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 2. It is now legal to take the address of a function's return value.   | 
					
						
							|  |  |  | The return values are copied back to the caller only after deferred | 
					
						
							|  |  |  | functions have run. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 3. The functions panic and recover, intended for reporting and recovering from | 
					
						
							|  |  |  | failure, have been added to the spec: | 
					
						
							|  |  |  | 	http://golang.org/doc/go_spec.html#Handling_panics  | 
					
						
							|  |  |  | In a related change, panicln is gone, and panic is now a single-argument | 
					
						
							|  |  |  | function.  Panic and recover are recognized by the gc compilers but the new | 
					
						
							|  |  |  | behavior is not yet implemented. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The ARM build is broken in this release; ARM users should stay at release.2010-03-22. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Other changes: | 
					
						
							|  |  |  | * bytes, strings: add IndexAny. | 
					
						
							|  |  |  | * cc/ld: Add support for #pragma dynexport, | 
					
						
							|  |  |  |         Rename dynld to dynimport throughout. Cgo users will need to rerun cgo. | 
					
						
							|  |  |  | * expvar: default publishings for cmdline, memstats | 
					
						
							|  |  |  | * flag: add user-defined flag types. | 
					
						
							|  |  |  | * gc: usual bug fixes | 
					
						
							|  |  |  | * go/ast: generalized ast filtering. | 
					
						
							|  |  |  | * go/printer: avoid reflect in print. | 
					
						
							|  |  |  | * godefs: fix handling of negative constants. | 
					
						
							|  |  |  | * godoc: export pprof debug information, exported variables, | 
					
						
							|  |  |  |         support for filtering of command-line output in -src mode, | 
					
						
							|  |  |  |         use http GET for remote search instead of rpc. | 
					
						
							|  |  |  | * gofmt: don't convert multi-line functions into one-liners, | 
					
						
							|  |  |  |         preserve newlines in multiline selector expressions (thanks Risto Jaakko Saarelma). | 
					
						
							|  |  |  | * goinstall: include command name in error reporting (thanks Andrey Mirtchovski) | 
					
						
							|  |  |  | * http: add HandleFunc as shortcut to Handle(path, HandlerFunc(func)) | 
					
						
							|  |  |  | * make: use actual dependency for install | 
					
						
							|  |  |  | * math: add J1, Y1, Jn, Yn, J0, Y0 (Bessel functions) (thanks Charles L. Dorian) | 
					
						
							|  |  |  | * prof: add pprof from google-perftools | 
					
						
							|  |  |  | * regexp: don't return non-nil *Regexp if there is an error. | 
					
						
							|  |  |  | * runtime: add Callers, | 
					
						
							|  |  |  |         add malloc sampling, pprof interface, | 
					
						
							|  |  |  |         add memory profiling, more statistics to runtime.MemStats, | 
					
						
							|  |  |  |         implement missing destroylock() (thanks Alex Brainman), | 
					
						
							|  |  |  |         more malloc statistics, | 
					
						
							|  |  |  |         run all finalizers in a single goroutine, | 
					
						
							|  |  |  |         Goexit runs deferred calls. | 
					
						
							|  |  |  | * strconv: add Atob and Btoa, | 
					
						
							|  |  |  |         Unquote could wrongly return a nil error on error (thanks Roger Peppe). | 
					
						
							|  |  |  | * syscall: add IPV6 constants, | 
					
						
							|  |  |  |         add syscall_bsd.go for Darwin and other *BSDs (thanks Giles Lean), | 
					
						
							|  |  |  |         implement SetsockoptString (thanks Christopher Wedgwood). | 
					
						
							|  |  |  | * websocket: implement new protocol (thanks Fumitoshi Ukai). | 
					
						
							|  |  |  | * xgb: fix request length and request size (thanks Firmansyah Adiputra). | 
					
						
							|  |  |  | * xml: add CopyToken (thanks Kyle Consalus), | 
					
						
							|  |  |  |         add line numbers to syntax errors (thanks Kyle Consalus), | 
					
						
							|  |  |  |         use io.ReadByter in place of local readByter (thanks Raif S. Naffah).  | 
					
						
							|  |  |  | </pre> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-23 12:56:39 +11:00
										 |  |  | <h3 id="2010-03-22">2010-03-22</h3> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <pre> | 
					
						
							|  |  |  | With this release we announce the launch of the Go Blog: | 
					
						
							|  |  |  | 	http://blog.golang.org/ | 
					
						
							|  |  |  | The first post is a brief update covering what has happened since the launch. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This release contains some new packages and functionality, and many fixes: | 
					
						
							|  |  |  | * 6g/8g: fix issues with complex data types, other bug fixes. | 
					
						
							|  |  |  | * Makefiles: refactored to make writing external Makefiles easier. | 
					
						
							|  |  |  | * crypto/rand: new package. | 
					
						
							|  |  |  | * godoc: implemented command-line search via RPC, | 
					
						
							|  |  |  | 	improved comment formatting: recognize URLs. | 
					
						
							|  |  |  | * gofmt: more consistent formatting of const/var decls. | 
					
						
							|  |  |  | * http: add Error helper function, | 
					
						
							|  |  |  | 	add ParseQuery (thanks Petar Maymounkov), | 
					
						
							|  |  |  | 	change RawPath to mean raw path, not raw everything-after-scheme. | 
					
						
							|  |  |  | * image/jpeg: fix typos. | 
					
						
							|  |  |  | * json: add MarshalIndent (accepts user-specified indent string). | 
					
						
							|  |  |  | * math: add Gamma function (thanks Charles L. Dorian). | 
					
						
							|  |  |  | * misc/bbedit: support for cmplx, real, imag (thanks Anthony Starks). | 
					
						
							|  |  |  | * misc/vim: add new complex types, functions and literals. | 
					
						
							|  |  |  | * net: fix IPMask.String not to crash on all-0xff mask. | 
					
						
							|  |  |  | * os: drop File finalizer after normal Close. | 
					
						
							|  |  |  | * runtime: add GOROOT and Version, | 
					
						
							|  |  |  | 	lock finalizer table accesses. | 
					
						
							|  |  |  | * sha512: add sha384 (truncated version) (thanks Conrad Meyer). | 
					
						
							|  |  |  | * syscall: add const ARCH, analogous to OS. | 
					
						
							|  |  |  | * syscall: further additions to mingw port (thanks Alex Brainman). | 
					
						
							|  |  |  | * template: fixed html formatter []byte input bug. | 
					
						
							|  |  |  | * utf16: new package. | 
					
						
							|  |  |  | * version.bash: cope with ancient Mercurial. | 
					
						
							|  |  |  | * websocket: use URL.RawPath to construct WebSocket-Location: header. | 
					
						
							|  |  |  | </pre> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-16 10:44:13 +11:00
										 |  |  | <h3 id="2010-03-15">2010-03-15</h3> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <pre> | 
					
						
							|  |  |  | This release includes a language change: support for complex numbers. | 
					
						
							|  |  |  | 	http://golang.org/doc/go_spec.html#Imaginary_literals | 
					
						
							|  |  |  | 	http://golang.org/doc/go_spec.html#Complex_numbers | 
					
						
							|  |  |  | There is no library support as yet. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This release also includes the goinstall command-line tool.  | 
					
						
							|  |  |  | 	http://golang.org/cmd/goinstall/ | 
					
						
							|  |  |  | 	http://groups.google.com/group/golang-nuts/t/f091704771128e32 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | * 5g/6g/8g: fix double function call in slice. | 
					
						
							|  |  |  | * arm: cleanup build warnings. (thanks Dean Prichard) | 
					
						
							|  |  |  | * big: fix mistakes with probablyPrime. | 
					
						
							|  |  |  | * bufio: add WriteRune. | 
					
						
							|  |  |  | * bytes: add ReadRune and WriteRune to bytes.Buffer. | 
					
						
							|  |  |  | * cc: stack split bug fix. | 
					
						
							|  |  |  | * crypto: add SHA-224 to sha256, add sha512 package. (thanks Conrad Meyer) | 
					
						
							|  |  |  | * crypto/ripemd160: new package. (thanks Raif S. Naffah) | 
					
						
							|  |  |  | * crypto/rsa: don't use safe primes. | 
					
						
							|  |  |  | * gc: avoid fixed length buffer cleanbuf. (thanks Dean Prichard) | 
					
						
							|  |  |  | 	better compilation of floating point += | 
					
						
							|  |  |  | 	fix crash on complicated arg to make slice. | 
					
						
							|  |  |  | 	remove duplicate errors, give better error for I.(T) | 
					
						
							|  |  |  | * godoc: support for multiple packages in a directory, other fixes. | 
					
						
							|  |  |  | * gofmt: bug fixes. | 
					
						
							|  |  |  | * hash: add Sum64 interface. | 
					
						
							|  |  |  | * hash/crc32: add Update function. | 
					
						
							|  |  |  | * hash/crc64: new package implementing 64-bit CRC. | 
					
						
							|  |  |  | * math: add ilogb, logb, remainder. (thanks Charles L. Dorian)  | 
					
						
							|  |  |  | * regexp: add ReplaceAllFunc, ReplaceAllStringFunc. | 
					
						
							|  |  |  | * runtime: clock garbage collection on bytes allocated, not pages in use. | 
					
						
							|  |  |  | * strings: make Split(s, "", n) faster. (thanks Spring Mc) | 
					
						
							|  |  |  | * syscall: minimal mingw version of syscall. (thanks Alex Brainman) | 
					
						
							|  |  |  | * template: add ParseFile, MustParseFile. | 
					
						
							|  |  |  | </pre> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-04 13:00:29 +11:00
										 |  |  | <h3 id="2010-03-04">2010-03-04</h3> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <pre> | 
					
						
							|  |  |  | There is one language change: the ability to convert a string to []byte or  | 
					
						
							|  |  |  | []int.  This deprecates the strings.Bytes and strings.Runes functions. | 
					
						
							|  |  |  | You can convert your existing sources using these gofmt commands: | 
					
						
							|  |  |  | 	gofmt -r 'strings.Bytes(x) -> []byte(x)' -w file-or-directory-list | 
					
						
							|  |  |  | 	gofmt -r 'strings.Runes(x) -> []int(x)' -w file-or-directory-list | 
					
						
							|  |  |  | After running these you might need to delete unused imports of the "strings"  | 
					
						
							|  |  |  | package. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Other changes and fixes: | 
					
						
							|  |  |  | * 6l/8l/5l: add -r option | 
					
						
							|  |  |  | * 8g: make a[byte(x)] truncate x | 
					
						
							|  |  |  | * codereview.py: fix for compatibility with hg >=1.4.3 | 
					
						
							|  |  |  | * crypto/blowfish: new package (thanks Raif S. Naffah) | 
					
						
							|  |  |  | * dashboard: more performance tuning | 
					
						
							|  |  |  | * fmt: use String method in %q to get the value to quote. | 
					
						
							|  |  |  | * gofmt: several cosmetic changes | 
					
						
							|  |  |  | * http: fix handling of Connection: close, bug in http.Post | 
					
						
							|  |  |  | * net: correct DNS configuration, | 
					
						
							|  |  |  | 	fix network timeout boundary condition, | 
					
						
							|  |  |  | 	put [ ] around IPv6 addresses for Dial. | 
					
						
							|  |  |  | * path: add Match, | 
					
						
							|  |  |  | 	fix bug in Match with non-greedy stars (thanks Kevin Ballard) | 
					
						
							|  |  |  | * strings: delete Bytes, Runes (see above) | 
					
						
							|  |  |  | * tests: an Eratosthenesque concurrent prime sieve (thanks Anh Hai Trinh)  | 
					
						
							|  |  |  | </pre> | 
					
						
							| 
									
										
										
										
											2010-02-23 16:35:31 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | <h3 id="2010-02-23">2010-02-23</h3> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <pre> | 
					
						
							|  |  |  | This release is mainly bug fixes and a little new code. | 
					
						
							|  |  |  | There are no language changes. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 6g/5g/8g: bug fixes | 
					
						
							|  |  |  | 8a/8l: Added FCMOVcc instructions (thanks Evan Shaw and Charles Dorian) | 
					
						
							|  |  |  | crypto/x509: support certificate creation | 
					
						
							|  |  |  | dashboard: caching to avoid datastore queries | 
					
						
							|  |  |  | exec: add dir argument to Run | 
					
						
							|  |  |  | godoc: bug fixes and code cleanups | 
					
						
							|  |  |  | http: continued implementation and bug fixes (thanks Petar Maymounkov) | 
					
						
							|  |  |  | json: fix quoted strings in Marshal (thanks Sergei Skorobogatov) | 
					
						
							|  |  |  | math: more functions, test cases, and benchmarks (thanks Charles L. Dorian) | 
					
						
							|  |  |  | misc/bbedit: treat predeclared identifiers as "keywords" (thanks Anthony Starks) | 
					
						
							|  |  |  | net: disable UDP server test (flaky on various architectures) | 
					
						
							|  |  |  | runtime: work around Linux kernel bug in futex, | 
					
						
							|  |  |  | 	pchw is now tiny | 
					
						
							|  |  |  | sync: fix to work on armv5 (thanks Dean Prichard) | 
					
						
							|  |  |  | websocket: fix binary frame size decoding (thanks Timo Savola) | 
					
						
							|  |  |  | xml: allow unquoted attribute values in non-Strict mode (thanks Amrut Joshi) | 
					
						
							|  |  |  | 	treat bool as value in Unmarshal (thanks Michael Hoisie)  | 
					
						
							|  |  |  | </pre> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-17 16:31:52 -08:00
										 |  |  | <h3 id="2010-02-17">2010-02-17</h3> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <pre> | 
					
						
							|  |  |  | There are two small language changes: | 
					
						
							|  |  |  | * NUL bytes may be rejected in souce files, and the tools do reject them. | 
					
						
							|  |  |  | * Conversions from string to []int and []byte are defined but not yet implemented. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Other changes and fixes: | 
					
						
							|  |  |  | * 5a/6a/8a/5c/6c/8c: remove fixed-size arrays for -I and -D options (thanks Dean Prichard) | 
					
						
							|  |  |  | * 5c/6c/8c/5l/6l/8l: add -V flag to display version number | 
					
						
							|  |  |  | * 5c/6c/8c: use "cpp" not "/bin/cpp" for external preprocessor (thanks Giles Lean) | 
					
						
							|  |  |  | * 8a/8l: Added CMOVcc instructions (thanks Evan Shaw) | 
					
						
							|  |  |  | * 8l: pe executable building code changed to include import table for kernel32.dll functions (thanks Alex Brainman) | 
					
						
							|  |  |  | * 5g/6g/8g: bug fixes | 
					
						
							|  |  |  | * asn1: bug fixes and additions (incl marshalling) | 
					
						
							|  |  |  | * build: fix build for Native Client, Linux/ARM | 
					
						
							|  |  |  | * dashboard: show benchmarks, add garbage collector benchmarks | 
					
						
							|  |  |  | * encoding/pem: add marshalling support | 
					
						
							|  |  |  | * exp/draw: fast paths for a nil mask | 
					
						
							|  |  |  | * godoc: support for directories outside $GOROOT | 
					
						
							|  |  |  | * http: sort header keys when writing Response or Request to wire (thanks Petar Maymounkov) | 
					
						
							|  |  |  | * math: special cases and new functions (thanks Charles Dorian) | 
					
						
							|  |  |  | * mime: new package, used in http (thanks Michael Hoisie) | 
					
						
							|  |  |  | * net: dns bug fix - use random request id | 
					
						
							|  |  |  | * os: finalize File, to close fd. | 
					
						
							|  |  |  | * path: make Join variadic (thanks Stephen Weinberg) | 
					
						
							|  |  |  | * regexp: optimization bug fix | 
					
						
							|  |  |  | * runtime: misc fixes and optimizations | 
					
						
							|  |  |  | * syscall: make signature of Umask on OS X, FreeBSD match Linux. (thanks Giles Lean) | 
					
						
							|  |  |  | </pre> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-04 17:37:46 -08:00
										 |  |  | <h3 id="2010-02-04">2010-02-04</h3> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <pre> | 
					
						
							|  |  |  | There is one language change: support for ...T parameters: | 
					
						
							|  |  |  | 	http://golang.org/doc/go_spec.html#Function_types | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | You can now check build status on various platforms at the Go Dashboard:  | 
					
						
							|  |  |  | 	http://godashboard.appspot.com | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | * 5l/6l/8l: several minor fixes | 
					
						
							|  |  |  | * 5a/6a/8a/5l/6l/8l: avoid overflow of symb buffer (thanks Dean Prichard) | 
					
						
							|  |  |  | * compress/gzip: gzip deflater (i.e., writer) | 
					
						
							|  |  |  | * debug/proc: add mingw specific build stubs (thanks Joe Poirier) | 
					
						
							|  |  |  | * exp/draw: separate the source-point and mask-point in Draw | 
					
						
							|  |  |  | * fmt: handle nils safely in Printf | 
					
						
							|  |  |  | * gccgo: error messages now match those of gc | 
					
						
							|  |  |  | * godoc: several fixes | 
					
						
							|  |  |  | * http: bug fixes, revision of Request/Response (thanks Petar Maymounkov) | 
					
						
							|  |  |  | * image: new image.A type to represent anti-aliased font glyphs | 
					
						
							|  |  |  | 	add named colors (e.g. image.Blue), suitable for exp/draw | 
					
						
							|  |  |  | * io: fixed bugs in Pipe | 
					
						
							|  |  |  | * malloc: merge into package runtime | 
					
						
							|  |  |  | * math: fix tests on FreeBSD (thanks Devon H. O'Dell) | 
					
						
							|  |  |  | 	add functions; update tests and special cases (thanks Charles L. Dorian) | 
					
						
							|  |  |  | * os/signal: send SIGCHLDs to Incoming (thanks Chris Wedgwood) | 
					
						
							|  |  |  | * reflect: add StringHeader to reflect | 
					
						
							|  |  |  | * runtime: add SetFinalizer | 
					
						
							|  |  |  | * time: Sleep through interruptions (thanks Chris Wedgwood) | 
					
						
							|  |  |  | 	add RFC822 formats | 
					
						
							|  |  |  | 	experimental implemenation of Ticker using two goroutines for all tickers | 
					
						
							|  |  |  | * xml: allow underscores in XML element names (thanks Michael Hoisie) | 
					
						
							|  |  |  | 	allow any scalar type in xml.Unmarshal | 
					
						
							|  |  |  | </pre> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-27 16:18:33 -08:00
										 |  |  | <h3 id="2010-01-27">2010-01-27</h3> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <pre> | 
					
						
							|  |  |  | There are two small language changes: the meaning of chan <- chan int | 
					
						
							|  |  |  | is now defined, and functions returning functions do not need to  | 
					
						
							|  |  |  | parenthesize the result type. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | There is one significant implementation change: the compilers can | 
					
						
							|  |  |  | handle multiple packages using the same name in a single binary. | 
					
						
							|  |  |  | In the gc compilers, this comes at the cost of ensuring that you | 
					
						
							|  |  |  | always import a particular package using a consistent import path. | 
					
						
							|  |  |  | In the gccgo compiler, the cost is that you must use the -fgo-prefix | 
					
						
							|  |  |  | flag to pass a unique prefix (like the eventual import path). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 5a/6a/8a: avoid use of fixed-size buffers (thanks Dean Prichard) | 
					
						
							|  |  |  | 5g, 6g, 8g: many minor bug fixes | 
					
						
							|  |  |  | bufio: give Writer.WriteString same signature as bytes.Buffer.WriteString. | 
					
						
							|  |  |  | container/list: PushFrontList, PushBackList (thanks Jan Hosang) | 
					
						
							|  |  |  | godoc: trim spaces from search query (thanks Christopher Wedgwood) | 
					
						
							|  |  |  | hash: document that Sum does not change state, fix crypto hashes | 
					
						
							|  |  |  | http: bug fixes, revision of Request/Response (thanks Petar Maymounkov) | 
					
						
							|  |  |  | math: more handling of IEEE 754 special cases (thanks Charles Dorian) | 
					
						
							|  |  |  | misc/dashboard: new build dashboard | 
					
						
							|  |  |  | net: allow UDP broadcast, | 
					
						
							|  |  |  | 	use /etc/hosts to resolve names (thanks Yves Junqueira, Michael Hoisie) | 
					
						
							|  |  |  | netchan: beginnings of new package for connecting channels across a network | 
					
						
							|  |  |  | os: allow FQDN in Hostname test (thanks Icarus Sparry) | 
					
						
							|  |  |  | reflect: garbage collection bug in Call | 
					
						
							|  |  |  | runtime: demo of Go on raw (emulated) hw in runtime/pchw, | 
					
						
							|  |  |  | 	performance fix on OS X | 
					
						
							|  |  |  | spec: clarify meaning of chan <- chan int, | 
					
						
							|  |  |  | 	func() func() int is allowed now, | 
					
						
							|  |  |  | 	define ... T (not yet implemented) | 
					
						
							|  |  |  | template: can use interface values | 
					
						
							|  |  |  | time: fix for +0000 time zone, | 
					
						
							|  |  |  | 	more robust tick.Stop. | 
					
						
							|  |  |  | xgb: support for authenticated connections (thanks Firmansyah Adiputra) | 
					
						
							|  |  |  | xml: add Escape (thanks Stephen Weinberg) | 
					
						
							|  |  |  | </pre> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-13 18:22:16 -08:00
										 |  |  | <h3 id="2010-01-13">2010-01-13</h3> | 
					
						
							| 
									
										
										
										
											2010-01-13 17:08:59 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | <pre> | 
					
						
							| 
									
										
										
										
											2010-01-27 16:18:33 -08:00
										 |  |  | This release is mainly bug fixes with a little new code. | 
					
						
							|  |  |  | There are no language changes. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-13 17:08:59 -08:00
										 |  |  | build: $GOBIN should no longer be required in $PATH (thanks Devon H. O'Dell), | 
					
						
							|  |  |  | 	new package target "make bench" to run benchmarks | 
					
						
							|  |  |  | 8g: faster float -> uint64 conversion (thanks Evan Shaw) | 
					
						
							|  |  |  | 5g, 6g, 8g: | 
					
						
							|  |  |  | 	clean opnames.h to avoid stale errors (thanks Yongjian Xu), | 
					
						
							|  |  |  | 	a handful of small compiler fixes | 
					
						
							|  |  |  | 5g, 6g, 8g, 5l, 6l, 8l: ignore $GOARCH, which is implied by name of tool | 
					
						
							|  |  |  | 6prof: support for writing input files for google-perftools's pprof | 
					
						
							|  |  |  | asn1: fix a few structure-handling bugs | 
					
						
							|  |  |  | cgo: many bug fixes (thanks Devon H. O'Dell) | 
					
						
							|  |  |  | codereview: repeated "hg mail" sends "please take another look" | 
					
						
							|  |  |  | gob: reserve ids for future expansion | 
					
						
							|  |  |  | godoc: distinguish HTML generation from plain text HTML escaping (thanks Roger Peppe) | 
					
						
							|  |  |  | gofmt: minor bug fixes, removed -oldprinter flag | 
					
						
							|  |  |  | http: add CanonicalPath (thanks Ivan Krasin), | 
					
						
							|  |  |  | 	avoid header duplication in Response.Write, | 
					
						
							|  |  |  | 	correctly escape/unescape URL sections | 
					
						
							|  |  |  | io: new interface ReadByter | 
					
						
							|  |  |  | json: better error, pointer handling in Marshal (thanks Ivan Krasin) | 
					
						
							|  |  |  | libmach: disassembly of FUCOMI, etc (thanks Evan Shaw) | 
					
						
							|  |  |  | math: special cases for most functions and 386 hardware Sqrt (thanks Charles Dorian) | 
					
						
							|  |  |  | misc/dashboard: beginning of a build dashboard at godashboard.appspot.com. | 
					
						
							|  |  |  | misc/emacs: handling of new semicolon rules (thanks Austin Clements), | 
					
						
							|  |  |  | 	empty buffer bug fix (thanks Kevin Ballard) | 
					
						
							|  |  |  | misc/kate: highlighting improvements (tahnks Evan Shaw) | 
					
						
							|  |  |  | os/signal: add signal names: signal.SIGHUP, etc (thanks David Symonds) | 
					
						
							|  |  |  | runtime: preliminary Windows support (thanks Hector Chu), | 
					
						
							|  |  |  | 	preemption polling to reduce garbage collector pauses | 
					
						
							|  |  |  | scanner: new lightweight scanner package | 
					
						
							|  |  |  | template: bug fix involving spaces before a delimited block | 
					
						
							|  |  |  | test/bench: updated timings | 
					
						
							|  |  |  | time: new Format, Parse functions | 
					
						
							|  |  |  | </pre> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-06 15:46:09 -08:00
										 |  |  | <h3 id="2010-01-05">2010-01-05</h3> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <pre> | 
					
						
							|  |  |  | 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 <a href="http://golang.org/doc/devel/roadmap.html">http://golang.org/doc/devel/roadmap.html</a>. | 
					
						
							|  |  |  | </pre> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <h3 id="2009-12-22">2009-12-22</h3> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <pre> | 
					
						
							|  |  |  | 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) | 
					
						
							|  |  |  | </pre> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <h3 id="2009-12-09">2009-12-09</h3> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <pre> | 
					
						
							|  |  |  | 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)  | 
					
						
							|  |  |  | </pre> |