| <!--{ |
| "Title": "Weekly Snapshot History" |
| }--> |
| |
| <p>This page summarizes the changes between tagged weekly snapshots of Go. |
| Such snapshots are no longer created. This page remains as a historical reference only.</p> |
| |
| <p>For recent information, see the <a href="//golang.org/change">change log</a> and <a href="//groups.google.com/group/golang-dev/">development mailing list</a>.</p> |
| |
| <h2 id="2012-03-27">2012-03-27 (<a href="release.html#go1">Go 1</a>)</h2> |
| |
| <pre> |
| * cmd/dist: fix detection of go1 version. |
| * cmd/go: add missing error check (thanks Evan Shaw), |
| allow underscores in tool name (thanks Shenghou Ma), |
| bug fixes, |
| copy tag_test.go from goinstall, |
| explain versions better, |
| respect $GOBIN always, |
| update for go1 tag format. |
| * cmd/godoc: canonicalize custom path redirects, |
| fix app engine version, |
| use virtual filesystem to implement -templates flag. |
| * codewalk/sharemem.xml: fix references to files. |
| * crypto/tls: don't select ECC ciphersuites with no mutual curve. |
| * doc: add JSON-RPC: a tale of interfaces article (thanks Francisco Souza), |
| describe the Windows MSI installer as experimental, |
| link to Go Project Dashboard from package list, |
| update wiki tutorial templates and template discussion, |
| and many minor fixes. |
| * exp/types: generalized GCImporter API. |
| * go/build: cgoEnabled is not known to cmd/dist anymore (thanks Shenghou Ma), |
| fix import check. |
| * godoc: make 'Overview' section collapsible. |
| * misc/dist: many fixes and tweaks. |
| * misc/emacs: fix indentation bug. |
| * misc/goplay: fix error on IE8 (thanks Yasuhiro Matsumoto). |
| * net: ignore ECONNABORTED from syscall.Accept (thanks Devon H. O'Dell). |
| * os: add missing byte to FileMode buffer (thanks Stefan Nilsson). |
| * path/filepath: convert drive letter to upper case in windows EvalSymlinks (thanks Alex Brainman), |
| correct comment in EvalSymlinks (thanks Alex Brainman), |
| use windows GetShortPathName api to force GetLongPathName to do its work (thanks Alex Brainman), |
| windows drive letter cannot be a digit (thanks Alex Brainman). |
| * run.bash: compile the codewalks. |
| * runtime: restore deadlock detection in the simplest case (thanks Rémy Oudompheng), |
| work around false negative in deadlock detection. |
| * text/template: fix typo in package comment. |
| * windows: installer fixes (thanks Joe Poirier). |
| </pre> |
| |
| <h2 id="2012-03-22">2012-03-22 (Go 1 Release Candidate 2)</h2> |
| |
| <pre> |
| As with last week's snapshot, this snapshot is another Go 1 release candidate. |
| A notable change in this snapshot are Windows installer fixes. |
| |
| Changes in this snapshot: |
| * 5l, 6l, 8l: fix stack split logic for stacks near default segment size. |
| * archive/zip: move r.zip off disk, into reader_test.go. |
| * build: catch API changes during build, |
| do more during windows build (thanks Alex Brainman), |
| lengthen timeout for the lengthy runtime test (thanks Shenghou Ma), |
| unset GOPATH before tests (thanks Shenghou Ma). |
| * cmd/cgo: add support for function export for gccgo (thanks Rémy Oudompheng), |
| fix handling of errno for gccgo. |
| * cmd/go: add -fno-common by default on Darwin (thanks Shenghou Ma), |
| don't add detail to errPrintedOutput, |
| fix directory->import path conversion, |
| make build errors more visible, |
| use .o, not .{5,6,8}, for gccgo created object files, |
| work around occasional ETXTBSY running cgo. |
| * cmd/godoc: add toys, tour button to playground, |
| inform users that the playground doesn't work via local godoc, |
| style example headings like links, |
| use *goroot as base path in zip file, |
| use FormatText for formating code in html template, |
| use shorter titles for tabs. |
| * cmd/gofmt: show ascii in usage (thanks Yasuhiro Matsumoto). |
| * cmd/pack: also recognize '\\' as path separator in filenames (thanks Shenghou Ma). |
| * crypto/tls: always send a Certificate message if one was requested. |
| * doc/install: remove reference to "Go Tutorial" (thanks Shenghou Ma). |
| * doc/play: use []rune instead of []int (thanks Yasuhiro Matsumoto). |
| * doc: add Go Concurrency Patterns: Timing out, moving on article (thanks Francisco Souza), |
| add Go image/draw package article and convert code snippets to Go1, |
| add Gobs of data article (thanks Francisco Souza), |
| add Godoc: documenting Go code article (thanks Francisco Souza), |
| add JSON and Go article (thanks Francisco Souza), |
| general update of gccgo installation instructions, |
| minor updates to most docs. |
| * flag: add examples. |
| * gc: fix struct and array comparisons for new bool rules (thanks Anthony Martin), |
| use quoted string format in import error, |
| when expanding append inline, preserve arguments. |
| * go/build: clarify why we exclude files starting with '_' or '.' (thanks Shenghou Ma), |
| clearer argument name for Import (src -> srcDir), |
| do not report Target for local imports, |
| fix match. |
| * go/printer, gofmt: fix multi-line logic. |
| * html/template: add Templates and XXXEscape functions, |
| fix nil pointer bug, |
| fix panic on Clone. |
| * io/ioutil: fix crash when Stat fails. |
| * make.bat: fix for old files (thanks Christopher Redden), |
| don't show error message if old generated files do not exist (thanks Shenghou Ma), |
| properly handle directories with spaces (thanks Alex Brainman). |
| * misc/cgo/gmp: update for Go 1 (thanks Shenghou Ma). |
| * misc/dashboard: remove old python package dashboard. |
| * misc/dist: don't ship cmd/cov or cmd/prof, |
| force modes to 0755 or 0644 in tarballs, |
| remove exp and old before building. |
| * misc/vim: restore fileencodings (thanks Yasuhiro Matsumoto). |
| * net/http: couple more triv.go modernizations, |
| ensure triv.go compiles and runs (thanks Robert Hencke). |
| * net: drop unnecessary type assertions and fix leak in test (thanks Mikio Hara). |
| * os: IsNotExist() should also consider ERROR_PATH_NOT_FOUND on Windows (thanks Shenghou Ma), |
| do not assume syscall.Write will write everything, |
| remove document duplication in error predicate functions (thanks Shenghou Ma), |
| return some invented data from Stat(DevNull) on windows (thanks Alex Brainman). |
| * path/filepath: implement Match and Glob on windows (thanks Alex Brainman). |
| * reflect: document PkgPath, Method, StructField, |
| panic if MakeSlice is given bad len/cap arguments. |
| * run.bat: disable test in test\bench\go1 to fix build (thanks Alex Brainman). |
| * runtime/cgo: darwin signal masking (thanks Mikio Hara), |
| linux signal masking (thanks Mikio Hara). |
| * runtime: do not handle signals before configuring handler, |
| manage stack by ourselves for badcallback on windows/amd64 (thanks Shenghou Ma), |
| remove unused goc2c.c (thanks Shenghou Ma). |
| * sort: add time complexity to doc (thanks Stefan Nilsson), |
| fix computation of maxDepth to avoid infinite loop (thanks Stefan Nilsson). |
| * spec: delete references to unsafe.Reflect,Typeof,Unreflect. |
| * syscall: Test SCM_CREDENTIALS, SO_PASSCRED on Linux (thanks Albert Strasheim), |
| add a test for passing an fd over a unix socket, |
| delete passfd_test.go. |
| * test: use testlib in a few more cases (thanks Shenghou Ma). |
| * text/template: fix a couple of parse bugs around identifiers, |
| variables do not take arguments. |
| </pre> |
| |
| <h2 id="2012-03-13">2012-03-13 (Go 1 Release Candidate 1)</h2> |
| |
| <pre> |
| This weekly snapshot is very close to what we expect will be the contents of |
| the Go 1 release. There are still a few minor documentation issues to resolve, |
| and a handful of bugs that should be addressed before the release, but the vast |
| majority of Go programs should be completely unaffected by any changes we make |
| between now and the full release. |
| |
| If you're interested in helping us test, eager to try out Go 1, or just |
| curious, this weekly snapshot is the one to try. We'll issue a new App Engine |
| Go 1 beta SDK very soon, so if you're an App Engine user you can try it there |
| too. |
| |
| To help us focus on any remaining bugs and avoid introducing new ones, we will |
| restrict our attention to critical fixes and issues marked Go1-Must in the |
| issue tracker. Everything non-essential will be held until after the Go 1 |
| release is cut and in the field for a while. |
| |
| Changes in this snapshot: |
| * archive/zip: verify CRC32s in non-streamed files, |
| write data descriptor signature for OS X; fix bugs reading it. |
| * build: build correct cmd/dist matching GOHOSTARCH (thanks Shenghou Ma), |
| re-enable some broken tests in run.bash (thanks Shenghou Ma), |
| remove some references to Make.inc etc. |
| use run.go for running tests. |
| * builder: use short test for subrepos (thanks Shenghou Ma). |
| * cgo, runtime: diagnose callback on non-Go thread. |
| * cmd/api: set compiler for all build contexts, |
| work on Windows again, and make gccgo files work a bit more. |
| * cmd/cgo: document CGO_LDFLAGS and CGO_CFLAGS, |
| silence const warnings. |
| * cmd/dist, cmd/go: move CGO_ENABLED from 'go tool dist env' to 'go env' (thanks Shenghou Ma). |
| * cmd/dist: fix build for Linux/ARM (thanks Shenghou Ma), |
| use correct hg tag for go version (thanks Alex Brainman). |
| * cmd/fix: add rules for net/http -> net/http/httputil renames. |
| * cmd/gc: allow ~ in import paths, |
| delete old map delete in walk, |
| do not confuse unexported methods of same name, |
| if $GOROOT_FINAL is set, rewrite file names in object files, |
| implement len(array) / cap(array) rule, |
| import path cannot start with slash on Windows (thanks Shenghou Ma), |
| must not inline panic, recover, |
| show duplicate key in error, |
| unnamed struct types can have methods. |
| * cmd/go: add -compiler, |
| add env command, use to fix misc/cgo/testso, |
| allow go get with arbitrary URLs, |
| allow ssh tunnelled bzr, git and svn (thanks Ingo Oeser), |
| always provide .exe suffix on windows (thanks Shenghou Ma), |
| document import path meta tag discovery in go help remote, |
| honor buildflags in run, test (thanks Rémy Oudompheng), |
| local import fixes, |
| make go get new.code/... work, |
| rebuild external test package dependencies, |
| respect $GOBIN always, |
| support -compiler for go list, fix isStale for gccgo (thanks Rémy Oudompheng). |
| * cmd/godoc: add support for serving templates. |
| fix codewalk handler (thanks Francisco Souza). |
| remove extra / in paths (thanks Ugorji Nwoke), |
| support $GOPATH, simplify file system code, |
| switch on +1 buttons. |
| * cmd/gofmt: fix race in long test (thanks Mikio Hara). |
| * codereview: fix for Mercurial 2.1. |
| * crypto/x509: allow server gated crypto in windows systemVerify (thanks Mikkel Krautz), |
| do not forget to free cert context (thanks Alex Brainman), |
| don't include empty additional primes in PKCS#1 private key, |
| enforce path length constraint, |
| new home for root fetchers; build chains using Windows API (thanks Mikkel Krautz). |
| * csv: clarify what a negative FieldsPerRecord means. |
| * database/sql: add docs about connection state, pooling, |
| ensure Stmts are correctly closed (thanks Gwenael Treguier), |
| fix double connection free on Stmt.Query error, |
| fix typo bug resulting in double-Prepare. |
| * database/sql: add ErrBadConn. |
| * doc/go1: template packages have changed since r60. |
| * doc/go_mem: init-created goroutine behavior changes for Go 1 (thanks Shenghou Ma). |
| * doc/gopher: flip frontpage gopher's eyes. |
| * doc: add "About the go command" article, |
| add C? Go? Cgo! article (thanks Francisco Souza), |
| add Go's declaration syntax article (thanks Francisco Souza), |
| add more gophers, |
| add note about import . to Go 1 compatibility notes, |
| several doc fixes and improvements, |
| update Effective Go init section, |
| update progs/run (thanks Shenghou Ma), |
| update reference gopher, |
| web site tweaks. |
| * encoding/asn1: handle UTCTime before the year 2000. |
| * encoding/binary: improve package comment (thanks Stefan Nilsson). |
| * encoding/gob: fix memory corruption. |
| * encoding/json: document that nil slice encodes as `null`. |
| * exp/wingui: moved to code.google.com/p/gowingui. |
| * expvar: add locking to String, and use RWMutex properly throughout, |
| add missing locking in String methods. |
| * fmt, log: stop using unicode. |
| * fmt: minor tweak of package doc to show headings in godoc (thanks Volker Dobler). |
| * go/build, cmd/go: add support for .syso files. |
| * go/build: add NoGoError, |
| add dependency test, |
| do not parse .syso files (thanks Alex Brainman). |
| * go/parser: avoid endless loop in case of internal error, |
| better error synchronization. |
| * go/printer, gofmt: nicer formatting of multi-line returns. |
| * go/printer: example for Fprint. |
| * go/scanner: better panic diagnostic. |
| * go spec: no known implementation differences anymore, |
| fix inaccuracy in type identity definition. |
| * io: better document WriterAt. |
| * misc/dashboard: remove obsolete package builder code. |
| * misc/dist: add source archive support, |
| add windows installer and zip support, |
| minimum target requirement is 10.6 for Darwin (thanks Shenghou Ma). |
| * misc/emacs: fix extra indentation after comments that end with a period. |
| * misc/xcode: example install of language spec for Xcode 4.x (thanks Emil Hessman). |
| * net, net/rpc, reflect, time: document concurrency guarantees. |
| * net/http: fix crash with Transport.CloseIdleConnections, |
| return appropriate errors from ReadRequest. |
| * net: add skip message to test (thanks Mikio Hara), |
| disable use of external listen along with other external network uses, |
| do not use reflect for DNS messages (thanks Rémy Oudompheng), |
| document ReadMsgUnix, WriteMsgUnix, |
| fix TestDialTimeout on windows builder, |
| improve server and file tests (thanks Mikio Hara), |
| make Dial and Listen behavior consistent across over platforms (thanks Mikio Hara), |
| remove dependence on bytes, fmt, strconv, |
| silence another epoll print, |
| use IANA reserved port to test dial timeout (thanks Mikio Hara). |
| * os: document FileInfo.Size as system-dependent for irregular files, |
| fix SameFile to work for directories on windows (thanks Alex Brainman). |
| * path/filepath/path_test.go: repair and enable TestAbs. |
| * path/filepath: disable AbsTest on windows, |
| retrieve real file name in windows EvalSymlinks (thanks Alex Brainman). |
| * runtime/pprof: disable test on Leopard 64-bit. |
| * runtime: add Compiler, |
| fix windows/amd64 exception handler (thanks Alex Brainman), |
| inline calls to notok, |
| move runtime.write back to C, |
| print error on receipt of signal on non-Go thread, |
| remove unused runtime·signame and runtime·newError, |
| try extending arena size in 32-bit allocator (thanks Rémy Oudompheng), |
| wait for main goroutine before setting GOMAXPROCS (thanks Rémy Oudompheng). |
| * strconv: add table-based isPrint, remove dependence on bytes, unicode, and strings. |
| * sync/atomic: disable store and load test on a single processor machine (thanks Mikio Hara). |
| * syscall: fix mkall.sh, mksyscall_linux.pl, and regen for Linux/ARM (thanks Shenghou Ma). |
| * test/run: use all available cores on ARM system (thanks Shenghou Ma). |
| * test: actually run them on windows (thanks Alex Brainman), |
| add inherited interface test to ddd.go, |
| enable method expression tests in ddd.go, |
| invoke go command in run.go, |
| match gccgo error messages for bug388.go, |
| skip . files in directory. |
| * testing: do not print 'no tests' when there are examples. |
| * time: during short test, do not bother tickers take longer than expected (thanks Shenghou Ma), |
| mention receiver in Unix, UnixNano docs. |
| * unicode/utf16: remove dependence on package unicode. |
| * unicode/utf8: remove dependence on unicode. |
| * windows: make background of gopher icon transparent (thanks Volker Dobler). |
| </pre> |
| |
| <h2 id="2012-03-04">2012-03-04</h2> |
| |
| <pre> |
| This snapshot includes a major re-design of the go/build package. |
| Its FindTree, ScanDir, Tree, and DirInfo types have been replaced with the |
| Import and Package types. There is no gofix. Code that uses go/build will need |
| to be updated manually to use the package's new interface. |
| |
| Other changes: |
| * 6a/6l: add IMUL3Q and SHLDL. |
| * all: remove unused unexported functions and constants (thanks Rémy Oudompheng). |
| * build: add GO_ prefix to LDFLAGS and GCFLAGS (thanks Gustavo Niemeyer). |
| * cmd/cc: fix an out of bounds array access (thanks Anthony Martin), |
| grow some global arrays. |
| * cmd/dist: force line-buffering stdout/stderr on Unix (thanks Shenghou Ma), |
| recognize CC="ccache clang" as clang. |
| * cmd/go: avoid repeated include dirs (thanks Rémy Oudompheng), |
| fix -I flag for gc command (thanks Gustavo Niemeyer), |
| fix verbose command displaying (thanks Gustavo Niemeyer), |
| fixes for gccgo (thanks Rémy Oudompheng), |
| many fixes, |
| test -i should not disable -c (thanks Shenghou Ma). |
| * cmd/vet: don't give error for Printf("%+5.2e", x) (thanks Shenghou Ma). |
| * cmd/yacc/units.y: update comment, give better error messages when $GOROOT not set (thanks Shenghou Ma). |
| * crypto/tls: force OS X target version to 10.6 for API compatibility (thanks Mikkel Krautz). |
| * crypto/x509: fix typo in Verify documentation (thanks Mikkel Krautz). |
| * dist: treat CC as one unit (thanks Scott Lawrence). |
| * doc/go1: add justification discussions to major changes, |
| minor corrections and updates. |
| * doc: describe API changes to go/build, |
| elaborate available checks for cmd/vet (thanks Shenghou Ma), |
| expand code.html to discuss the go tool in more depth, |
| instruct FreeBSD/Linux users to rm the old version first, |
| remove Go for C++ Programmers, |
| remove roadmap document, |
| remove tutorial, |
| update codelab/wiki to Go 1 (thanks Shenghou Ma), |
| * encoding/gob: fix "// +build" comment for debug.go (thanks Shenghou Ma), |
| more hardening for lengths of input strings. |
| * encoding/json: drop MarshalForHTML; gofix calls to Marshal, |
| escape output from Marshalers. |
| * encoding/xml: fix anonymous field Unmarshal example (thanks Gustavo Niemeyer), |
| fix xml test tag usage (thanks Gustavo Niemeyer). |
| * gc: disallow absolute import paths, |
| fix escape analysis + inlining + closure bug, |
| fix string comparisons for new bool rules (thanks Anthony Martin), |
| reject import paths containing special characters (thanks Anthony Martin). |
| * go/ast: examples for ast.Print, ast.Inspect. |
| * go/doc, godoc: fix range of type declarations. |
| * go/parser: check import path restrictions, |
| expand test cases for bad import. |
| * go/printer, gofmt: improved comment placement. |
| * go/printer: fix printing of variadic function calls (thanks Anthony Martin), |
| fix test for new import path restrictions (thanks Anthony Martin), |
| replace multiline logic, |
| simpler exprList code, more tests. |
| * godoc: add Examples link to top-level index, |
| bring back highlighting, selections, and alerts, |
| consistent placement of documentation sections, |
| don't show directories w/o packages in flat dir mode, |
| don't show testdata directories, |
| fix codewalks. |
| * gotype: provide -comments flag. |
| * html/template: make doctype check case-insensitive (thanks Scott Lawrence), |
| use correct method signature in introduction example (thanks Mike Rosset). |
| * io: document that I/O is not necessarily safe for parallel access. |
| * ld: allow more -L options (thanks Shenghou Ma), |
| fix alignment of rodata section. |
| * misc: add zsh completion for go tool (thanks Rémy Oudompheng). |
| * misc/bash: Completion for go tool (thanks Yissakhar Z. Beck). |
| * misc/dashboard: fix bug in UI template, |
| record install counts for external packages. |
| * misc/dist: implement binary distribution scripts in go. |
| * misc/gobuilder: send commit time in RFC3339 format. |
| * misc/xcode: move Xcode3 specific files into sub directory. |
| * net/http/cgi: add an empty response test, |
| fix empty response. |
| * net/http/httptest: make Server.Close wait for outstanding requests to finish. |
| * net/http/httputil: fix DumpRequestOut on https URLs, |
| make https DumpRequestOut less racy. |
| * net/http: add overlooked 418 status code, per RFC 2324, |
| fix ProxyFromEnvironment bug, docs, add tests, |
| make a test more paranoid & reliable on Windows. |
| * net/rpc: silence read error on closing connection. |
| * net: add stubs for NetBSD (thanks Benny Siegert), |
| make -external flag for tests default to true (thanks Mikio Hara), |
| reorganize test files (thanks Mikio Hara). |
| * os: diagnose chdir error during StartProcess, |
| implement UserTime/SystemTime on windows (thanks Alex Brainman), |
| implement sameFile on windows (thanks Alex Brainman), |
| release process handle at the end of windows (*Process).Wait (thanks Alex Brainman), |
| sleep 5ms after process has exited on windows (thanks Alex Brainman). |
| * path/filepath: note that SplitList is different from strings.Split, |
| steer people away from HasPrefix. |
| * reflect: don't panic comparing functions in DeepEqual. |
| make Value.Interface return immutable data. |
| * runtime/pprof: support OS X CPU profiling. |
| * runtime: add sanity checks to the runtime-gdb.py prettyprinters, |
| check for ARM syscall failures (thanks Shenghou Ma), |
| darwin and linux signal masking, |
| run init on main thread, |
| size arena to fit in virtual address space limit. |
| * spec: allow disallow of \uFFFD in import path, |
| apply method sets, embedding to all types, not just named types, |
| clarifications around exports, uniqueness of identifiers, |
| import path implementation restriction, |
| inside functions, variables must be evaluated, |
| use the term "lexical token" (rather then "lexical symbol"). |
| * sync: add Once example, remove old WaitGroup example. |
| * test/bench/shootout: update post-Makefile. |
| * test: add documentation, misc fixes. |
| * testing: add -test.example flag to control execution of examples. |
| * text/template: add example showing use of custom function, |
| add examples that use multiple templates, |
| fix redefinition bugs. |
| * time: add a comment about how to use the Duration constants. |
| </pre> |
| |
| <h2 id="2012-02-22">2012-02-22</h2> |
| |
| <pre> |
| This weekly snapshot includes changes to the os and runtime packages. |
| |
| This should be the last of the significant incompatible changes before Go 1. |
| |
| There are no longer error constants such as EINVAL in the os package, since the |
| set of values varied with the underlying operating system. There are new |
| portable functions like IsPermission to test common error properties, plus a |
| few new error values with more Go-like names, such as ErrPermission and |
| ErrNoEnv. |
| |
| The os.Getenverror function has been removed. To distinguish between a |
| non-existent environment variable and an empty string, use os.Environ or |
| syscall.Getenv. |
| |
| The Process.Wait method has dropped its option argument and the associated |
| constants are gone from the package. Also, the function Wait is gone; only the |
| method of the Process type persists. |
| |
| The non-portable Waitmsg type has been replaced with the portable ProcessState. |
| |
| Much of the API exported by package runtime has been removed in favor of |
| functionality provided by other packages. Code using the runtime.Type |
| interface or its specific concrete type implementations should now use package |
| reflect. Code using runtime.Semacquire or runtime.Semrelease should use |
| channels or the abstractions in package sync. |
| |
| The runtime.Alloc, runtime.Free, and runtime.Lookup functions, an unsafe API |
| created for debugging the memory allocator, have no replacement. |
| |
| The runtime.Cgocalls and runtime.Goroutines functions have been renamed to |
| runtime.NumCgoCall and runtime.NumGoroutine. |
| |
| The "go fix" command will update code to accommodate most of these changes. |
| |
| Other changes: |
| * 5c, 6c, 8c, 6g, 8g: correct boundary checking (thanks Shenghou Ma). |
| * 5g, 6g, 8g: flush modified globals aggressively. |
| * 8a, 8l: add EMMS instruction (thanks Evan Shaw). |
| * bufio: don't return errors from good Peeks. |
| * build: add make.bash --no-clean option, |
| improve Windows support. |
| * builder: reuse existing workspace if possible (thanks Shenghou Ma), |
| update for os.Wait changes. |
| * bytes: document Compare/Equal semantics for nil arguments, and add tests. |
| * cgo: fix definition of opaque types (thanks Gustavo Niemeyer). |
| * cmd/api: record return type of functions for variable typecheck (thanks Rémy Oudompheng). |
| * cmd/cgo: bug fixes. |
| * cmd/dist: add clang specific -Wno options (thanks Bobby Powers), |
| fix install cmd/5g on non-arm system, |
| fix pprof permissions (thanks Bobby Powers), |
| make dir check in defaulttarg() more robust (thanks Shenghou Ma), |
| use correct package target when cross-compiling (thanks Alex Brainman). |
| * cmd/gc: correctly typecheck expression lists in returns (thanks Rémy Oudompheng), |
| don't believe that variables mentioned 256 times are unused (thanks Rémy Oudompheng), |
| error on constant shift overflows (thanks Rémy Oudompheng), |
| fix comparison of struct with _ field. |
| fix error for floating-point constant %, |
| new, less strict bool rules. |
| * cmd/go: add tool -n flag, |
| go test -i correctly handle cgo packages (thanks Shenghou Ma). |
| * codereview: fix submit message for new clone URL (thanks Shenghou Ma). |
| * database/sql/driver: API cleanups. |
| * doc: many fixes and adjustments. |
| * encoding/gob: cache engine for user type, not base type, |
| catch internal error when it happens, |
| fix mutually recursive slices of structs. |
| * encoding/json: ignore anonymous fields. |
| * go/doc: return Examples in name order. |
| * go/parser: imaginary constants and ! may start an expression. |
| * go/printer, gofmt: improved comma placement. |
| * go/printer: don't lose relevant parentheses when rewriting selector expressions. |
| * godoc: adjust line height in pre blocks, |
| don't print spurious suggestion when running "go doc foo", |
| fix absolute->relative mapping, |
| fix tag mismatch validation errors (thanks Scott Lawrence), |
| import example code support, |
| support flat directory view again. |
| * html/template: add Clone and AddParseTree, |
| don't indirect past a Stringer, |
| minor tweak to docs to improve HTML typography. |
| * image: add Decode example. |
| * ld: add NOPTRBSS for large, pointer-free uninitialized data. |
| * math/rand: Intn etc. should panic if their argument is <= 0. |
| * misc/dist/windows: distro builder updates (thanks Joe Poirier). |
| * misc/goplay: remain in work directory, build in temp directory. |
| * net, os, syscall: delete os.EPLAN9 (thanks Mikio Hara). |
| * net/http: add optional Server.TLSConfig field. |
| * net/smtp: use EHLO then HELO. |
| * net/textproto: accept bad MIME headers as browsers do. |
| * net/url: regularise receiver names. |
| * net: make LocalAddr on multicast return group address (thanks Mikio Hara), |
| make parseProcNetIGMP more robust (thanks Mikio Hara), |
| more selfConnect debugging: panic if ra == nil in internetSocket, |
| panic if sockaddrToTCP returns nil incorrectly, |
| other miscellaneous fixes. |
| * path, path/filepath: polish documentation (thanks Rémy Oudompheng). |
| * pprof: add Profile type. |
| * runtime: avoid malloc during malloc, |
| define NSIG to fix plan 9 build (thanks David du Colombier), |
| fix FreeBSD signal handling around thread creation (thanks Devon H. O'Dell), |
| goroutine profile, stack dumps, |
| implement runtime.osyield on FreeBSD 386, amd64 (thanks Devon H. O'Dell), |
| permit default behaviour of SIGTSTP, SIGTTIN, SIGTTOU, |
| release unused memory to the OS (thanks Sébastien Paolacci), |
| remove an obsolete file (thanks Mikio Hara). |
| * spec: make all comparison results untyped bool, |
| refine the wording about variables in type switches, |
| struct comparison only compares non-blank fields. |
| * syscall: Make Pdeathsig type Signal in SysProcAttr on Linux (thanks Albert Strasheim), |
| fix bounds check in Error, |
| force Windows to always use US English error messages (thanks Shenghou Ma). |
| * test: migrated to new go-based testing framework. |
| * text/template: evaluate function fields. |
| * time: use Go distribution zoneinfo if system copy not found. |
| </pre> |
| |
| <h2 id="2012-02-14">2012-02-14</h2> |
| |
| <pre> |
| This release includes some package changes that require changes to client code. |
| |
| The flate, gzip and zlib's NewWriterXxx functions no longer return an error. |
| The compiler will flag all affected code which must then be updated by hand. |
| |
| The os package's Exec and Time functions were removed. Callers should use |
| syscall.Exec and time.Now instead. The ShellExpand function was renamed to |
| ExpandEnv. The NewFile function now takes a uintptr and the *File.Fd method |
| returns a uintptr. |
| |
| The runtime package's Type type and its methods have been removed. |
| Use the reflect package instead. |
| |
| Other changes: |
| * 8a, 8l: add LFENCE, MFENCE, SFENCE (thanks Darren Elwood). |
| * all.bat: report error code back to the gobuilder (thanks Alex Brainman). |
| * archive/zip: hide Write method from *Writer type. |
| * build: create the correct $GOTOOLDIR, |
| get rid of deps.bash (thanks Anthony Martin), |
| reject make.bash on Windows. |
| * builder: set $GOBUILDEXIT for Windows (thanks Alex Brainman), |
| * bytes: add Reader, |
| return error in WriteTo if buffer is not drained. |
| * cgo: add support for returning errno with gccgo (thanks Rémy Oudompheng). |
| * cmd/api: follow constant references. |
| * cmd/cgo: omit //line in -godefs, -cdefs output. |
| * cmd/dist: fixes (thanks Alex Brainman, Gustavo Niemeyer, Mikio Hara, Shenghou Ma). |
| * cmd/fix: warn about exp, old, deleted packages. |
| * cmd/gc: suspend safemode during typecheck of inlined bodies. |
| * cmd/go: a raft of fixes, |
| connect os.Stdin for go run and go tool, |
| go get scheme detection (thanks Daniel Krech), |
| respect test -timeout flag. |
| * cmd/vet: warn for construct 'Println(os.Stderr, ...)' (thanks Shenghou Ma). |
| * compress/gzip: remove dead code (thanks Alex Brainman). |
| * container/heap: add example. |
| * dashboard: add gobuilder -fail mode. |
| * database/sql: more tests, |
| remove Into from ScannerInto/ScanInto, |
| rename ErrTransactionFinished to ErrTxDone, |
| support ErrSkip in Tx.Exec (thanks Andrew Balholm), |
| treat pointers as nullable types as with encoding/json (thanks Andrew Pritchard). |
| * debug/macho: drop terrifyingly monstrous URL from package comment. |
| * dist: prevent recusive loop on windows when fatal() is called (thanks Daniel Theophanes). |
| * doc: add App Engine docs to 'learn' and 'reference' pages, |
| add playground.js, |
| new document about compatibility of releases, |
| update install.html for binary distros, add install-source.html. |
| * effective_go: use new map deletion syntax. |
| * encoding/binary: add Size, to replace the functionality of the old TotalSize, |
| another attempt to describe the type of Read and Write's data, |
| slices are allowed; say so. |
| * encoding/json: document buffering. |
| * encoding/xml: add support for the omitempty flag (thanks Gustavo Niemeyer). |
| * exp/norm: merged charinfo and decomposition tables. |
| * exp/types: use build.FindTree in GcImporter (thanks James Whitehead). |
| * flate: delete WrongValueError type. |
| * fmt: diagnose invalid verb applied to pointer, |
| scan FALSE correctly. |
| * gc: bug fixes, better error messages. |
| * go/doc: handle recursive embedded types (thanks Gary Burd), |
| don't lose exported consts/vars with unexported type, |
| treat predeclared error interface like an exported type. |
| * go/printer: implement SourcePos mode. |
| * godoc: list examples in index, |
| new design, |
| regard lone examples as "whole file" examples. |
| * html/template: added more words about examples and doc (thanks Bjorn Tipling). |
| * log/syslog: return length of data provided by the user, not length of header. |
| * make.bat: remove double quotes (thanks Alex Brainman). |
| * math: fix gamma doc, link to OEIS. |
| * mime: unexport some internal details. |
| * misc/dist: add binary distribution packaging script for linux, |
| new hierarchy for binary distribution packaging scripts. |
| * net/http: add ServeContent, |
| don't spin on temporary accept failure, |
| fix client goroutine leak with persistent connections, |
| fix reference to URL.RawPath in docs (thanks Bjorn Tipling), |
| panic on duplicate registrations, |
| use mtime < t+1s to check for unmodified (thanks Hong Ruiqi). |
| * net: avoid Shutdown during Close, |
| avoid TCP self-connect, |
| disable TestDialTimeout on Windows, |
| disable multicast test on Alpha GNU/Linux, |
| disable wild use of SO_REUSEPORT on BSD variants (thanks Mikio Hara), |
| enable flags on stream for multicast listeners (thanks Mikio Hara), |
| make use of listenerBacklog (thanks Mikio Hara), |
| prefer an IPv4 listen if no address given (thanks Mikio Hara). |
| * os/exec: add Cmd.Waitmsg. |
| * os/signal: revive this package. |
| * regexp/syntax: add package and Parse commentary. |
| * regexp: allow substitutions in Replace, ReplaceString. |
| * runtime, pprof: add profiling of thread creation. |
| * runtime, time: accelerate tests in short mode (thanks Rémy Oudompheng). |
| * runtime: exit early on OABI systems (thanks Shenghou Ma), |
| drop to 32 bit malloc if 64 bit will not work, |
| fix "SysReserve returned unaligned address" bug on 32-bit systems (thanks Shenghou Ma), |
| fix grsec support (thanks Gustavo Niemeyer), |
| on 386, fix FP control word on all threads, not just initial thread, |
| put lockorder before pollorder in Select memory block, |
| use startpanic so that only one thread handles an incoming SIGQUIT. |
| * spec: add forward links from 'method set' to where it gets used, |
| clarify implementation restrictions on untyped floats, |
| disallow recursive embedded interfaces, |
| method names must be unique, |
| send on closed channel counts as "proceeding", |
| strings are more slices than arrays. |
| * strconv: handle very large inputs. |
| * strings: add Seek and ReadAt methods to Reader. |
| * sync/atomic: disable hammer pointer tests on wrong size system. |
| * testing: let runtime catch the panic. |
| * text/template: refer HTML users to html/template. |
| * text/template/parse: deep Copy method for nodes. |
| * time: clean up MarshalJSON, add RFC3339 method, |
| use "2006-01-02 15:04:05.999999999 -0700 MST" as String format. |
| </pre> |
| |
| <h2 id="2012-02-07">2012-02-07</h2> |
| |
| <pre> |
| This weekly snapshot includes a re-organization of the Go tools. |
| |
| Only the go, godoc, and gofmt tools are installed to $GOROOT/bin (or $GOBIN). |
| The remainder are installed to $GOROOT/bin/tool. |
| This puts the lesser-used tools (6g, cgo, govet, etc.) outside the user PATH. |
| Instead these tools may be called through the go tool with 'go tool command'. |
| For example, to vet hello.go you would type 'go tool vet hello.go'. |
| Type 'go tool' see the list of available tools. |
| |
| With the move, some tools were given simpler names: |
| 6cov -> cov |
| 6nm -> nm |
| goapi -> api |
| gofix -> fix |
| gopack -> pack |
| gopprof -> pprof |
| govet -> vet |
| goyacc -> yacc |
| |
| The os/signal package has been moved to exp/signal. |
| |
| A new tool named 'dist' has been introduced to handle building the gc tool |
| chain and to bootstrap the go tool. The old build scripts and make files |
| have been removed. |
| |
| Other changes: |
| * 5a, 6a, 8a, cc: check in y.tab.[ch]. |
| * 5l, 6l, 8l, ld: remove memory leaks (thanks Shenghou Ma). |
| * 5l, 6l, 8l: implement -X flag. |
| * 5l: make -v option output less nonessential clutter (thanks Shenghou Ma), |
| optimize the common case in patch() (thanks Shenghou Ma). |
| * 8a, 8l: implement support for RDTSC instruction (thanks Shenghou Ma). |
| * 8g: use uintptr for local pc. |
| * archive/zip: support full range of FileMode flags (thanks Gustavo Niemeyer). |
| * bufio: remove special error type, update docs. |
| * build: move the "-c" flag into HOST_CFLAGS (thanks Anthony Martin), |
| remove unnecessary pragmas (thanks Anthony Martin). |
| * builder: drop recover blocks. |
| * bytes: API tweaks. |
| * cgo: accept null pointers in gccgo flavour of C.GoString (thanks Rémy Oudompheng), |
| print line numbers in fatal errors when relevant (thanks Rémy Oudompheng). |
| * cmd/dist: add GOBIN to env's output (thanks Gustavo Niemeyer), |
| fix bug in bsubst (thanks Alex Brainman), |
| fix build on openbsd (thanks Mikio Hara), |
| generate files for package runtime, |
| ignore file names beginning with . or _, |
| prevent race on VERSION creation (thanks Gustavo Niemeyer). |
| * cmd/gc: another special (%hhS) case for method names, |
| describe debugging flags (thanks Anthony Martin), |
| diagnose \ in import path, |
| disallow switch _ := v.(type), |
| don't print implicit type on struct literal in export, |
| fix codegen reordering for expressions involving && and ||, |
| use octal escapes in mkopnames (thanks Anthony Martin). |
| use original constant expression in error messages (thanks Rémy Oudompheng). |
| * cmd/go: add support for release tags via git branches (thanks Gustavo Niemeyer), |
| build: print import errors when invoked on files (thanks Kyle Lemons), |
| clean test directories as they complete, |
| fix error message on non-existing tools (thanks Rémy Oudompheng), |
| fix handling of gccgo standard library (thanks Rémy Oudompheng), |
| fixed panic on `go clean -n` and `go clean -x` (thanks Sanjay Menakuru), |
| introduce support for "go build" with gccgo (thanks Rémy Oudompheng), |
| make vcs command actually gather output (thanks Roger Peppe), |
| pass env CGO_CFLAGS to cgo (thanks Jeff Hodges), |
| record location of failed imports for error reporting (thanks Rémy Oudompheng). |
| * cmd/goapi: expand embedded interfaces. |
| * cmd/goinstall: remove now that 'go get' works (thanks Gustavo Niemeyer). |
| * cmd/ld: fix gdbscript (thanks Wei Guangjing). |
| * cmd/pack: change gopack to pack in error messages. |
| * codereview: miscellaneous fixes and improvements. |
| * crypto/elliptic: p224Contract could produce a non-minimal representation. |
| * crypto/tls: better error message when connecting to SSLv3 servers. |
| * crypto/x509: use case-insensitive hostname matching. |
| * dashboard: support for sub-repositories, update to go1beta. |
| * database/sql: permit scanning into interface{}. |
| * doc: update go1.html for recent changes. |
| * encoding/base32: add DecodeString and EncodeToString helper methods, |
| ignore new line characters during decode. |
| * encoding/base64: ignore new line characters during decode. |
| * encoding/gob: document CommonType. |
| * encoding/hex: canonicalize error type names. |
| * encoding/json: call (*T).MarshalJSON for addressable T values. |
| * encoding/xml: fix decoding of xml.Name with sub-elements (thanks Gustavo Niemeyer), |
| fix documentation for Decoder.Skip. |
| * exp/norm: Added some benchmarks for form-specific performance measurements, |
| a few minor changes in prepration for a table format change. |
| * expvar: revise API. |
| * fix: add image/{bmp,tiff} to go1pkgrename. |
| * flag: allow a FlagSet to not write to os.Stderr, |
| describe valid input for Duration flags. |
| * fmt: add test of NaN map keys, |
| fix caching bug in Scan. |
| * go/build: put a space between 'generated by make' and package statement, |
| update syslist.go package comment. |
| * go/doc: fix URL linking in ToHTML (thanks Gary Burd), |
| added error, rune to list of predeclared types, |
| don't lose factory functions of non-exported types, |
| don't show methods of exported anonymous fields, |
| enable AllMethods flag (and fix logic). |
| * go/printer: don't print incorrect programs. |
| * go/scanner: idiomatic receiver names. |
| * go/spec: update language on map types. |
| * go/token: remove dependency on encoding/gob. |
| * gob: fuzz testing, plus a fix for very large type names. |
| * gobuilder: use go tool to build and test sub-repositories. |
| * godoc: add URL mode m=methods, |
| diagnostic for empty FS tree, |
| fix identifier search, |
| fix redirect loop for URL "/", |
| provide link to subdirectories, if any, |
| sort list of "other packages", |
| update metadata in appinit.go. |
| * gophertool: fix link to the build status dashboard (thanks Jongmin Kim). |
| * hgignore: add VERSION.cache (thanks Gustavo Niemeyer), |
| delete dregs, ignore tmpltohtml. |
| * html: add package doc. |
| * image: add package docs, rename s/UnknownFormatError/ErrFormat/ and, |
| delete the image.Repeated type, |
| remove image/bmp and image/tiff from std. |
| * io/ioutil: document EOF behavior in ReadFile and ReadAll. |
| * io: API tweaks. |
| * libmach: add stubs for Plan 9 (thanks Anthony Martin). |
| * make.bash: don't remove hgpatch. |
| * math/big: add raw access to Int bits, |
| API and documentation cleanup. |
| * misc/goplay: use go tool "run" (thanks Olivier Duperray). |
| * misc/osx: don't set GOROOT or modify profile files, |
| update for dist tool, drop image.bash, update readme. |
| * net, syscall: add IPv4 multicast helpers for windows (thanks Mikio Hara). |
| * net/http/httputil: fix race in DumpRequestOut, |
| preserve query params in reverse proxy. |
| * net/http: don't set Content-Type header for HEAD requests by default (thanks Patrick Mylund Nielsen), |
| fix nil pointer dereference in error case (thanks Volker Dobler), |
| close client fd sooner on response read error, |
| set cookies in client jar on POST requests (thanks Volker Dobler). |
| * net/rpc: fix data race on Call.Error. |
| * net: ListenMulticastUDP to listen concurrently across multiple listeners (thanks Mikio Hara), |
| disable normal multicast testing on linux/arm (thanks Mikio Hara), |
| fix Plan 9 build (thanks Anthony Martin), |
| fix windows build (thanks Alex Brainman), |
| move DNSConfigError to a portable file, |
| remove types InvalidConnError and UnknownSocketError, |
| replace error variable name e, errno with err (thanks Mikio Hara), |
| run TestDialTimeout on windows (thanks Alex Brainman), |
| update comments to remove redundant "net" prefix (thanks Mikio Hara). |
| * os/exec: TestExtraFiles - close any leaked file descriptors, |
| make sure file is not closed early in leaked fd test. |
| * os/signal: move to exp/signal. |
| * os/user: windows implementation (thanks Alex Brainman). |
| * os: Process.handle use syscall.Handle (thanks Wei Guangjing), |
| file windows use syscall.InvalidHandle instead of -1 (thanks Wei Guangjing), |
| remove SIGXXX signals variables, |
| turn FileStat.Sys into a method on FileInfo (thanks Gustavo Niemeyer). |
| * path/filepath: repair and simplify the symlink test. |
| * reflect: add comment about Type.Field allocation, |
| test that PtrTo returns types that match program types. |
| * runtime: add runtime.cputicks() and seed fastrand with it (thanks Damian Gryski), |
| delete UpdateMemStats, replace with ReadMemStats(&stats) (thanks Rémy Oudompheng), |
| fix float64 hash, |
| use GOTRACEBACK to decide whether to show runtime frames, |
| use per-map hash seeds (thanks Damian Gryski). |
| * spec: add number to the fibonacci sequence. |
| * std: add struct field tags to untagged literals. |
| * strings: add Fields example. |
| * syscall: add Timeval.Nano, Timespec.Nano, for conversion to Duration, |
| cache environment variables on Plan 9 (thanks Anthony Martin), |
| fix // +build comments in types_*.go, |
| fix build directive in types_linux.go, |
| update bootstrap scripts to sync with new go command (thanks Mikio Hara). |
| * test: add import test that caused an incorrect gccgo error, |
| add test for receiver named _, |
| add test of NaN in map, |
| add test which crashed gccgo compiler, |
| don't use package main for files without a main function, |
| fix bug headers, |
| float to integer test case, |
| make map nan timing test more robust, |
| match gccgo error messages, |
| test append with two different named types with same element type, |
| test method expressions with parameters, and with import, |
| test slice beyond len, |
| test that x := <-c accepts a general expression. |
| * testing: capture panics, present them, and mark the test as a failure. |
| * unicode: document large var blocks and the SpecialCase vars. |
| * vet: add a check for untagged struct literals. |
| </pre> |
| |
| <h2 id="2012-01-27">2012-01-27</h2> |
| |
| <pre> |
| This weekly snapshot renamed the html package to exp/html. The package will not |
| be present in the Go 1 distribution, but will be installable from source. |
| |
| Error variables in the archive/tar, archive/zip, compress/gzip, compress/zlib, |
| and crypto/bcrypt packages have been renamed from FooError to ErrFoo. |
| There is no gofix, but the compiler will flag code that needs updating. |
| |
| This weekly snapshot relocates many packages to sub-repositories of the main |
| Go repository. These are the old and new import paths: |
| |
| crypto/bcrypt code.google.com/p/go.crypto/bcrypt |
| crypto/blowfish code.google.com/p/go.crypto/blowfish |
| crypto/cast5 code.google.com/p/go.crypto/cast5 |
| crypto/md4 code.google.com/p/go.crypto/md4 |
| crypto/ocsp code.google.com/p/go.crypto/ocsp |
| crypto/openpgp code.google.com/p/go.crypto/openpgp |
| crypto/openpgp/armor code.google.com/p/go.crypto/openpgp/armor |
| crypto/openpgp/elgamal code.google.com/p/go.crypto/openpgp/elgamal |
| crypto/openpgp/errors code.google.com/p/go.crypto/openpgp/errors |
| crypto/openpgp/packet code.google.com/p/go.crypto/openpgp/packet |
| crypto/openpgp/s2k code.google.com/p/go.crypto/openpgp/s2k |
| crypto/ripemd160 code.google.com/p/go.crypto/ripemd160 |
| crypto/twofish code.google.com/p/go.crypto/twofish |
| crypto/xtea code.google.com/p/go.crypto/xtea |
| exp/ssh code.google.com/p/go.crypto/ssh |
| net/dict code.google.com/p/go.net/dict |
| net/websocket code.google.com/p/go.net/websocket |
| exp/spdy code.google.com/p/go.net/spdy |
| encoding/git85 code.google.com/p/go.codereview/git85 |
| patch code.google.com/p/go.codereview/patch |
| |
| Gofix will update imports of these packages to use the new import paths. |
| Installations that depend on these packages will need to install them using a |
| 'go get' command. |
| |
| Other changes: |
| * 6c, 8c: make floating point code NaN-safe. |
| * 6l, 8l: remove unused macro definition (thanks Shenghou Ma). |
| * archive/tar: fix race in TestNonSeekable. |
| * archive/zip: add functions to convert between os.FileInfo & FileHeader. |
| * build: do not build all C compilers (thanks Shenghou Ma), |
| remove code now in subrepositories. |
| * bytes: remove dead code, complete documentation, |
| restore panic on out-of-memory, |
| turn buffer size overflows into errors. |
| * cgo: -cdefs should translate unsafe.Pointer to void * (thanks Shenghou Ma). |
| * cmd/gc: forgotten recursion on ninit itself in order.c. |
| * cmd/go: bug fixes, implement go get, |
| correctly handle -n and -x flags for 'go run' (thanks Shenghou Ma), |
| solve ambiguity of get lp.net/project/foo (thanks Gustavo Niemeyer), |
| update doc.go with text generated from the usage strings. |
| * cmd/goapi: new tool for tracking exported API over time. |
| * codereview: support for subrepositories. |
| * compress/flate: fix a typo, improve compression rate by 3-4%, |
| increase the length of hash table from 1<<15 to 1<<17. 0%-16% speedup, |
| make lazy matching work, |
| reduce memory pressure at cost of additional arithmetic operation, |
| use append instead of slice+counter. |
| * crypto: rename some FooError to ErrFoo. |
| * dashboard: fix -commit for new xml package. |
| * database/sql: add NullInt64, NullFloat64, NullBool (thanks James P. Cooper), |
| convert SQL null values to []byte as nil (thanks James P. Cooper), |
| fix Tx.Query (thanks Blake Mizerany). |
| * doc: expand FAQ on GOMAXPROCS, update to Go 1. |
| * doc/go1: add encoding/xml and net/url changes (thanks Gustavo Niemeyer), |
| add more info about hash and net changes, delete reference to html, |
| add flag, runtime, testing, image , mime, filepath.Walk, |
| document sub-repositories. |
| * encoding/binary: document that PutVarint, PutUvarint may panic. |
| * encoding/varint: deleted WriteXvarint. |
| * encoding/xml: add docs for ignoring tag (thanks Gustavo Niemeyer), |
| bring API closer to other packages (thanks Gustavo Niemeyer), |
| improve []byte handling (thanks Gustavo Niemeyer), |
| remove Marshaler support (thanks Gustavo Niemeyer), |
| support ignoring fields with "-" (thanks Gustavo Niemeyer). |
| * exp/ebnflint: test spec during 'go test'. |
| * exp/norm: fixes a subtle bug introduced by change 10087: random offset. |
| * gc, runtime: handle floating point map keys. |
| * gc: avoid DOT in error messages, |
| do not try to add a key with incorrect type to a hash (thanks Jeff R. Allen), |
| fix order of evaluation, |
| fix recursion loop in interface comparison, |
| handle function calls in arguments to builtin complex operations, |
| missed typecheck in subscripting a const string, |
| permit unsafe.Pointer for inlined functions, |
| softer criteria for inlinability, |
| static implements check on typeswitches only applies to concrete case types, |
| test case for recursive interface bug. |
| * go/ast: respect ImportSpec.EndPos (thanks Scott Lawrence). |
| * go/build: add BuildTags to Context, allow !tag. |
| * go/doc: rewrite and add lots of tests. |
| * go/parser: use explicit parser.Mode type. |
| * go/printer, gofmt: respect line breaks in signatures. |
| * go/scanner: use explicit scanner.Mode type. |
| * gob: annotate debug.go so it's not normally built, |
| reduce the maximum message size. |
| * godoc: log node printing error, |
| move overview before API TOC, |
| update metadata upon launch. |
| * gofix: add -debug flag for quicker diagnosis of internal errors, |
| handle xml.Unmarshal in xmlapi fix (thanks Gustavo Niemeyer), |
| update go1pkgrename for subrepositories. |
| * goyacc: fix indexing bug when yydebug >= 2. |
| * ld: fix Mach-O code signing for non-cgo binaries (thanks Mikkel Krautz). |
| * libmach: cross compiling support (thanks Shenghou Ma). |
| * math/big: assembly versions of bitLen for x86-64, 386, and ARM (thanks David G. Andersen), |
| return type of bitLen is an int; use MOVL on amd64 (thanks David G. Andersen), |
| add examples for Rat and Int's SetString and Scan methods, |
| slight improvement to algorithm used for internal bitLen function (thanks David G. Andersen), |
| test both bitLen and bitLen_g. |
| * net/http: add Request.RequestURI field, |
| disabled test for Transport race / deadlock bug, |
| fix Transport deadlock (thanks Yoshiyuki Kanno), |
| make ParseForm ignore unknown content types (thanks Roger Peppe), |
| parse CONNECT requests (thanks Andrew Balholm). |
| * net/rpc: fix data race in benchmark, |
| fix race in TestClientWriteError test, |
| log Call reply discard. |
| * net: Dial, ListenPacket with "ip:protocol" network for raw IP sockets (thanks Mikio Hara), |
| actually reset deadline when time is zero, |
| consistent OpError message (thanks Mikio Hara), |
| fix dialing google test (thanks Mikio Hara), |
| make WriteTo fail when UDPConn is already connected (thanks Mikio Hara). |
| * regexp: remove vestigial Error type. |
| * runtime: add type algorithms for zero-sized types, |
| move NumCPU declaration into debug.go. |
| * spec: function invocation, panic on *nil. |
| * syscall: add NOTE_* constants on OS X (thanks Robert Figueiredo). |
| * test: explicitly use variables to avoid gccgo "not used" error. |
| * text/template: add example for Template. |
| </pre> |
| |
| <h2 id="2012-01-20">2012-01-20</h2> |
| |
| <pre> |
| This weekly snapshot renamed the exp/sql package to database/sql, and moved |
| utf8.String from unicode/utf8 to exp/utf8string. |
| |
| Package net's SetTimeout methods were changed to SetDeadline. |
| |
| Many functions in package os now take a os.FileMode argument instead of a |
| plain uint32. An os.ModeSticky constant is also now defined. |
| |
| The meaning of the first buffer element for image.YCbCr has changed to match |
| the semantics of the other image types like image.RGBA. |
| |
| The NewMD5, NewSHA1 and NewSHA256 functions in crypto/hmac have been |
| deprecated. Use New instead, explicitly passing the hash function. |
| |
| Other changes: |
| * buildscripts: move to buildscript directory (thanks Shenghou Ma). |
| * bytes: add the usual copyright notice to example_test.go (thanks Olivier Duperray). |
| * cmd/go: remove mentions of 'gotest' from the documentation, |
| skip _obj directories in package scans. |
| * container/heap: better package documentation. |
| * crypto/elliptic: add constant-time P224. |
| * crypto/hmac: Add HMAC-SHA224 and HMAC-SHA384/512 (thanks Luit van Drongelen), |
| * crypto/tls: add FreeBSD root certificate location (thanks Shenghou Ma). |
| * crypto/x509: remove explicit uses of rsa. |
| * doc: various updates (thanks Jongmin Kim, Scott Lawrence, Shenghou Ma, Stefan Nilsson). |
| * encoding/json: allow / and % in tag names, |
| document angle bracket escaping, |
| fix comments, tweak tests for tag names (thanks Mikio Hara). |
| * encoding/xml: marshal/unmarshal xml.Name in field (thanks Gustavo Niemeyer). |
| * exp/inotify: fix data race in linux tests. |
| * exp/proxy: fix build after URL changes (thanks Gustavo Niemeyer). |
| * exp/sql: copy when scanning into []byte by default, |
| rename NullableString to NullString and allow its use as a parameter. |
| * exp/ssh: add marshal functions for uint32 and uint64 types, |
| handle versions with just '\n', |
| rename (some) fields (thanks Christopher Wedgwood). |
| * exp/terminal: fix build on non-Linux using Makefiles. |
| * fmt: enable and fix malloc test, |
| * gc: don't emit pkgpath for error type, |
| don't fault on return outside function (thanks Scott Lawrence), |
| fieldnames in structliterals in exported inlines should not be qualified if they're embedded builtin types, |
| fix infinite recursion for embedded interfaces, |
| give esc.c's sink an orig so -mm diagnostics work again, |
| handle printing of string/arrayrune conversions. |
| remove redundant code (thanks Shenghou Ma). |
| * go/build: no back slash in FindTree returned pkg name (thanks Alex Brainman). |
| * go/doc: collect imports, |
| don't shadow receiver. |
| rewrote and completed test framework. |
| print only one newline between paragraphs |
| * go/parser: expressions may have comments. |
| * go/scanner: fix example (thanks Olivier Duperray). |
| * go/token: replaced Files() with Iterate(). |
| * godoc: add anchors to cmd documentation headings, |
| remove "need more packages?" link, |
| specify HTML page metadata with a JSON blob, |
| support canonical Paths in HTML metadata. |
| * html/template: fix docs after API changes (thanks Gustavo Niemeyer). |
| * html: in foreign content, check for HTML integration points in breakout. |
| * image/color: rename modelYCbCr to yCbCrModel (thanks Benny Siegert), |
| simplify documentation (thanks David Crawshaw). |
| * image: add PixOffset methods. |
| * math/rand: decrease test duration in short mode, |
| document default initial seed for global generator (thanks Scott Lawrence). |
| * mime: make FormatMediaType take full type for consistency. |
| * misc/cgo/test: make tests run on windows (thanks Alex Brainman). |
| * net/http/cgi: increase a flaky test timeout. |
| * net/http: change test to use override param instead of chan, |
| log handler panic before closing HTTP connection, |
| send cookies in jar on redirect (thanks Jeff Hodges), |
| the documentation should call NewRequest with the right signature (thanks Christoph Hack), |
| update the Client docs a bit. |
| * net/url: cleaned up URL interface (v2) (thanks Gustavo Niemeyer). |
| * net: consistent log format in test (thanks Mikio Hara), |
| various build fixes (thanks Mikio Hara), |
| use NewTimer, not NewTicker, in fd_windows.go. |
| * old/netchan: fix data race on client hashmap. |
| * os/exec: trivial allocation removal in LookPath (thanks Gustavo Niemeyer). |
| * os: remove old note about NewSyscallError being special (thanks Alex Brainman), |
| * path: added examples (thanks Sanjay Menakuru). |
| * pkg: Add and fix Copyright of "hand generated" files (thanks Olivier Duperray), |
| add missing godoc comments to windows versions (thanks Alex Brainman). |
| * regexp: add SubexpNames. |
| * runtime: implement runtime.usleep for FreeBSD/386 and amd64 (thanks Shenghou Ma), |
| madvise and SysUnused for Darwin (thanks Dave Cheney). |
| * sync/atomic: fix data race in tests. |
| * syscall: add Unix method to TimeSpec, TimeVal, |
| fix plan9 build (thanks Mikio Hara). |
| * test: change several tests to not print, |
| fix bug364 to actually run, |
| match gccgo error messages for bug345, |
| split golden.out into expected output per test. |
| * testing: do not recover example's panic (thanks Shenghou Ma), |
| document examples. |
| * text/template/parse: use human error prints. |
| * text/template: fix nil error on redefinition. |
| * time: add Since, which returns the time elapsed since some past time t. |
| </pre> |
| |
| <h2 id="2012-01-15">2012-01-15</h2> |
| |
| <pre> |
| This weekly snapshot includes two package changes that may require changes to |
| client code. |
| |
| The image package's Tiled type has been renamed to Repeated. |
| |
| The encoding/xml package has been changed to make more idiomatic use of struct |
| tags, among other things. If you use the xml package please read the change |
| description to see if your code is affected: |
| http://code.google.com/p/go/source/detail?r=70e914beb409 |
| |
| Function inlining is now enabled by default in the gc compiler. |
| |
| Other changes: |
| * bytes: Buffer read of 0 bytes at EOF shouldn't be an EOF. |
| * cgo: if value for constant did not parse, get it from DWARF info, |
| write _cgo_export.h to object directory, not source dir. |
| * cmd/go: add -p flag for parallelism (like make -j), |
| add -v flag to build and install, |
| add ... patterns in import path arguments, |
| fix data race during build, |
| fix import directory list for compilation, |
| fix linker arguments, |
| handle cgo pkg-config pragmas, |
| handle path to cmd directory, |
| include test files in fmt, vet, and fix (thanks Sanjay Menakuru), |
| kill test processes after 10 minutes, |
| pass arguments to command for run (thanks Eric Eisner), |
| rely on exit code to tell if test passed, |
| use relative paths in go fix, go fmt, go vet output. |
| * cmd/gofmt: fix simplify.go by running gofmt on cmd/gofmt (thanks Olivier Duperray). |
| * crypto/openpgp: assorted cleanups, |
| truncate hashes before checking DSA signatures. |
| * crypto/tls: improve TLS Client Authentication (thanks Jeff R. Allen), |
| update generate_cert.go for new time package. |
| * dashboard: better caching, bug fixes. |
| * doc: update "How to Write Go Code" to use the go tool. |
| fix broken function codewalk examples. |
| * encoding/asn1: document support for *big.Int (thanks Florian Weimer). |
| * encoding/gob: fix panic when decoding []byte to incompatible slice types (thanks Alexey Borzenkov). |
| * encoding/json: don't marshal special float values (thanks Evan Shaw). |
| * encoding/xml: major Go 1 fixup (thanks Gustavo Niemeyer). |
| * exp/proxy: new package. |
| * exp/sql: add time.Time support, |
| close Rows on EOF, |
| fix potential corruption in QueryRow.Scan into a *[]byte. |
| * exp/ssh: various small fixes (thanks Dave Cheney). |
| * exp/terminal: add SetPrompt and handle large pastes, |
| add to level Makefile for the (non-Linux?) systems that need it. |
| * flag: add Duration flag type, |
| change Set method Value interface to return error instead of bool. |
| * gc: better errors messages, |
| avoid false positives when using scalar struct fields (thanks Rémy Oudompheng), |
| closure code gen improvements, |
| disallow declaration of variables outside package, |
| fix switch on interface values (thanks Rémy Oudompheng), |
| inlining bug fixes, |
| improve unsafe.Pointer type-check error messages (thanks Ryan Hitchman), |
| put limit on size of exported recursive interface (thanks Lorenzo Stoakes), |
| * go-mode.el: fix syntax highlighting of backticks (thanks Florian Weimer). |
| * go/ast: remove unnecessary result value from ast.Fprint/Print. |
| * go/build: allow colon in #cgo flags, |
| pass CgoLDFLAGS at end of link command. |
| * go/doc: new API, don't ignore anonymous non-exported fields, initial testing support. |
| * go/parser: remove unused Parse* functions. Simplified ParseExpr signature. |
| * go/printer: don't crash if AST contains BadXXX nodes. |
| * go/scanner: 17% faster scanning, remove InsertSemis mode. |
| * goinstall: use correct checkout URL for Google Code svn repos. |
| * gotest: make _testmain.go conform to gofmt rules (thanks Benny Siegert). |
| * goyacc: fix units.y build breakage (thanks Shenghou Ma). |
| * html/template: reenable testcases and fix mis-escaped sequences (thanks Mike Samuel). |
| * html: "in select in table" insertion mode (thanks Andrew Balholm), |
| adjust foreign attributes, |
| foreign element HTML integration points, tag name adjustment, |
| parse <frameset> inside body (thanks Andrew Balholm), |
| propagate foreign namespaces only when adding foreign content. |
| * json: better error messages when the ,string option is misused. |
| * ld: parse but do not implement -X flag. |
| * log/syslog: add Alert method (thanks Vadim Vygonets). |
| * make.bash: remove old dregs (thanks Alex Brainman). |
| * math/big: simplify fast string conversion. |
| * math: fix typo in all_test.go (thanks Charles L. Dorian). |
| * misc/windows: add src/pkg/runtime/z* files to installation script (thanks Alex Brainman). |
| * net/http: don't ignore Request.Write's Flush error, |
| allow cookies with negative Max-Age attribute as these are (thanks Volker Dobler). |
| * net/textproto: avoid corruption when reading a single header. |
| * net: add IP-level socket option helpers for Unix variants (thanks Mikio Hara), |
| fix incorrect mode on ListenIP, ListenUDP (thanks Mikio Hara), |
| make use of the kernel state to listen on TCP, Unix (thanks Mikio Hara), |
| platform-dependent default socket options (thanks Mikio Hara). |
| * os: add ModeCharDevice. |
| * runtime: add NumCPU, |
| delete duplicate implementation of pcln walker, |
| distinct panic message for call of nil func value, |
| enable runtime.ncpu on FreeBSD (thanks Devon H. O'Dell), |
| make garbage collector faster by deleting code, |
| regenerate defs_darwin_{386,amd64}.h (thanks Dave Cheney), |
| runtime.usleep() bugfix on darwin/amd64 and linux/arm (thanks Shenghou Ma). |
| * spec: pointer comparison for pointers to 0-sized variables, |
| change the wording regarding select statement choice. |
| * strconv: fix round up corner case, |
| faster FormatFloat(x, *, -1, 64) using Grisu3 algorithm (thanks Rémy Oudompheng), |
| implement fast path for rounding already short numbers (thanks Rémy Oudompheng), |
| return ErrSyntax when unquoting illegal octal sequences. |
| * syscall: linux-only support for parent death signal (thanks Albert Strasheim), |
| make Environ return original order. |
| * testing: fix defer race, |
| use flag.Duration for -timeout flag. |
| * text/template: handle panic values that are not errors (thanks Rémy Oudompheng), |
| for range on a map, sort the keys if feasible. |
| * time: add ParseDuration, |
| fix docs for After and NewTicker. |
| * windows: use ArbitraryUserPointer as TLS slot (thanks Wei Guangjing). |
| </pre> |
| |
| <h2 id="2011-12-22">2011-12-22</h2> |
| |
| <pre> |
| This snapshot includes changes to the images/ycbcr and testing packages, and |
| changes to the build system. |
| |
| The types for managing Y'CbCr images in the image/ycbcr have been moved to the |
| image and image/color packages. A gofix module will rewrite affected code. |
| |
| The testing package's B type (used when running benchmarks) now has the same |
| methods as T (used in tests), such as Print, Error, and Fatal. |
| |
| This weekly adds a new command named 'go' for building and testing go programs. |
| For Go 1, the go command will replace the makefile-based approach that we have |
| been using. It is not yet ready for general use, but all.bash does use it to |
| build the tree. If you have problems building the weekly, you can 'export |
| USE_GO_TOOL=false' before running all.bash to fall back to the makefiles. |
| |
| Other changes: |
| * archive/zip: add SetModTime method to FileHeader. |
| * build: make use of env (thanks Mikio Hara), |
| fixes to make "go install" work on windows (thanks Alex Brainman). |
| * bytes: add two Buffer examples. |
| * cgo: support export for built-in types (thanks Maxim Pimenov). |
| * cmd/go: avoid infinite loop with package specific flags (thanks Mikio Hara), |
| fixes to build standard library, |
| implement test command, |
| make sure use of pthread for gcc-4.5 and beyond (thanks Mikio Hara), |
| respect $GCFLAGS, |
| use spaces consistently in help message (thanks Roger Peppe), |
| many other improvements. |
| * codereview: initialize "found" in codereview.py (thanks Miki Tebeka). |
| * crypto/mime/net/time: add netbsd to +build tags (thanks Joel Sing). |
| * crypto/tls: don't assume an RSA private key in the API. |
| * crypto/x509: don't crash with nil receiver in accessor method. |
| * doc/effective_go: discuss redeclaration. |
| * doc: delete go course notes, |
| refer to http://build.golang.org/ where applicable (thanks Robert Hencke), |
| suggest code.google.com/p/go instead of go.googlecode.com/hg. |
| * encoding/binary: add Write and Read examples, |
| add more benchmarks (thanks Roger Peppe). |
| * encoding/gob: arrays are zero only if their elements are zero. |
| * encoding/json: cleanup leftover variables in array decoding (thanks Rémy Oudompheng), |
| examples for Marshal and Unmarshal. |
| * exp/ssh: rename ClientAuthPublicKey helper ClientAuthKeyring (thanks Dave Cheney), |
| simplify Stdin/out/errPipe methods (thanks Dave Cheney). |
| * fmt: speed up floating point print, clean up some code, |
| make the malloc test check its counts. |
| * gc: allow use of unsafe.Pointer in generated code, |
| avoid unsafe in defn of package runtime, |
| better linenumbers for inlined functions, |
| better loopdepth analysis for labels, |
| implement and test \r in raw strings, |
| inlining, allow empty bodies, fix _ arguments, |
| omit argument names from function types in error messages. |
| * go/ast, parser: remember short variable decls. w/ correspoding ident objects. |
| * go/build: add new +build tags 'cgo' and 'nocgo'. |
| * go/doc, godoc: move export filtering into go/doc |
| * go/printer, gofmt: fine tuning of line spacing. |
| * go/scanner: strip CRs from raw literals. |
| * gob: isZero for struct values. |
| * godoc: allow examples for methods (thanks Volker Dobler), |
| show methods of anonymous fields. |
| * goinstall: only suggest -fix for bad imports when appropriate. |
| * govet: add checking for printf verbs, |
| divide the program into one file per vetting suite. |
| * html: more parser improvements (thanks Andrew Balholm). |
| * json: some tests to demonstrate bad error messages, |
| use strconv.Append variants to avoid allocations in encoding. |
| * ld: add support for netbsd signature note section (thanks Joel Sing), |
| allow for IMAGE_REL_AMD64_ADDR32NB relocation type (thanks Alex Brainman). |
| * math/big: Rand shouldn't hang if argument is also receiver. |
| * misc/builder: set default builder host to build.golang.org. |
| * misc/dashboard: delete old build dashboard code , |
| improvements and fixes for the go implementation. |
| * misc/vim: fix go filetype detection (thanks Paul Sbarra). |
| * net, syscall, os: set CLOEXEC flag on epoll/kqueue descriptor. |
| * net, syscall: interface address and mask (thanks Mikio Hara). |
| * net/http: added interface for a cookie jar (thanks Volker Dobler), |
| test fixes (thanks Alex Brainman). |
| * net: add DialTimeout, |
| sort Makefile entries (thanks Mikio Hara). |
| * os, syscall: beginnings of NetBSD support (thanks Christopher Nielsen). |
| * os/exec: add test to verify net package's epoll fd doesn't go to child, |
| disable the ExtraFiles test on darwin. |
| * os: don't trust O_CLOEXEC on OS X, |
| make sure Remove returns correct error on windows (thanks Alex Brainman). |
| * path, path/filepath: add Dir to complement Base. |
| * path/filepath.Rel: document that the returned path is always relative. |
| * runtime: don't panic on SIGILL, just crash. |
| * spec: be precise about newlines. |
| * sql: add Rows.Columns. |
| * strconv: fix bug in extended-float based conversion, |
| implement faster parsing of decimal numbers, and |
| reduce buffer size for multi-precision decimals (thanks Rémy Oudompheng). |
| * syscall: regenerate z-files for linux/arm (thanks Mikio Hara), |
| sort Makefile, mkall.sh and mkerrors.sh entries (thanks Mikio Hara). |
| * test/bench/go1: first draft of Go 1 benchmark suite. |
| * testing: compare Log to Println (thanks Robert Hencke), |
| make signalling safer for parallel tests. |
| * text/template: better error message for empty templates, |
| fix handing of nil arguments to functions (thanks Gustavo Niemeyer). |
| * time: add JSON marshaler for Time (thanks Robert Hencke), |
| new AddDate method (thanks Roger Peppe). |
| * various: use $GCFLAGS and $GCIMPORTS like Make does (thanks Maxim Pimenov). |
| </pre> |
| |
| <h2 id="2011-12-14">2011-12-14</h2> |
| |
| <pre> |
| This snapshot includes language changes and changes to goinstall and gofmt. |
| |
| Equality and inequality (== and !=) are now defined for struct and array |
| values, respectively, provided the elements of the data structures can |
| themselves be compared. See the Go 1 release notes for the details: |
| http://weekly.golang.org/doc/go1.html#equality |
| |
| The rune type is now an alias for int32 and character literals have the default |
| type of rune. Code that uses int where it should use rune will break. |
| See the Go 1 release notes for the details: |
| http://weekly.golang.org/doc/go1.html#rune |
| |
| Goinstall now expects Google Code import paths to be of the form: |
| "code.google.com/p/go-tour/tree" |
| It will reject imports in the old style "go-tour.googlecode.com/hg/tree". |
| There is a gofix module to rename such imports. |
| Use goinstall -fix to update broken packages. |
| |
| Gofmt's flags have been modified slightly. |
| The -tabintent flag has been renamed -tabs. |
| The -spaces flag has been removed. |
| |
| Other changes: |
| * 5c, 6c, 8c: support 64-bit switch value (thanks Anthony Martin). |
| * 8c: handle 64-bit switch value. |
| * archive/tar: use struct comparison not DeepEqual (thanks Christopher Wedgwood). |
| * archive/zip: make zip understand os.FileMode (thanks Roger Peppe). |
| * bufio: make the minimum read buffer size 16 bytes. |
| * build: disable cgo on Windows/amd64, |
| regularize packages so they may be built without Makefiles. |
| * bytes: faster Count, Index, Equal. |
| * cgo: add basic gccgo support (thanks Rémy Oudompheng). |
| * codereview: fix path slash issue (thanks Yasuhiro Matsumoto). |
| * compress/flate: fix out of bounds error. |
| * contribute.html: do not fill in the reviewer field (thanks Florian Weimer). |
| * crypto/aes: made faster by eliminating some indirection (thanks Taru Karttunen). |
| * crypto/dsa: don't truncate input hashes. |
| * doc/go_tutorial: make clear the file example is Unix-specific. |
| * doc: add Defer, Panic, and Recover article, |
| add Error Handling article, |
| add Go 1 release notes document. |
| * encoding/gob: better error messages when types mismatch. |
| * env.bash: export CGO_ENABLED so cgo tests run (thanks Alex Brainman). |
| * exp/sql: simplify some string conversions. |
| * exp/ssh: Wait returns an *ExitError (thanks Gustav Paul). |
| * exp/ssh: improve client channel close behavior (thanks Dave Cheney). |
| * fmt: don't recur if String method (etc.) misbehaves. |
| * gc: better error messages, |
| inlining (disabled without -l), |
| many bug fixes (thanks Lucio De Re and Rémy Oudompheng). |
| * go/printer, godoc: print comments in example code. |
| * go: implement doc, fmt, fix, list, vet, build, and install. |
| * gobuilder: goinstall packages after building go tree. |
| * godoc: <pre> must not occur inside <p> (thanks Olivier Duperray), |
| added an opensearch description document (thanks Christoph Hack), |
| text wrapping. |
| * gofix: add httputil fix (thanks Yasuhiro Matsumoto). |
| * gotest: use go/build more (thanks Robert Hencke). |
| * gzip: convert between Latin-1 and Unicode (thanks Vadim Vygonets). |
| * html/template: define the FuncMap type locally. |
| * html: a first step at parsing foreign content (MathML, SVG), |
| more parser improvements (thanks Andrew Balholm). |
| * http: close connection after printing panic stack trace (thanks Roger Peppe), |
| fix failing Transport HEAD request with gzip-looking response. |
| * json: treat renamed byte slices the same as []byte. |
| * ld: first pass at linker support for NetBSD binaries (thanks Christopher Nielsen), |
| fix memory leaks (thanks Scott Lawrence), |
| increase default stack size on Windows for cgo. |
| * math: delete non-Sqrt-based Hypot, |
| implement, document, and fix special cases (thanks Charles L. Dorian), |
| * misc/benchcmp: don't require "Benchmark" at beginning of line. |
| * misc/osx: rename profile.go to profile_go (thanks Scott Lawrence). |
| * net/http: fix trivial example server (thanks Olivier Duperray), |
| net/http: make test remove temporary file and directory. |
| * net/smtp: add CRAM-MD5 authentication (thanks Vadim Vygonets). |
| * reflect: fix Slice cap (thanks Gustavo Niemeyer). |
| * regexp: performance improvements; avoid allocation of input interface. |
| * runtime: bump gc 'extra bytes' check (thanks Christopher Wedgwood), |
| madvise and SysUnused for Linux (thanks Sébastien Paolacci), |
| make gc_test test extra allocated space, not total space, |
| support for NetBSD (thanks Christopher Nielsen). |
| * spec: adjust complex constant example (thanks Robert Hencke), |
| values of underlying type uintptr can be converted to unsafe.Pointer, |
| var x = 'a' defaults to type rune. |
| * strconv: include package and function name in error strings, |
| make QuoteRune etc. take a rune argument, |
| some performance improvements. |
| * syscall: add constants for flock() system call under Linux, |
| regenerate z-files for darwin, freebsd (thanks Mikio Hara), |
| regenerate z-files for openbsd, |
| return error, not uintptr, when function returns error (thanks Alex Brainman). |
| * test/bench: move to test/bench/shootout. |
| * test/garbage: move to test/bench/garbage. |
| * test: make array smaller in nilptr test. |
| * time: allow sleep tests to run for 200% too long, |
| fix Time.Add (thanks Hector Chu), |
| fix daysIn for December (thanks Peter Mundy), |
| gob marshaler for Time (thanks Robert Hencke), |
| use Duration for AfterFunc. |
| * various: a grab-bag of time.Duration cleanups. |
| </pre> |
| |
| <h2 id="2011-12-06">2011-12-06</h2> |
| |
| <pre> |
| This snapshot includes a language change and changes to the strconv and go/doc |
| packages. The package changes require changes to client code. |
| The language change is backwards-compatible. |
| |
| Type elision in arrays, slices, or maps of composite literals has been |
| extended to include pointers to composite literals. Code like this |
| var t = []*T{&T{}, &T{}} |
| may now be written as |
| var t = []*T{{}, {}} |
| You can use gofmt -s to simplify such code. |
| |
| The strconv package has been given a more idiomatic and efficient interface. |
| Client code can be updated with gofix. See the docs for the details: |
| http://weekly.golang.org/pkg/strconv/ |
| |
| The go/doc package's ToHTML function now takes a []byte argument instead of a |
| string. |
| |
| Other changes: |
| * crypto/aes: eliminate some bounds checking and truncation (thanks Rémy Oudompheng). |
| * crypto/x509: if a parent cert has a raw subject, use it. |
| * encoding/gob: don't send type info for unexported fields. |
| * exp/ssh: allow for msgUserAuthBanner during authentication (thanks Gustav Paul). |
| * fmt: benchmark floating point, |
| only use Stringer or Error for strings. |
| * gc: changes in export format in preparation of inlining, |
| disallow map/func equality via interface comparison, |
| use gofmt spacing when printing map type. |
| * go/doc: exclude lines ending in ':' from possible headings. |
| * gobuilder: -commit mode for packages, |
| cripple -package mode temporarily, |
| use new dashboard protocol. |
| * godoc: improved output of examples in html (thanks Volker Dobler). |
| * gofmt: handle &T in composite literal simplify. |
| * goinstall: honour -install=false flag when -make=true. |
| * hash: rewrite comment on Hash.Sum method. |
| * html: more parser improvements (thanks Andrew Balholm). |
| * image: avoid func comparison during ColorModel comparison. |
| * math: add special-cases comments to Sinh and Tanh (thanks Charles L. Dorian). |
| * misc/dashboard: further implementation work. |
| * net, syscall: remove BindToDevice from UDPConn, IPConn (thanks Mikio Hara). |
| * net/mail: correctly compare parsed times in the test. |
| * os/exec: make LookPath always search CWD under Windows (thanks Benny Siegert). |
| * runtime: prep for type-specific algorithms. |
| * strconv: 34% to 63% faster conversions. |
| </pre> |
| |
| <h2 id="2011-12-02">2011-12-02</h2> |
| |
| <pre> |
| This weekly snapshot includes changes to the hash package and a gofix for the |
| time and os.FileInfo changes in the last snapshot. |
| |
| The hash.Hash's Sum method has been given a []byte argument, |
| permitting the user to append the hash to an existing byte slice. |
| Existing code that uses Sum can pass nil as the argument. |
| Gofix will make this change automatically. |
| |
| Other changes: |
| * crypto/tls: cleanup certificate load on windows (thanks Alex Brainman). |
| * exp/ssh: add Std{in,out,err}Pipe methods to Session (thanks Dave Cheney). |
| * dashboard: don't choke on weird builder names. |
| * exp/ssh: export type signal, now Signal (thanks Gustav Paul). |
| * os: add ModeType constant to mask file type bits (thanks Gustavo Niemeyer). |
| * text/template: replace Add with AddParseTree. |
| * go/doc: detect headings and format them in html (thanks Volker Dobler). |
| </pre> |
| |
| <h2 id="2011-12-01">2011-12-01</h2> |
| |
| <pre> |
| This weekly snapshot includes changes to the time, os, and text/template |
| packages. The changes to the time and os packages are significant and related. |
| Code that uses package time, package text/template, or package os's FileInfo |
| type will require changes. |
| |
| In package time, there is now one type - time.Time - to represent times. |
| Note that time.Time should be used as a value, in contrast to old code |
| which typically used a *time.Time, a pointer to a large struct. (Drop the *.) |
| Any function that previously accepted a *time.Time, an int64 |
| number of seconds since 1970, or an int64 number of nanoseconds |
| since 1970 should now accept a time.Time. Especially as a replacement |
| for the int64s, the type is good documentation about the meaning of |
| its value. |
| |
| Whether you were previously calling time.Seconds, time.Nanoseconds, |
| time.LocalTime, or time.UTC, the replacement is the new function |
| time.Now. |
| |
| If you previously wrote code like: |
| |
| t0 := time.Nanoseconds() |
| myFunction() |
| t1 := time.Nanoseconds() |
| delta := t1 - t0 |
| fmt.Printf("That took %.2f seconds\n", float64(t1-t0)/1e9) |
| |
| you can now write: |
| |
| t0 := time.Now() |
| myFunction() |
| t1 := time.Now() |
| delta := t1.Sub(t0) |
| fmt.Printf("That took %s\n", delta) |
| |
| In this snippet, the variable delta is of the new type time.Duration, the |
| replacement for the many int64 parameters that were nanosecond |
| counts (but not since 1970). |
| |
| Gofix can do the above conversions and some others, but it does not |
| rewrite explicit int64 types as time.Time. It is very likely that you will |
| need to edit your program to change these types after running gofix. |
| As always, be sure to read the changes that gofix makes using your |
| version control system's diff feature. |
| |
| See http://weekly.golang.org/pkg/time/ for details. |
| |
| In package os, the FileInfo struct is replaced by a FileInfo interface, |
| admitting implementations by code beyond the operating system. |
| Code that refers to *os.FileInfo (a pointer to the old struct) should |
| instead refer to os.FileInfo (the new interface). |
| The interface has just a few methods: |
| |
| type FileInfo interface { |
| Name() string // base name of the file |
| Size() int64 // length in bytes |
| Mode() FileMode // file mode bits |
| ModTime() time.Time // modification time |
| IsDir() bool // abbreviation for Mode().IsDir() |
| } |
| |
| If you need access to the underlying stat_t provided by the operating |
| system kernel, you can access it by assuming that the FileInfo you are |
| holding is actually an *os.FileStat, and that it's Sys field is actually a |
| *syscall.Stat_t, as in: |
| |
| dev := fi.(*os.FileStat).Sys.(*syscall.Stat_t).Dev |
| |
| Of course, this is not necessarily portable across different operating |
| systems. |
| |
| Gofix will take care of rewriting *os.FileInfo to os.FileInfo for you, |
| and it will also rewrite expressions like fi.Name into calls like fi.Name(). |
| |
| See http://weekly.golang.org/pkg/os/#FileInfo for details. |
| |
| The template package has been changed to export a new, simpler API. |
| The Set type is gone. Instead, templates are automatically associated by |
| being parsed together; nested definitions implicitly create associations. |
| Only associated templates can invoke one another. |
| This approach dramatically reduces the breadth of the construction API. |
| The html/template package has been updated also. |
| There's a gofix for the simplest and most common uses of the old API. |
| Code that doesn't mention the Set type is likely to work after running gofix; |
| code that uses Set will need to be updated by hand. |
| The template definition language itself is unchanged. |
| |
| See http://weekly.golang.org/pkg/text/template/ for details. |
| |
| |
| Other changes: |
| * cgo: add support for callbacks from dynamic libraries. |
| * codereview: gofmt check for non-src/ files (thanks David Crawshaw). |
| * crypto/openpgp/packet: fix private key checksum. |
| * crypto/tls: add openbsd root certificate location, |
| don't rely on map iteration order. |
| * crypto/x509, crypto/tls: support PKCS#8 private keys. |
| * dashboard: start of reimplementation in Go for App Engine. |
| * encoding/xml: fix copy bug. |
| * exp/gui: move exp/gui and exp/gui/x11 to http://code.google.com/p/x-go-binding |
| * exp/ssh: various improvements (thanks Dave Cheney and Gustav Paul). |
| * filepath/path: fix Rel buffer sizing (thanks Gustavo Niemeyer). |
| * gc: fix Nconv bug (thanks Rémy Oudompheng) and other fixes. |
| * go/printer, gofmt: performance improvements. |
| * gofix: test and fix missorted renames. |
| * goinstall: add -fix flag to run gofix on packages on build failure, |
| better error reporting, |
| don't hit network unless a checkout or update is required, |
| support Google Code sub-repositories. |
| * html: parser improvements (thanks Andrew Balholm). |
| * http: fix sniffing bug causing short writes. |
| * json: speed up encoding, caching reflect calls. |
| * ld: align ELF data sections. |
| * math/big: fix destination leak into result value (thanks Roger Peppe), |
| use recursive subdivision for significant speedup. |
| * math: faster Cbrt and Sincos (thanks Charles L. Dorian). |
| * misc/osx: scripts to make OS X package and disk image (thanks Scott Lawrence). |
| * os: fail if Open("") is called on windows (thanks Alex Brainman). |
| * runtime: make sure stack is 16-byte aligned on syscall (thanks Alex Brainman). |
| * spec, gc: allow direct conversion between string and named []byte, []rune. |
| * sql: add Tx.Stmt to use an existing prepared stmt in a transaction, |
| more driver docs & tests; no functional changes. |
| * strings: add ContainsAny and ContainsRune (thanks Scott Lawrence). |
| * syscall: add SUSv3 RLIMIT/RUSAGE constants (thanks Sébastien Paolacci), |
| fix openbsd sysctl hostname/domainname workaround, |
| implement Syscall15 (thanks Alex Brainman). |
| * time: fix Timer stop. |
| </pre> |
| |
| <h2 id="2011-11-18">2011-11-18</h2> |
| |
| <pre> |
| This snapshot includes some language changes. |
| |
| Map and function value comparisons are now disallowed (except for comparison |
| with nil) as per the Go 1 plan. Function equality was problematic in some |
| contexts and map equality compares pointers, not the maps' content. |
| |
| As an experiment, structs are now allowed to be copied even if they contain |
| unexported fields. This gives packages the ability to return opaque values in |
| their APIs. |
| |
| Other changes: |
| * 6a, 8a: allow $(-1) for consistency with $1, $(1), $-1. |
| * 6l: code generation fixes (thanks Michał Derkacz). |
| * build: fix check for selinux allow_execstack on Fedora (thanks Bobby Powers). |
| * builtin: document delete. |
| * cgo: don't panic on undeclared enums/structs (thanks Rémy Oudompheng), |
| fix g0 stack guard. |
| * crypto/tls: fix handshake message test. |
| * crypto: update incorrect references to Cipher interface; should be Block. |
| * doc: clean ups, additions, and fixes to several documents. |
| * doc/install: add openbsd (thanks Joel Sing!). |
| * doc: link to Chinese translation of A Tour of Go. |
| * encoding/json: add marshal/unmarshal benchmark, |
| decode [] as empty slice, not nil slice, |
| make BenchmarkSkipValue more consistent. |
| * env.bash: check for presence of make/gmake (thanks Scott Lawrence). |
| * exp/sql: NumInput() allow -1 to ignore checking (thanks Yasuhiro Matsumoto), |
| add DB.Close, fix bugs, remove Execer on Driver (only Conn), |
| document that for drivers, io.EOF means no more rows, |
| add client side support for publickey auth (thanks Dave Cheney), |
| add direct-tcpip client support (thanks Dave Cheney), |
| change test listen address, also exit test if fails, |
| other fixes and improvements (thanks Dave Cheney). |
| * exp/terminal: rename shell to terminal and add SetSize. |
| * fcgi: fix server capability discovery. |
| * fmt: distinguish empty vs nil slice/map in %#v. |
| * gc: better error, type checks, and many fixes, |
| remove m[k] = x, false syntax (use delete(m, k) instead), |
| support for building with Plan 9 yacc (thanks Anthony Martin). |
| * go/printer: make //line formatting idempotent. |
| * godefs: delete, replaced by cgo -godefs. |
| * godoc: document -templates flag, fix remote search, |
| provide mode for flat (non-indented) directory listings. |
| * gofmt: leave nil nodes of the AST unchanged (thanks Rémy Oudompheng). |
| * html/template: indirect top-level values before printing. |
| * html: more parser improvements (thanks Andrew Balholm). |
| * http: fix serving from CWD with http.ServeFile, |
| make Dir("") equivalent to Dir("."). |
| * ld: fix .bss for ldpe (thanks Wei Guangjing). |
| * math/big: replace nat{} -> nat(nil). |
| * math: faster Lgamma (thanks Charles L. Dorian). |
| * mime: implement TypeByExtension for windows. |
| * misc/bbedit: error and rune support (thanks Anthony Starks). |
| * misc/benchcmp: benchmark comparison script. |
| * misc/emacs: add delete builtin (thanks Bobby Powers). |
| * misc/kate: add error and rune (thanks Evan Shaw). |
| * misc/notepadplus: error and rune support (thanks Anthony Starks). |
| * misc/windows: Windows installer in MSI format (thanks Joe Poirier). |
| * net, io/ioutil: remove use of os.Time (thanks Anthony Martin). |
| * net/http: fix EOF handling on response body (thanks Gustavo Niemeyer), |
| fix sniffing when using ReadFrom, |
| use t.Errorf from alternate goroutine in test. |
| * os: remove undocumented Envs (use os.Environ instead). |
| * reflect: empty slice/map is not DeepEqual to nil, |
| make Value an opaque struct. |
| * runtime, syscall: convert from godefs to cgo. |
| * runtime: add nanotime for Plan 9 (thanks Anthony Martin), |
| add timer support, use for package time, |
| avoid allocation for make([]T, 0). |
| * strconv: add Ftoa benchmarks, make Ftoa faster. |
| * syscall: delete syscall.Sleep, take over env implementation, use error. |
| * testing: add file:line stamps to messages, print results to standard output. |
| * text/template: refactor set parsing. |
| * time: add ISOWeek method to Time (thanks Volker Dobler). |
| * various: avoid func compare, reduce overuse of os.EINVAL + others. |
| </pre> |
| |
| <h2 id="2011-11-09">2011-11-09</h2> |
| |
| <pre> |
| This weekly snapshot renames various Go packages as described in the Go 1 plan. |
| Import statements in client code can be updated automatically with gofix. |
| |
| The changes are: |
| asn1 -> encoding/asn1 |
| big -> math/big |
| cmath -> math/cmplx |
| csv -> encoding/csv |
| exec -> os/exec |
| exp/template/html -> html/template |
| gob -> encoding/gob |
| http -> net/http |
| http/cgi -> net/http/cgi |
| http/fcgi -> net/http/fcgi |
| http/httptest -> net/http/httptest |
| http/pprof -> net/http/pprof |
| json -> encoding/json |
| mail -> net/mail |
| rpc -> net/rpc |
| rpc/jsonrpc -> net/rpc/jsonrpc |
| scanner -> text/scanner |
| smtp -> net/smtp |
| syslog -> log/syslog |
| tabwriter -> text/tabwriter |
| template -> text/template |
| template/parse -> text/template/parse |
| rand -> math/rand |
| url -> net/url |
| utf16 -> unicode/utf16 |
| utf8 -> unicode/utf8 |
| xml -> encoding/xml |
| </pre> |
| |
| <h2 id="2011-11-08">2011-11-08</h2> |
| |
| <pre> |
| This weekly snapshot includes some package changes. |
| |
| In preparation for the Go 1 package reorganziation the sources for various |
| packages have been moved, but the import paths remain unchanged. This |
| inconsistency breaks goinstall at this snapshot. If you use goinstall, please |
| stay synced to the previous weekly snapshot until the next one is tagged. |
| |
| The Error methods in the html, bzip2, and sql packages that return error values |
| have been renamed to Err. |
| |
| Some non-core parts of the http package have been moved to net/http/httputil. |
| The Dump* and NewChunked* functions and ClientConn, ServerConn, and |
| ReverseProxy types have been moved from http to httputil. |
| |
| The API for html/template is now a direct copy of the template API, instead of |
| exposing a single Escape function. For HTML templates, use the |
| html/template package as you would the template package. |
| |
| Other changes: |
| * all: rename os.EOF to io.EOF in non-code contexts (thanks Vincent Vanackere), |
| sort imports with gofix. |
| * archive/zip: close file opened with OpenReader (thanks Dmitry Chestnykh). |
| * bufio: return nil line from ReadLine on error, as documented. |
| * builtin: document basic types and the built-in error type. |
| * bytes: add Contains function. |
| * exp/sql: finish implementation of transactions, flesh out types, docs. |
| * exp/ssh: improved client authentication support (thanks Dave Cheney). |
| * gc: better error message for range over non-receive channel, |
| bug fixes and clean-ups, |
| detect type switch variable not used cases, |
| fix escaping of package paths in symbol names, |
| helpful error message on method call on pointer to pointer, |
| portably read archive headers (thanks Ron Minnich). |
| * gob: fix bug when registering the same type multiple times. |
| * gofix: avoid panic on body-less functions in netudpgroup, |
| make fix order implicit by date. |
| * gofmt, gofix: sort imports. |
| * goinstall: support launchpad.net/~user branches (thanks Jani Monoses). |
| * gopack: do not look for Go metadata in non-Go objects. |
| * gotest: don't run examples that have no expected output. |
| * html: the parser bug fixing campaign continues (thanks Andrew Balholm). |
| * http: fix whitespace handling in sniffer, |
| only recognize application/x-www-form-urlencoded in ParseForm, |
| support Trailers in ReadRequest. |
| * lib9: add ctime. |
| * math: faster Gamma (thanks Charles L. Dorian), |
| improved accuracy for Tan (thanks Charles L. Dorian), |
| improved high-angle test for Cos, Sin and Tan (thanks Charles L. Dorian). |
| * net: implement LookupTXT for windows (thanks Alex Brainman). |
| * os,text,unicode: renamings. |
| * runtime/cgo: fix data declaration to be extern. |
| * runtime: add timespec definition for freebsd, |
| add windows callback tests (thanks Alex Brainman), |
| fix prototype for openbsd thrsleep, |
| fix set and not used, |
| unify mutex code across OSes, |
| windows_386 sighandler to use correct g (thanks Alex Brainman). |
| * template: format error with pointer receiver, |
| make redefinition of a template in a set more consistent. |
| * test: clear execute bit from source file (thanks Mikio Hara), |
| make closedchan.go exit with failure if something fails. |
| * time: faster Nanoseconds call. |
| * websocket: return an error HTTP response for bad websocket request. |
| * xml: allow parsing of <_> </_>. (thanks David Crawshaw). |
| </pre> |
| |
| <h2 id="2011-11-02">2011-11-02 (new error type)</h2> |
| |
| <pre> |
| This snapshot introduces the built-in error type, defined as |
| |
| type error interface { |
| Error() string |
| } |
| |
| The error type replaces os.Error. Notice that the method name has changed from |
| String to Error. Package fmt's Print formats both Stringers and errors: |
| in general there is no need to implement both String and Error methods. |
| |
| Gofix can update most code. If you have split your package across many files, |
| it may help to use the -force=error command-line option, which forces gofix to |
| apply the error fix even if it is not obvious that a particular file needs it. |
| As always, it is a good idea to read and test the changes that gofix made |
| before committing them to your version control system. |
| </pre> |
| |
| <h2 id="2011-11-01">2011-11-01</h2> |
| |
| <pre> |
| * 6l: remove mention of -e flag - it does nothing. |
| * cc: change cas to newcase (thanks Ron Minnich). |
| * crypto/openpgp/error: use Error in names of error impl types. |
| * crypto/rsa: change public exponent from 3 to 65537. |
| * crypto/tls: add Error method to alert. |
| * doc: add link to A Tour of Go in Japanese, |
| add 'all' make rule to build all docs, |
| refer to tour.golang.org instead of go-tour.appspot.com. |
| * exp/norm: fixed bug that crept in with moving to the new regexp. |
| * exp/ssh: fix length header leaking into channel data (thanks Dave Cheney). |
| * fmt: handle os.Error values explicity (as distinct from Stringer). |
| * gc: clean up printing, |
| fix [568]g -V crash (thanks Mikio Hara), |
| test + fix escape analysis bug. |
| * go/build: avoid os.Error in tests. |
| * go/doc: remove os.NewError anti-heuristic. |
| * go/parser: test and fix := scoping bug. |
| * gob: split uses of gobError, remove unnecessary embedding. |
| * gofix: test import insertion, deletion. |
| * goinstall: intelligent vcs selection for common sites (thanks Julian Phillips). |
| * gopack: change archive file name length back to 16. |
| * html: fix print argument in test, |
| more parser improvements (thanks Andrew Balholm). |
| * json: properly handle nil slices (thanks Alexander Reece). |
| * math: improved accuracy for Sin and Cos (thanks Charles L. Dorian). |
| * misc/emacs: fix restoration of windows after gofmt (thanks Jan Newmarch). |
| * misc/vim: add rune keyword (thanks Jongmin Kim). |
| * misc/windows: can be used for amd64 (thanks Alex Brainman). |
| * net: document why we do not use SO_REUSEADDR on windows (thanks Alex Brainman). |
| * os: do not interpret 0-length read as EOF. |
| * pkg: remove .String() from some print arguments. |
| * rpc: avoid infinite loop on input error. |
| * runtime/pprof: document OS X being broken. |
| * runtime: lock the main goroutine to the main OS thread during init. |
| * spec: define that initialization is sequential. |
| * strconv: use better errors than os.EINVAL, os.ERANGE. |
| * syscall: fix Await msg on Plan 9 (thanks Andrey Mirtchovski). |
| * template: do not use error as stringer, |
| fix error checking on execute without parse (thanks Scott Lawrence). |
| * test/alias.go: additional tests. |
| * test: error-related fixes. |
| * textproto: prevent long lines in HTTP headers from causing HTTP 400 responses. |
| * time: add RFC1123 with numeric timezone format (thanks Scott Lawrence). |
| </pre> |
| |
| <h2 id="2011-10-26">2011-10-26 (new rune type)</h2> |
| |
| <pre> |
| This snapshot introduces the rune type, an alias for int that |
| should be used for Unicode code points. |
| |
| A future release of Go (after Go 1) will change rune to be an |
| alias for int32 instead of int. Using rune consistently is the way |
| to make your code build both before and after this change. |
| |
| To test your code for rune safety, you can rebuild the Go tree with |
| |
| GOEXPERIMENT=rune32 ./all.bash |
| |
| which builds a compiler in which rune is an alias for int32 instead of int. |
| |
| Also, run govet on your code to identify methods that might need to have their |
| signatures updated. |
| </pre> |
| |
| <h2 id="2011-10-25">2011-10-25</h2> |
| |
| <pre> |
| * big: make SetString return nil if an error occurs, |
| new Rat.Inv method, |
| usable zero Rat values without need for explicit initialization. |
| * codereview: show LGTMs in hg p. |
| * crypto/x509: fix names in certificate generation. |
| * exp/ssh: add experimental ssh client, |
| introduce Session to replace Cmd for interactive commands, |
| server cleanups (thanks Dave Cheney). |
| * exp/types: fix crash in parseBasicType on unknown type. |
| * fmt: don't panic formatting nil interfaces (thanks Gustavo Niemeyer). |
| * go/ast, go/token: actually run tests; fix go/ast test. |
| * gotest: explicit -help flag, use $GCFLAGS like make does. |
| * govet: check canonical dynamic method signatures. |
| * html: improved parsing (thanks Andrew Balholm), |
| parse <select> tags, parse and render comment nodes, |
| remove the Tokenizer.ReturnComments option. |
| * http: Transport: with TLS InsecureSkipVerify, skip hostname check. |
| * misc/vim: add highlighting for delete (thanks Dave Cheney). |
| * net: do not set SO_REUSEADDR for windows (thanks Alex Brainman). |
| * os/inotify: move to exp/inotify (thanks Mikio Hara). |
| * runtime: include bootstrap m in mcpu accounting (thanks Hector Chu). |
| * syscall: use uintptr for Mount flags. |
| </pre> |
| |
| <h2 id="2011-10-18">2011-10-18</h2> |
| |
| <pre> |
| This weekly snapshot includes some language and package changes that may |
| require code changes. Please read these notes carefully, as there are many |
| changes and your code will likely be affected. |
| |
| The syntax for map deletion has been changed. Code that looks like: |
| m[x] = 0, false |
| should be written as: |
| delete(m, x) |
| The compiler still accepts m[x] = 0, false for now; even so, you can use gofix |
| to rewrite such assignments into delete(m, x). |
| |
| The Go compiler will reject a return statement without arguments when any of |
| the result variables has been shadowed. Code rejected as a result of this |
| change is likely to be buggy. |
| |
| Receive-only channels (<-chan T) cannot be closed. |
| The compiler will diagnose such attempts. |
| |
| The first element of a map iteration is chosen at random. Code that depends on |
| iteration order will need to be updated. |
| |
| Goroutines may be run during program initialization. |
| |
| A string may be appended to a byte slice. This code is now legal: |
| var b []byte |
| var s string |
| b = append(b, s...) |
| |
| The gotry command and its associated try package have been deleted. |
| It was a fun experiment that - in the end - didn't carry its weight. |
| |
| The gotype tool has been moved to exp/gotype and its associated go/types |
| package has been moved to exp/types. The deprecated go/typechecker package has |
| been deleted. |
| |
| The enbflint tool has been moved to pkg/exp/ebnflint and its associated ebnf |
| package has been moved to pkg/exp/ebnf. |
| |
| The netchan package has been moved to old/netchan. |
| |
| The http/spdy package has been moved to exp/spdy. |
| |
| The exp/datafmt package has been deleted. |
| |
| The container/vector package has been deleted. Slices are better: |
| http://code.google.com/p/go-wiki/wiki/SliceTricks |
| |
| Other changes: |
| * 5l/6l/8l: correct ELFRESERVE diagnostic (thanks Anthony Martin). |
| * 6l/8l: support OS X code signing (thanks Mikkel Krautz). |
| * asn1: accept UTF8 strings as ASN.1 ANY values. |
| * big: handle aliasing correctly for Rat.SetFrac. |
| * build: add missing nuke target (thanks Anthony Martin), |
| catch future accidental dependencies to exp or old packages, |
| more robustly detect gold 2.20 (thanks Christopher Wedgwood), |
| pass $GCFLAGS to compiler, |
| stop on failed deps.bash. |
| * crypto/tls: add 3DES ciphersuites, |
| add server side SNI support, |
| fetch root CA from Windows store (thanks Mikkel Krautz), |
| fetch root certificates using Mac OS API (thanks Mikkel Krautz), |
| fix broken looping code in windows root CA fetcher (thanks Mikkel Krautz), |
| more Unix root certificate locations. |
| * crypto/x509: add code for dealing with PKIX public keys, |
| keep the raw Subject and Issuer. |
| * csv: fix overly aggressive TrimLeadingSpace. |
| * exp/ssh: general cleanups for client support (thanks Dave Cheney). |
| * exp/template/html: fix bug in cssEscaper. |
| * exp/terminal: split terminal handling from exp/ssh. |
| * exp/winfsnotify: filesystem watcher for Windows (thanks Hector Chu). |
| * fmt: fix test relying on map iteration order. |
| * gc: changes to export format in preparation for inlining, |
| pass FlagNoPointers to runtime.new, |
| preserve uint8 and byte distinction in errors and import data, |
| stricter multiple assignment + test, |
| treat uintptr as potentially containing a pointer. |
| * go/scanner: remove AllowIllegalChars mode. |
| * go/token: document deserialization property. |
| * gob: avoid one copy for every message written. |
| * godefs: add enum/const testdata (thanks Dave Cheney). |
| * godoc: generate package toc in template, not in JavaScript, |
| show "unexported" declarations when executing "godoc builtin", |
| show correct source name with -path. |
| * gofix: make fix order explicit, add mapdelete. |
| * gofmt: fix //line handling, |
| disallow rewrites for incomplete programs. |
| * gotest: avoid conflicts with the name of the tested package (thanks Esko Luontola), |
| test example code. |
| * goyacc: clean up after units (thanks Anthony Martin), |
| make more gofmt-compliant. |
| * html: add a Render function, various bug fixes and improvements, |
| parser improvements (thanks Andrew Balholm). |
| * http: DoS protection: cap non-Handler Request.Body reads, |
| RoundTrippers shouldn't mutate Request, |
| avoid panic caused by nil URL (thanks Anthony Martin), |
| fix read timeouts and closing, |
| remove Request.RawURL. |
| * image/tiff: implement PackBits decoding (thanks Benny Siegert). |
| * ld: fix "cannot create 8.out.exe" (thanks Jaroslavas Počepko). |
| * misc/emacs: add a "godoc" command, like M-x man (thanks Evan Martin). |
| * misc/swig: delete binaries (thanks Anthony Martin). |
| * misc/windows: automated toolchain packager (thanks Joe Poirier). |
| * net/windows: implement ip protocol name to number resolver (thanks Alex Brainman). |
| * net: add File method to IPConn (thanks Mikio Hara), |
| allow LookupSRV on non-standard DNS names, |
| fix "unexpected socket family" error from WriteToUDP (thanks Albert Strasheim), |
| fix socket leak in case of Dial failure (thanks Chris Farmiloe), |
| remove duplicate error information in Dial (thanks Andrey Mirtchovski), |
| return error from CloseRead and CloseWrite (thanks Albert Strasheim), |
| skip ICMP test on Windows too unless uid 0. |
| * reflect: disallow Interface method on Value obtained via unexported name, |
| make unsafe use of SliceHeader gc-friendly. |
| * rpc: don't panic on write error. |
| * runtime: faster strings, |
| fix crash if user sets MemProfileRate=0, |
| fix crash when returning from syscall during gc (thanks Hector Chu), |
| fix memory leak in parallel garbage collector. |
| * scanner: invalidate scanner.Position when no token is present. |
| * spec: define order of multiple assignment. |
| * syscall/windows: dll function load and calling changes (thanks Alex Brainman). |
| * syscall: add #ifdefs to fix the manual corrections in ztypes_linux_arm.go (thanks Dave Cheney), |
| adjust Mount to accommodate stricter FS implementations. |
| * testing: fix time reported for failing tests. |
| * utf8: add Valid and ValidString. |
| * websocket: tweak hybi ReadHandshake to support Firefox (thanks Luca Greco). |
| * xml: match Marshal's XMLName behavior in Unmarshal (thanks Chris Farmiloe). |
| </pre> |
| |
| <h2 id="2011-10-06">2011-10-06</h2> |
| |
| <pre> |
| This weekly snapshot includes changes to the io, image, and math packages that |
| may require changes to client code. |
| |
| The io package's Copyn function has been renamed to CopyN. |
| |
| The math package's Fabs, Fdim, Fmax, Fmin and Fmod functions |
| have been renamed to Abs, Dim, Max, Min, and Mod. |
| |
| Parts of the image package have been moved to the new image/color package. |
| The spin-off renames some types. The new names are simply better: |
| image.Color -> color.Color |
| image.ColorModel -> color.Model |
| image.ColorModelFunc -> color.ModelFunc |
| image.PalettedColorModel -> color.Palette |
| image.RGBAColor -> color.RGBA |
| image.RGBAColorModel -> color.RGBAModel |
| image.RGBA64Color -> color.RGBA64 |
| image.RGBA64ColorModel -> color.RGBA64Model |
| (similarly for NRGBAColor, GrayColorModel, etc) |
| The image.ColorImage type stays in the image package, but is renamed: |
| image.ColorImage -> image.Uniform |
| The image.Image implementations (image.RGBA, image.RGBA64, image.NRGBA, |
| image.Alpha, etc) do not change their name, and gain a nice symmetry: |
| an image.RGBA is an image of color.RGBA, etc. |
| The image.Black, image.Opaque uniform images remain unchanged (although their |
| type is renamed from image.ColorImage to image.Uniform). |
| The corresponding color types (color.Black, color.Opaque, etc) are new. |
| Nothing in the image/ycbcr is renamed yet. The ycbcr.YCbCrColor and |
| ycbcr.YCbCrImage types will eventually migrate to color.YCbCr and image.YCbCr, |
| at a later date. |
| |
| * 5g/6g/8g: fix loop finding bug, fix -f(), registerize variables again. |
| * 5l/6l/8l: add a DT_DEBUG dynamic tag to a dynamic ELF binary. |
| * archive/zip: read and write unix file modes (thanks Gustavo Niemeyer). |
| * build: clear execute bit from source files (thanks Mikio Hara). |
| * bytes: add EqualFold. |
| * cgo: allow Windows path characters in flag directives (thanks Joe Poirier), |
| support for mingw-w64 4.5.1 and newer (thanks Wei Guangjing). |
| * codereview: extra repo sanity check, |
| fix for Mercurial 1.9.2, |
| fix hg change in Windows console (thanks Yasuhiro Matsumoto). |
| * crypto/elliptic: use %x consistently in error print. |
| * doc/spec: remove notes about gccgo limitations, now fixed. |
| * doc: add 'Debugging Go code with GDB' tutorial, |
| fix memory model read visibility bug. |
| * encoding/binary: PutX functions require buffer of sufficient size, |
| added benchmarks, support for varint encoding. |
| * exec: add Command.ExtraFiles. |
| * exp/sql{,/driver}: new database packages. |
| * exp/ssh: move common code to common.go (thanks Dave Cheney). |
| * exp/template/html: work continues. |
| * fmt: replace channel cache with slice. |
| * gc: limit helper threads based on ncpu. |
| * go/doc, godoc, gotest: support for reading example documentation. |
| * go: documentation and skeleton implementation of new command. |
| * gob: protect against invalid message length, |
| allow sequential decoders on the same input stream. |
| * hgpatch: do not use hg exit status (thanks Yasuhiro Matsumoto). |
| * http: add Location method to Response, |
| don't send a 400 Bad Request after a client shutdown. |
| * index/suffixarray: 4.5x faster index serialization (to memory). |
| * io/ioutil: add a comment on why devNull is a ReaderFrom. |
| * json: use strings.EqualFold instead of strings.ToLower. |
| * misc/emacs: fix indent bug. |
| * net: add shutdown: TCPConn.CloseWrite and CloseRead. |
| * net: use AF_UNSPEC instead of individual address family (thanks Mikio Hara). |
| * path/filepath: added Rel as the complement of Abs (thanks Gustavo Niemeyer). |
| * pkg/syscall: add Mkfifo for linux platforms. |
| * regexp: move to old/regexp, replace with exp/regexp, speedups. |
| * runtime/gdb: fix pretty printing of channels, |
| gracefully handle not being able to find types. |
| * runtime: check for nil value pointer in select syncsend case, |
| faster finalizers, |
| fix malloc sampling bug, |
| fix map memory leak, |
| fix spurious deadlock reporting, |
| fix usleep on linux/386 and re-enable parallel gc (thanks Hector Chu), |
| parallelize garbage collector mark + sweep. |
| * strconv: faster Unquote in common case. |
| * strings: add EqualFold, Replacer, NewReplacer. |
| * suffixarray: add benchmarks for construction (thanks Eric Eisner). |
| * syscall: add GetsockoptByte, SetsockoptByte for openbsd (thanks Mikio Hara), |
| add IPv4 ancillary data for linux (thanks Mikio Hara), |
| mark stdin, stdout, stderr non-inheritable by child processes (thanks Alex Brainman), |
| mksyscall_windows.pl creates non-syscall packages (thanks Jaroslavas Počepko), |
| update multicast socket options (thanks Mikio Hara). |
| * testing: support for running tests in parallel (thanks Miki Tebeka). |
| * time: make month/day name comparisons case insenstive. |
| * unicode: fix make tables. |
| * vim: Send GoFmt errors to a location list (thanks Paul Sbarra). |
| * websocket: add hybi-13 support, add mutex to make websocket full-duplex. |
| </pre> |
| |
| <h2 id="2011-09-21">2011-09-21</h2> |
| |
| <pre> |
| This weekly contains several improvements, bug fixes, and new packages. |
| |
| * archive/tar: document Header fields and Type flags (thanks Mike Rosset). |
| * bytes: fix Replace so it actually copies (thanks Gustavo Niemeyer). |
| * cgo: use GOARCH from the environment (thanks Jaroslavas Počepko). |
| * codereview: save CL messages in $(hg root)/last-change. |
| * crypto/bcrypt: new package (thanks Jeff Hodges). |
| * crypto/blowfish: exposing the blowfish key schedule (thanks Jeff Hodges). |
| * doc: link to golang-france. |
| * doc: when configuring gold for gccgo, use --enable-gold=default. |
| * exp/norm: changed trie to produce smaller tables. |
| * exp/ssh: new package, |
| refactor halfConnection to transport (thanks Dave Cheney). |
| * exp/template/html: more fixes and improvements. |
| * filepath: fix Glob to return no error on nonmatching patterns. |
| * gc: disallow invalid map keys, |
| handle complex CONVNOP. |
| * gob: allocation fixes. |
| * godoc: simplify internal FileSystem interface. |
| * http/cgi: clean up environment (thanks Yasuhiro Matsumoto). |
| * http: always include Content-Length header, even for 0 (thanks Dave Grijalva), |
| check explicit wrong Request.ContentLength values, |
| fix TLS handshake blocking server accept loop, |
| prevent DumpRequest from adding implicit headers. |
| * httptest: add NewUnstartedServer. |
| * json: clearer Unmarshal doc, |
| skip nil in UnmarshalJSON and (for symmetry) MarshalJSON. |
| * net: use /etc/hosts first when looking up IP addresses (thanks Andrey Mirtchovski). |
| * reflect: add comment about the doubled semantics of Value.String. |
| * runtime: implement pprof support for windows (thanks Hector Chu), |
| increase stack system space on windows/amd64 (thanks Hector Chu). |
| * suffixarray: generate less garbage during construction (thanks Eric Eisner), |
| improved serialization code using gob instead of encoding/binary. |
| * sync/atomic: replace MFENCE with LOCK XADD. |
| </pre> |
| |
| <h2 id="2011-09-16">2011-09-16</h2> |
| |
| <pre> |
| This weekly snapshot includes changes to the image, path/filepath, and time |
| packages. Code that uses these packages may need to be updated. |
| |
| The image package's NewX functions (NewRGBA, NewNRGBA, etc) have been changed |
| to take a Rectangle argument instead of a width and height. |
| Gofix can make these changes automatically. |
| |
| The path/filepath package's Walk function has been changed to take a WalkFunc |
| function value instead of a Visitor interface value. WalkFunc is like the |
| Visitor's VisitDir and VisitFile methods except it handles both files and |
| directories: |
| func(path string, info *os.FileInfo, err os.Error) os.Error |
| To skip walking a directory (like returning false from VisitDir) the WalkFunc |
| must return SkipDir. |
| |
| The time package's Time struct's Weekday field has been changed to a method. |
| The value is calculated on demand, avoiding the need to re-parse |
| programmatically-constructed Time values to find the correct weekday. |
| |
| There are no gofixes for the filepath or time API changes, but instances of the |
| old APIs will be caught by the compiler. The Weekday one is easy to update by |
| hand. The Walk one may take more consideration, but will have fewer instances |
| to fix. |
| |
| * build: add build comments to core packages. |
| * codereview: Mercurial 1.9 fix for hg diff @nnn. |
| * crypto/tls: handle non-TLS more robustly, |
| support SSLv3. |
| * debug/elf: permit another case of SHT_NOBITS section overlap in test. |
| * exm/template/html: more work on this auto-escaping HTML template package. |
| * exp/norm: added regression test tool for the standard Unicode test set. |
| * exp/regexp/syntax: fix invalid input parser crash, |
| import all RE2 parse tests + fix bugs. |
| * exp/regexp: add MustCompilePOSIX, CompilePOSIX, leftmost-longest matching. |
| * flag: make zero FlagSet useful. |
| * gc: clean up if grammar. |
| * go/build: handle cgo, // +build comments. |
| * go/printer: use panic/defer instead of goroutine for handling errors. |
| * go/token: support to serialize file sets. |
| * godoc, suffixarray: switch to exp/regexp. |
| * godoc: show packages matching a query at the top, |
| support for complete index serialization, |
| use go/build to find files in a package. |
| * gofmt: accept program fragments on standard input, add else test. |
| * http/cgi: add openbsd environment configuration. |
| * http: document that Response.Body is non-nil. |
| * image/png: don't use a goroutine to decode, to permit decode during init. |
| * json: if a field's tag is "-", ignore the field for encoding and decoding. |
| * ld: grow dwarf includestack on demand. |
| * net, syscall: implement SetsockoptIPMReq(), and |
| move to winsock v2.2 for multicast support (thanks Paul Lalonde). |
| * net: add a LookupTXT function. |
| * os: os.RemoveAll to check for wboth error codes on Windows (thanks Jaroslavas Počepko). |
| * path/filepath: fix Visitor doc (thanks Gustavo Niemeyer), |
| make UNC file names work (thanks Yasuhiro Matsumoto). |
| * runtime: optimizations to channels on Windows (thanks Hector Chu), |
| syscall to return both AX and DX for windows/386 (thanks Alex Brainman). |
| * sync/atomic: add 64-bit Load and Store. |
| * syscall: add route flags for linux (thanks Mikio Hara). |
| * test: add test for inheriting private method from anonymous field. |
| * websocket: fix infinite recursion in Addr.String() (thanks Tarmigan Casebolt), |
| rename websocket.WebSocketAddr to *websocket.Addr. |
| </pre> |
| |
| <h2 id="2011-09-07">2011-09-07</h2> |
| |
| <pre> |
| This weekly snapshot consists of improvements and bug fixes, including fixes |
| for issues introduced by escape analysis changes in the gc compiler. |
| |
| * build: clear execute bit from Go files (thanks Mike Rosset), |
| error out if problem with sudo.bash /usr/local/bin (thanks Mike Rosset). |
| * exp/norm: add Reader and Writer, |
| performance improvements of quickSpan. |
| * exp/regexp: bug fixes and RE2 tests. |
| * exp/template/html: string replacement refactoring, |
| tweaks to js{,_test}.go. |
| * gc: add -p flag to catch import cycles earlier, |
| fix label recursion bugs, |
| fix zero-length struct eval, |
| zero stack-allocated slice backing arrays, |
| * gc, ld: fix Windows file paths (thanks Hector Chu). |
| * go/parser: accept corner cases of signature syntax. |
| * gobuilder: ignore _test.go files when looking for docs, more logging. |
| * godoc: minor tweaks for App Engine use. |
| * gofix: do not convert url in field names (thanks Gustavo Niemeyer). |
| * gofmt: indent multi-line signatures. |
| * gopprof: regexp fixes (thanks Hector Chu). |
| * image/png: check zlib checksum during Decode. |
| * libmach: fix incorrect use of memset (thanks Dave Cheney). |
| * misc/goplay: fix template output. |
| * net: ParseCIDR returns IPNet instead of IPMask (thanks Mikio Hara), |
| sync CIDRMask code, doc. |
| * os: use GetFileAttributesEx to implement Stat on windows (thanks Alex Brainman). |
| * runtime: fix openbsd 386 raisesigpipe, |
| implement exception handling on windows/amd64 (thanks Hector Chu), |
| test for concurrent channel consumers (thanks Christopher Wedgwood). |
| * sort: use heapsort to bail out quicksort (thanks Ziad Hatahet). |
| * sync/atomic: add LoadUintptr, add Store functions. |
| * syscall: update routing message attributes handling (thanks Mikio Hara). |
| * template: fix deadlock, |
| indirect or dereference function arguments if necessary, |
| slightly simplify the test for assignability of arguments. |
| * url: handle ; in ParseQuery. |
| * websocket: fix incorrect prints found by govet (thanks Robert Hencke). |
| </pre> |
| |
| <h2 id="2011-09-01">2011-09-01</h2> |
| |
| <pre> |
| This weekly contains performance improvements and bug fixes. |
| |
| The gc compiler now does escape analysis, which improves program performance |
| by placing variables on the call stack instead of the heap when it is safe to |
| do so. |
| |
| The container/vector package is deprecated and will be removed at some point |
| in the future. |
| |
| Other changes: |
| * archive/tar: support symlinks. (thanks Mike Rosset) |
| * big: fix nat.scan bug. (thanks Evan Shaw) |
| * bufio: handle a "\r\n" that straddles the buffer. |
| add openbsd. |
| avoid redundant bss declarations. |
| fix unused parameters. |
| fix windows/amd64 build with newest mingw-w64. (thanks Hector Chu) |
| * bytes: clarify that NewBuffer is not for beginners. |
| * cgo: explain how to free something. |
| fix GoBytes. (thanks Gustavo Niemeyer) |
| fixes callback for windows amd64. (thanks Wei Guangjing) |
| note that CString result must be freed. (thanks Gustavo Niemeyer) |
| * cov: remove tautological #defines. (thanks Lucio De Re) |
| * dashboard: yet another utf-8 fix. |
| * doc/codelab/wiki: fix Makefile. |
| * doc/progs: fix windows/amd64. (thanks Jaroslavas Počepko) |
| * doc/tmpltohtml: update to new template package. |
| * doc: emphasize that environment variables are optional. |
| * effective_go: convert to use tmpltohtml. |
| * exp/norm: reduced the size of the byte buffer used by reorderBuffer by half by reusing space when combining. |
| a few minor fixes to support the implementation of norm. |
| added implementation for []byte versions of methods. |
| * exp/template/html: add some tests for ">" attributes. |
| added handling for URL attributes. |
| differentiate URL-valued attributes (such as href). |
| reworked escapeText to recognize attr boundaries. |
| * exp/wingui: made compatible with windows/amd64. (thanks Jaroslavas Počepko) |
| * flag: add Parsed, restore Usage. |
| * gc: add openbsd. |
| escape analysis. |
| fix build on Plan 9. (thanks Lucio De Re) |
| fix div bug. |
| fix pc/line table. (thanks Julian Phillips) |
| fix some spurious leaks. |
| make static initialization more static. |
| remove JCXZ; add JCXZW, JCXZL, and JCXZQ instructions. (thanks Jaroslavas Počepko) |
| shuffle #includes. |
| simplify escape analysis recursion. |
| tweak and enable escape analysis. |
| * go/ast cleanup: base File/PackageExports on FilterFile/FilterPackage code. |
| adjustments to filter function. |
| fix ast.MergePackageFiles to collect infos about imports. (thanks Sebastien Binet) |
| generalize ast.FilterFile. |
| * go/build: add test support & use in gotest. |
| separate test imports out when scanning. (thanks Gustavo Niemeyer) |
| * go/parser: fix type switch scoping. |
| fix type switch scoping. |
| * gob: explain that Debug isn't useful unless it's compiled in. |
| * gobuilder: increase log limit. |
| * godashboard: fix utf-8 in user names. |
| * godoc: first step towards reducing index size. |
| add dummy playground.js to silence godoc warning at start-up. |
| added systematic throttling to indexing goroutine. |
| fix bug in zip.go. |
| support for reading/writing (splitted) index files. |
| use virtual file system when generating package synopses. |
| * gofix: forgot to rename the URL type. |
| osopen: fixed=true when changing O_CREAT. (thanks Tarmigan Casebolt) |
| * goinstall: error out with paths that end with '/'. (thanks Tarmigan Casebolt) |
| report lack of $GOPATH on errors. (thanks Gustavo Niemeyer) |
| select the tag that is closest to runtime.Version. |
| * gotry: add missing $. (thanks Tarmigan Casebolt) |
| * http: add MaxBytesReader to limit request body size. |
| add file protocol transport. |
| adjust test threshold for larger suse buffers. |
| delete error kludge. |
| on invalid request, send 400 response. |
| return 413 instead of 400 when the request body is too large. (thanks Dave Cheney) |
| support setting Transport's TLS client config. |
| * image/tiff: add a decode benchmark. (thanks Benny Siegert) |
| decoder optimization. (thanks Benny Siegert) |
| * image: add PalettedImage interface, and make image/png recognize it. (thanks Jaroslavas Počepko) |
| * io: add TeeReader. (thanks Hector Chu) |
| * json: add struct tag option to wrap literals in strings. |
| calculate Offset for Indent correctly. (thanks Jeff Hodges) |
| fix decode bug with struct tag names with ,opts being ignored. |
| * ld: handle Plan 9 ar format. (thanks Lucio De Re) |
| remove duplicate bss definitions. |
| * libmach: support reading symbols from Windows .exe for nm. (thanks Mateusz Czapliński) |
| * math: fix Pow10 loop. (thanks Volker Dobler) |
| * mime: ParseMediaType returns os.Error now, not a nil map. |
| media type formatter. (thanks Pascal S. de Kloe) |
| text charset defaults. (thanks Pascal S. de Kloe) |
| * misc/dashboard: remove limit for json package list. |
| * misc/emacs: refine label detection. |
| * net: add ParseMAC function. (thanks Paul Borman) |
| change the internal form of IPMask for IPv4. (thanks Mikio Hara) |
| disable "tcp" test on openbsd. |
| fix windows build. (thanks Alex Brainman) |
| join and leave a IPv6 group address, on a specific interface. (thanks Mikio Hara) |
| make use of IPv4len, IPv6len. (thanks Mikio Hara) |
| move internal string manipulation routines to parse.go. (thanks Mikio Hara) |
| * os: disable Hostname test on OpenBSD. |
| fix WNOHANG Waitmsg. (thanks Gustavo Niemeyer) |
| * reflect: add Value.Bytes, Value.SetBytes methods. |
| * rpc: add benchmark for async rpc calls. |
| * runtime: add openbsd 386 defs.h. |
| add runtime support for openbsd 386. |
| add runtime· prefix to showframe. |
| ctrlhandler for windows amd64. (thanks Wei Guangjing) |
| fix stack cleanup on windows/amd64. (thanks Hector Chu) |
| fix void warnings. |
| go interface to cdecl calbacks. (thanks Jaroslavas Počepko) |
| handle string + char literals in goc2c. |
| make arm work on Ubuntu Natty qemu. |
| openbsd thread tweaks. |
| simplify stack traces. |
| speed up cgo calls. (thanks Alex Brainman) |
| use cgo runtime functions to call windows syscalls. (thanks Alex Brainman) |
| windows/amd64 callbacks fixed and syscall fixed to allow using it in callbacks. (thanks Jaroslavas Počepko) |
| * strconv: put decimal on stack. |
| * spec: update section on Implementation Differences. |
| * syscall: SOMAXCONN should be 0x7fffffff at winsock2. (thanks Yasuhiro Matsumoto) |
| add openbsd 386. |
| handle RTM_NEWROUTE in ParseNetlinkRouteAttr on Linux. (thanks Albert Strasheim) |
| handle routing entry in ParseRoutingSockaddr on BSD variants. (thanks Mikio Hara) |
| openbsd amd64 syscall support. |
| use the vdso page on linux x86 for faster syscalls instead of int $0x80. (thanks Yuval Pavel Zholkover) |
| * template/parse: give if, range, and with a common representation. |
| * template: grammar fix for template documentation. (thanks Bill Neubauer) |
| range over channel. |
| remove else and end nodes from public view. |
| * test: put GOROOT/bin before all others in run. |
| * time: fix Plan 9 build. (thanks Fazlul Shahriar) |
| fix zone during windows test. |
| * type switches: test for pathological case. |
| * version.bash: update VERSION on -save if already present. (thanks Gustavo Niemeyer) |
| * websocket: implements new version of WebSocket protocol. (thanks Fumitoshi Ukai) |
| * windows/386: clean stack after syscall. (thanks Jaroslavas Počepko) |
| * xml: marshal "parent>child" tags correctly. (thanks Ross Light) |
| </pre> |
| |
| <h2 id="2011-08-17">2011-08-17 (<a href="release.html#r60">base for r60</a>)</h2> |
| |
| <pre> |
| This weekly contains some package re-shuffling. Users of the http and |
| template packages may be affected. |
| |
| This weekly replaces the template package with exp/template. |
| The original template package is still available as old/template. |
| The old/template package is deprecated and will be removed at some point |
| in the future. The Go tree has been updated to use the new template package. |
| We encourage users of the old template package to switch to the new one. |
| Code that uses template or exp/template will need to change |
| its import lines to "old/template" or "template", respectively. |
| |
| The http package's URL parsing and query escaping code (such as ParseURL and |
| URLEscape) has been moved to the new url package, with several simplifications |
| to the names. Client code can be updated automatically with gofix. |
| |
| * asn1: support unmarshalling structs with int32 members (thanks Dave Cheney). |
| * build: allow builds without cgo or hg, |
| support versioning without hg (thanks Gustavo Niemeyer). |
| * builtin: add documentation for builtins. |
| * cgo: omit duplicate symbols in writeDefs (thanks Julian Phillips). |
| * misc: add support for OpenBSD. |
| * doc/codewalk: new Markov chain codewalk. |
| * exp/norm: added trie lookup code and associated tests, |
| generate trie struct in triegen.go for better encapsulation, |
| implementation of decomposition and composing functionality. |
| * exp/template/html: new experimental package for auto-escaping HTML templates. |
| * exp/template: don't panic on range of nil interface, |
| rename Parse*File and Parse*Files for clarity, |
| support field syntax on maps (thanks Gustavo Niemeyer), and |
| many other fixes and changes. |
| * gc: implement nil chan and nil map support. |
| * go/parser: range clause and type literal fixes. |
| * godoc: show all top-level decls for (fake) package builtin. |
| * goinstall: really report all newly-installed public packages. |
| * html: parse more malformed tags. |
| * http: fix ParseMultipartForm after MultipartReader error, |
| fix side effects in DefaultTransport's RoundTrip method (thanks Dave Grijalva). |
| * json: fix []unmarshaler case. |
| * ld: make addaddrplus4 static (thanks Lucio De Re). |
| * syscall: move multicast address handling to the net package. |
| * net: Plan 9 support (thanks Fazlul Shahriar), |
| add SetTimeout to Listener interface (thanks Aleksandar Dezelin), |
| add multicast stubs for OpenBSD, |
| return correct local address for an accepted TCP connection (thanks Mikio Hara). |
| * reflect: panic on Invalid Interface call (thanks Gustavo Niemeyer). |
| * rpc: implement ServeRequest to synchronously serve a single request, |
| make Server.Mutex unexported. |
| * runtime: better checks for syscall.NewCallback parameter (thanks Alex Brainman), |
| correct SEH installation during callbacks (thanks Alex Brainman), |
| fix GC bitmap corruption, |
| fix pseudo-randomness on some selects (thanks Gustavo Niemeyer). |
| * syscall: make LazyDLL/LazyProc.Mutex unexported. |
| * test: allow multiple patterns in errchk, |
| new nil semantics. |
| * time: take fractional seconds even if not in the format string. |
| * url: new package. |
| * utf8: rename some internal constants to remove leading underscores. |
| * xml: escape string chardata in xml.Marshal. |
| </pre> |
| |
| <h2 id="2011-08-10">2011-08-10</h2> |
| |
| <pre> |
| This weekly contains performance improvements and bug fixes. |
| |
| There are no outward-facing changes, but imports of the old-style |
| container/vector package have also been removed from the core library (thanks |
| John Asmuth, Kyle Consalus). |
| |
| Other changes: |
| |
| * 5g: fix set but not used error (thanks Dave Cheney). |
| * cmd/ld: Corrected mismatched print formats and variables (thanks Lucio De Re). |
| * errchk: add -0 flag. |
| * exp/norm: fix build by adding a test placeholder, |
| maketables tool for generating tables for normalization. |
| * exp/template: bug fixes, |
| ensure that a valid Set is returned even on error (thanks Roger Peppe), |
| make index on maps return zero when key not present (thanks Roger Peppe), |
| split the parse tree into a separate package exp/template/parse, |
| add url query formatting filter. |
| * faq: lots of small tweaks plus a couple of new discussions, |
| variant types, unions. |
| * fmt: call UpdateMemStats in malloc counter. |
| * go/build: use GOBIN as binary path for GOROOT. |
| * gob: add UpdateMemStats calls to malloc counter, |
| avoid a couple of init-time allocations, |
| don't invoke GobEncoder on zero values. |
| * gofmt: update test script so 'make test' succeeds. |
| * html: parse doctype tokens; merge adjacent text nodes. |
| * http: add more MPEG-4 MIME types to sniffer, and disable MP4 sniffing, |
| add test to serve content in index.html (thanks Yasuhiro Matsumoto), |
| configurable and default request header size limit, |
| correct format flags when printing errors in tests (thanks Alex Brainman), |
| correct path to serve index.html (thanks Yasuhiro Matsumoto), |
| * ld: add one empty symbol into pe to make dumpbin works (thanks Wei Guangjing), |
| fail linking if the top-level package is not main. |
| * misc/vim: godoc command (thanks Yasuhiro Matsumoto). |
| * net: add support for openbsd (thanks Joel Sing), |
| fix /proc/net/igmp,igmp6 reading bug on linux (thanks Mikio Hara), |
| implement windows LookupMX and LookupAddr (thanks Mikio Hara), |
| sort SRV records before returning from LookupSRV (thanks Alex Brainman), |
| * os: add support for openbsd (thanks Joel Sing). |
| * runtime: add more specialized type algorithms, |
| correct Note documentation, |
| faster chan creation on Linux/FreeBSD/Plan9, |
| openbsd amd64 runtime support (thanks Joel Sing), |
| remove unnecessary locking (thanks Hector Chu). |
| * scanner: correct error position for illegal UTF-8 encodings. |
| * syscall: delay load of dll functions on Windows (thanks Alex Brainman), |
| move BSD mmap syscall (thanks Joel Sing), |
| update routing message support for BSD variants (thanks Mikio Hara). |
| * test/bench: note changes after recent improvements to locking and runtime. |
| * time: add nanoseconds to the Time structure, |
| parse and format fractional seconds. |
| </pre> |
| |
| <h2 id="2011-07-29">2011-07-29</h2> |
| |
| <pre> |
| This weekly contains performance improvements and many bug fixes. |
| |
| * 6l: OpenBSD support. |
| * archive/zip: handle zip files with more than 65535 files, |
| more efficient reader and bug fix. |
| * big: refine printf formatting and optimize string conversion. |
| * build: fixes for mingw-w64 (thanks Wei Guangjing), |
| miscellaneous fixes. |
| * cgo: add GoBytes, fix gmp example. |
| * exp/norm: API for normalization library. |
| * exp/regexp: implement regexp API using exp/regexp/syntax. |
| * exp/template: more tweaks and fixes, convert the tree to use exp/template. |
| * fmt: handle precision 0 format strings in standard way. |
| * gc: a raft of bug fixes. |
| * go/parser: report illegal label declarations at ':'. |
| * gob: send empty but non-nil maps. |
| * godoc: allow form feed in text files, |
| app engine configuration and updated documentation. |
| * goinstall: abort and warn when using any url scheme, not just 'http://', |
| write to goinstall.log in respective GOPATH. |
| * html: handle character entities without semicolons (thanks Andrew Balholm), |
| parse misnested formatting tags according to the HTML5 spec, |
| sync html/testdata/webkit with upstream WebKit. |
| * http: content-type sniffing, |
| make serveFile redirects relative (thanks Andrew Balholm), |
| other fixes. |
| * image/tiff: Do not panic when RowsPerStrip is missing (thanks Benny Siegert). |
| * io/ioutil: improve performance of ioutil.Discard (thanks Mike Solomon). |
| * ld: detect all import cycles, |
| ldpe fixes (thanks Wei Guangjing), |
| remove cseekend and redo pe writing (thanks Alex Brainman), |
| remove overlap of ELF sections on dynamic binaries (thanks Gustavo Niemeyer). |
| * net/textproto: avoid 1 copy in ReadLine, ReadContinuedLine. |
| * net: fix memory corruption in windows *netFD.ReadFrom (thanks Alex Brainman). |
| * runtime: faster entersyscall/exitsyscall, |
| fix scheduler races (thanks Hector Chu), |
| higher goroutine arg limit, clearer error, |
| parallelism-related performance optimizations and fixes, |
| replace byte-at-a-time zeroing loop with memclr (thanks Quan Yong Zhai). |
| * sort: fix Float64Slice sort; NaN smallest value (thanks Florian Uekermann). |
| * src: removed some uses of container/vector (thanks John Asmuth). |
| * sync: improve Once fast path. |
| * unicode: fix case-mapping for roman numerals. |
| </pre> |
| |
| <h2 id="2011-07-19">2011-07-19</h2> |
| |
| <pre> |
| This weekly snapshot includes a language change and a change to the image |
| package that may require changes to client code. |
| |
| The language change is that an "else" block is now required to have braces |
| except if the body of the "else" is another "if". Since gofmt always puts those |
| braces in anyway, programs will not be affected unless they contain "else for", |
| "else switch", or "else select". Run gofmt to fix any such programs. |
| |
| The image package has had significant changes made to the Pix field of struct |
| types such as image.RGBA and image.NRGBA. The image.Image interface type has |
| not changed, though, and you should not need to change your code if you don't |
| explicitly refer to Pix fields. For example, if you decode a number of images |
| using the image/jpeg package, compose them using image/draw, and then encode |
| the result using image/png, then your code should still work as before. |
| |
| If you do explicitly refer to Pix fields, there are two changes. First, Pix[0] |
| now refers to the pixel at Bounds().Min instead of the pixel at (0, 0). Second, |
| the element type of the Pix slice is now uint8 instead of image.FooColor. For |
| example, for an image.RGBA, the channel values will be packed R, G, B, A, R, G, |
| B, A, etc. For 16-bits-per-channel color types, the pixel data will be stored |
| as big-endian uint8s. |
| |
| Most Pix field types have changed, and so if your code still compiles after |
| this change, then you probably don't need to make any further changes (unless |
| you use an image.Paletted's Pix field). If you do get compiler errors, code |
| that used to look like this: |
| |
| // Get the R, G, B, A values for the pixel at (x, y). |
| var m *image.RGBA = loadAnImage() |
| c := m.Pix[y*m.Stride + x] |
| r, g, b, a := c.R, c.G, c.B, c.A |
| |
| should now look like this: |
| |
| // Get the R, G, B, A values for the pixel at (x, y). |
| var m *image.RGBA = loadAnImage() |
| i := (y-m.Rect.Min.Y)*m.Stride + (x-m.Rect.Min.X)*4 |
| r := m.Pix[i+0] |
| g := m.Pix[i+1] |
| b := m.Pix[i+2] |
| a := m.Pix[i+3] |
| |
| This image package change will not be fixed by gofix: how best to translate |
| code into something efficient and idiomatic depends on the surrounding context, |
| and is not easily automatable. Examples of what to do can be found in the |
| changes to image/draw/draw.go in http://codereview.appspot.com/4675076/ |
| |
| Other changes: |
| * 6l: change default output name to 6.out.exe on windows (thanks Alex Brainman). |
| * archive/zip: add Writer, |
| add Mtime_ns function to get modified time in sensible format. |
| * cc, ld, gc: fixes for Plan 9 build (thanks Lucio De Re). |
| * cgi: close stdout reader pipe when finished. |
| * cgo: add missing semicolon in generated struct, |
| windows amd64 port (thanks Wei Guangjing). |
| * codereview: fix for Mercurial 1.9. |
| * dashboard: list "most installed this week" with rolling count. |
| * debug/elf: read ELF Program headers (thanks Matthew Horsnell). |
| * debug/pe: fixes ImportedSymbols for Win64 (thanks Wei Guangjing). |
| * debug/proc: remove unused package. |
| * doc/talks/io2010: update with gofix and handle the errors. |
| * exp/eval, exp/ogle: remove packages eval and ogle. |
| * exp/regexp/syntax: add Prog.NumCap. |
| * exp/template: API changes, bug fixes, and tweaks. |
| * flag: make -help nicer. |
| * fmt: Scan(&int) was mishandling a lone digit. |
| * gc: fix closure bug, |
| fix to build with clang (thanks Dave Cheney), |
| make size of struct{} and [0]byte 0 bytes (thanks Robert Hencke), |
| some enhancements to printing debug info. |
| * gif: fix local color map and coordinates. |
| * go/build: fixes for windows (thanks Alex Brainman), |
| include processing of .c files for cgo packages (thanks Alex Brainman), |
| less aggressive failure when GOROOT not found. |
| * go/printer: changed max. number of newlines from 3 to 2. |
| * gob: register more slice types (thanks Bobby Powers). |
| * godoc: support for file systems stored in .zip files. |
| * goinstall, dashboard: Google Code now supports git (thanks Tarmigan Casebolt). |
| * hash/crc32: add SSE4.2 support. |
| * html: update section references in comments to the latest HTML5 spec. |
| * http: drain the pipe output in TestHandlerPanic to avoid logging deadlock, |
| fix Content-Type of file extension (thanks Yasuhiro Matsumoto), |
| implement http.FileSystem for zip files, |
| let FileServer work when path doesn't begin with a slash, |
| support for periodic flushing in ReverseProxy. |
| * image/draw: add benchmarks. |
| * json: add omitempty struct tag option, |
| allow using '$' and '-' as the struct field's tag (thanks Mikio Hara), |
| encode \r and \n in strings as e.g. "\n", not "\u000A" (thanks Evan Martin), |
| escape < and > in any JSON string for XSS prevention. |
| * ld: allow seek within write buffer< |
| add a PT_LOAD PHDR entry for the PHDR (thanks David Anderson). |
| * net: windows/amd64 port (thanks Wei Guangjing). |
| * os: plan9: add Process.Signal as a way to send notes (thanks Yuval Pavel Zholkover). |
| * os: don't permit Process.Signal after a successful Wait. |
| * path/filepath: fixes for windows paths (thanks Alex Brainman). |
| * reflect: add Value.NumMethod, |
| panic if Method index is out of range for a type. |
| * runtime: faster entersyscall, exitsyscall, |
| fix panic for make(chan [0]byte), |
| fix subtle select bug (thanks Hector Chu), |
| make goc2c build on Plan 9 (thanks Lucio De Re), |
| make TestSideEffectOrder work twice, |
| several parallelism-related optimizations and fixes, |
| stdcall_raw stack 16byte align for Win64 (thanks Wei Guangjing), |
| string-related optimizations (thanks Quan Yong Zhai), |
| track running goroutine count. |
| * strconv: handle [-+]Infinity in atof. |
| * sync: add fast paths to WaitGroup, |
| improve RWMutex performance. |
| * syscall: add Flock on Linux, |
| parse and encode SCM_RIGHTS and SCM_CREDENTIALS (thanks Albert Strasheim). |
| </pre> |
| |
| <h2 id="2011-07-07">2011-07-07 (<a href="release.html#r59">base for r59</a>)</h2> |
| |
| <pre> |
| This weekly snapshot includes changes to the strings, http, reflect, json, and |
| xml packages. Code that uses these packages will need changes. Most of these |
| changes can be made automatically with gofix. |
| |
| The strings package's Split function has itself been split into Split and |
| SplitN. SplitN is the same as the old Split. The new Split is equivalent to |
| SplitN with a final argument of -1. |
| |
| The http package has a new FileSystem interface that provides access to files. |
| The FileServer helper now takes a FileSystem argument instead of an explicit |
| file system root. By implementing your own FileSystem you can use the |
| FileServer to serve arbitrary data. |
| |
| The reflect package supports a new struct tag scheme that enables sharing of |
| struct tags between multiple packages. |
| In this scheme, the tags must be of the form: |
| key:"value" key2:"value2" |
| reflect.StructField's Tag field now has type StructTag (a string type), which |
| has method Get(key string) string that returns the associated value. |
| Clients of json and xml will need to be updated. Code that says |
| type T struct { |
| X int "name" |
| } |
| should become |
| type T struct { |
| X int `json:"name"` // or `xml:"name"` |
| } |
| Use govet to identify struct tags that need to be changed to use the new syntax. |
| |
| Other changes: |
| * 5l, 6l, 8l: drop use of ed during build. |
| * asn1: support T61 and UTF8 string. |
| * bufio: do not cache Read errors (thanks Graham Miller). |
| * build: make version.bash aware of branches. |
| * cgi: don't depend on CGI.pm for tests. |
| * codereview: make --ignore_hgpatch_failure work again, |
| restrict sync to default branch. |
| * crypto/openpgp: add ability to reserialize keys, |
| bug fix (thanks Gideon Jan-Wessel Redelinghuys). |
| * crypto/tls: fix generate_cert.go. |
| * crypto/x509: prevent chain cycles in Verify. |
| * csv: new package. |
| * doc: remove ed from apt-get package list. |
| * docs: fold the prog.sh scripting from makehtml into htmlgen itself. |
| * ebnflint: better handling of stdin. |
| * exp/regexp/syntax: new experimental RE2-based regexp implementation. |
| * exp/template: a new experimental templating package. |
| * fmt: add SkipSpace to fmt's ScanState interface. |
| * fmt: rename errno and error to err for doc consistency. |
| * gc: avoid package name ambiguity in error messages, |
| fix package quoting logic, |
| fixes for Plan 9 (thanks Lucio De Re). |
| * go/build: evaluate symlinks before comparing path to GOPATH. |
| * gob: use exported fields in structs in the package documentation. |
| * godoc: ignore directories that begin with '.', |
| search GOPATH for documentation. |
| * gofix: os/signal, path/filepath, and sort fixes (thanks Robert Hencke), |
| * goinstall: add support for generic hosts (thanks Julian Phillips), |
| only report successfully-installed packages to the dashboard, |
| try to access via https (thanks Yasuhiro Matsumoto). |
| * gotest: add -test.benchtime and -test.cpu flags. |
| * html: fixes and improvements (thanks Yasuhiro Matsumoto). |
| * http/cgi: add Handler.Dir to specify working directory (thanks Yasuhiro Matsumoto). |
| * http: add StripPrefix handler wrapper, |
| assume ContentLength 0 on GET requests, |
| better handling of 0-length Request.Body, |
| do TLS handshake explicitly before copying TLS state, |
| document that ServerConn and ClientConn are low-level, |
| make NewChunkedReader public (thanks Andrew Balholm), |
| respect Handlers setting Connection: close in their response. |
| * image: more tests, Paletted.Opaque optimization. |
| * io.WriteString: if the object has a WriteString method, use it (thanks Evan Shaw). |
| * ld: elide the Go symbol table when using -s (thanks Anthony Martin). |
| * ld: fix ELF strip by removing overlap of sections (thanks Gustavo Niemeyer). |
| * mime/multipart: parse LF-delimited messages, not just CRLF. |
| * mime: permit lower-case media type parameters (thanks Pascal S. de Kloe). |
| * misc/dashboard: new features and improvements (not yet deployed). |
| * misc/emacs: update list of builtins (thanks Quan Yong Zhai). |
| * misc/vim: allow only utf-8 for file encoding (thanks Yasuhiro Matsumoto). |
| * os: fix documentation for FileInfo.Name, |
| simplify WriteString, |
| use a different symbol from syscall in mkunixsignals.sh. |
| * path/filepath: enable TestWalk to run on windows (thanks Alex Brainman). |
| * reflect: add MethodByName, |
| allow Len on String values. |
| * regexp: document that Regexp is thread-safe. |
| * runtime/cgo: check for errors from pthread_create (thanks Albert Strasheim). |
| * runtime: add Semacquire/Semrelease benchmarks, |
| improved Semacquire/Semrelease implementation, |
| windows/amd64 port (thanks Wei Guangjing). |
| * sync: add fast path to Once, |
| improve Mutex to allow successive acquisitions, |
| new and improved benchmarks. |
| * syscall: regenerate zerrors for darwin/linux/freebsd, |
| support for tty options in StartProcess (thanks Ken Rockot). |
| * testing: make ResetTimer not start/stop the timer, |
| scale benchmark precision to 0.01ns if needed. |
| * time: zero-pad two-digit years. |
| * unicode/maketables: update debugging data. |
| * windows: define and use syscall.Handle (thanks Wei Guangjing). |
| * xml: add Marshal and MarshalIndent. |
| </pre> |
| |
| <h2 id="2011-06-23">2011-06-23</h2> |
| |
| <pre> |
| This snapshot includes a language change that restricts the use of goto. |
| In essence, a "goto" statement outside a block cannot jump to a label inside |
| that block. Your code may require changes if it uses goto. |
| This changeset shows how the new rule affected the Go tree: |
| http://code.google.com/p/go/source/detail?r=dc6d3cf9279d |
| |
| The os.ErrorString type has been hidden. If your code uses os.ErrorString it |
| must be changed. Most uses of os.ErrorString can be replaced with os.NewError. |
| |
| Other changes: |
| * 5c: do not use R9 and R10. |
| * 8l: more fixes for Plan 9 (thanks Lucio De Re). |
| * build: Make.ccmd: link with mach lib (thanks Joe Poirier). |
| * build: exclude packages that fail on Plan 9 (thanks Anthony Martin). |
| * cc: nit: silence comment warnings (thanks Dave Cheney). |
| * codereview.py: note that hg change -d abandons a change list (thanks Robert Hencke). |
| * crypto/openpgp: add ElGamal support. |
| * doc/faq: add question about converting from []T to []interface{}. |
| * doc: Effective Go: fix variadic function example (thanks Ben Lynn). |
| * exec: LookPath should not search %PATH% for files like c:cmd.exe (thanks Alex Brainman), |
| add support for Plan 9 (thanks Anthony Martin), |
| better error message for windows LookPath (thanks Alex Brainman). |
| * fmt: catch panics from calls to String etc. |
| * gc: descriptive panic for nil pointer -> value method call, |
| implement goto restriction, |
| unsafe.Alignof, unsafe.Offsetof, unsafe.Sizeof now return uintptr. |
| * go/build: include Import objects in Script Inputs. |
| * godefs: rudimentary tests (thanks Robert Hencke). |
| * goinstall: refactor and generalize repo handling code (thanks Julian Phillips), |
| temporarily use Makefiles by default (override with -make=false). |
| * gopprof: update list of memory allocators. |
| * http: add Server.ListenAndServeTLS, |
| buffer request.Write, |
| fix req.Cookie(name) with cookies in one header, |
| permit handlers to explicitly remove the Date header, |
| write Header keys with empty values. |
| * image: basic test for the 16-bits-per-color-channel types. |
| * io: clarify Read, ReadAt, Copy, Copyn EOF behavior. |
| * ld: don't attempt to build dynamic sections unnecessarily (thanks Gustavo Niemeyer). |
| * libmach: fix disassembly of FCMOVcc and FCOMI (thanks Anthony Martin), |
| fix tracing on linux (for cov) (thanks Anthony Martin). |
| * mime: fix RFC references (thanks Pascal S. de Kloe). |
| * misc/gobuilder: run make single-threaded on windows (thanks Alex Brainman). |
| * misc/godashboard: Accept sub-directories for goinstall's report (thanks Yasuhiro Matsumoto). |
| * nacl, tiny: remove vestiges (thanks Robert Hencke). |
| * net, syscall: interface for windows (thanks Yasuhiro Matsumoto). |
| * os: change Waitmsg String method to use pointer receiver (thanks Graham Miller). |
| * runtime: don't use twice the memory with grsec-like kernels (thanks Gustavo Niemeyer), |
| * spec: disallow goto into blocks. |
| * sync: restore GOMAXPROCS during benchmarks. |
| * syscall: add LSF support for linux (thanks Mikio Hara), |
| add socket control message support for darwin, freebsd, linux (thanks Mikio Hara), |
| add tty support to StartProcess (thanks Ken Rockot), |
| fix build for Sizeof change. |
| * test: test of goto restrictions. |
| * time: add support for Plan 9 (thanks Anthony Martin). |
| </pre> |
| |
| <h2 id="2011-06-16">2011-06-16</h2> |
| |
| <pre> |
| This snapshot includes changes to the sort and image/draw packages that will |
| require changes to client code. |
| |
| The sort.IntArray type has been renamed to IntSlice, and similarly for |
| StringArray and Float64Array. |
| |
| The image/draw package's Draw function now takes an additional argument, |
| a compositing operator. If in doubt, use draw.Over. |
| |
| Other changes: |
| * build: fix header files for Plan 9 (thanks Lucio De Re). |
| * cgo: handle new Apple LLVM-based gcc from Xcode 4.2. |
| * crypto/openpgp: add ability to encrypt and sign messages. |
| * doc/gopher: add goggled gopher logo for App Engine. |
| * doc: Update notes for 3-day Go course. |
| * exec: make LookPath work when PATHEXT var not set on Windows (thanks Alex Brainman). |
| * exp/regexp/syntax: syntax data structures, parser, escapes, character classes. |
| * exp/template: lexical scanner for new template package. |
| * fmt: debugging formats for characters: %+q %#U. |
| * gc: frame compaction for arm, |
| handle go print() and go println(), |
| work around goto bug. |
| * go/build: fixes, self-contained tests. |
| * go/printer, gofmt: print "select {}" on one line. |
| * godoc: replace OS file system accesses in favor of a FileSystem interface. |
| * gofix: fix inconsistent indentation in help output (thanks Scott Lawrence). |
| * goinstall: use go/build package to scan and build packages. |
| * http/spdy: improve error handling (thanks William Chan). |
| * http: use runtime/debug.Stack() to dump stack trace on panic. |
| * ld: dwarf emit filenames in debug_line header instead of as extended opcodes, |
| fix link Windows PE __declspec(dllimport) symbol (thanks Wei Guangjing), |
| make .rodata section read-only (thanks Gustavo Niemeyer). |
| * mail: decode RFC 2047 "B" encoding. |
| * mime/multipart: remove temp files after tests on Windows (thanks Alex Brainman). |
| * net: export all fields in Interface (thanks Mikio Hara), |
| rearrange source to run more tests on Windows (thanks Alex Brainman), |
| sendfile for win32 (thanks Yasuhiro Matsumoto). |
| * os: Plan 9, fix OpenFile & Chmod, add Process.Kill (thanks Yuval Pavel Zholkover). |
| * runtime: fix Plan 9 "lingering goroutines bug" (thanks Yuval Pavel Zholkover). |
| * spec: clarify rules for append, scope rules for :=, |
| specify constant conversions, |
| unsafe.Alignof/Offsetof/Sizeof return uintptr. |
| * syscall, os, exec: add *syscall.SysProcAttr field to os.ProcAttr and exec.Cmd. |
| * syscall: add ptrace on darwin (thanks Jeff Hodges), |
| mksyscall_windows.pl should output unix newline (thanks Yasuhiro Matsumoto). |
| update BPF support for BSD variants (thanks Mikio Hara), |
| use strict in perl scripts (thanks Yasuhiro Matsumoto). |
| * xml: handle non-string attribute fields (thanks Maxim Ushakov). |
| </pre> |
| |
| <h2 id="2011-06-09">2011-06-09 (<a href="release.html#r58">base for r58</a>)</h2> |
| |
| <pre> |
| This snapshot includes changes to the strconv, http, and exp/draw packages. |
| Client code that uses the http or exp/draw packages will need to be changed, |
| and code that uses strconv or fmt's "%q" formatting directive merits checking. |
| |
| The strconv package's Quote function now escapes only those Unicode code points |
| not classified as printable by unicode.IsPrint. Previously Quote would escape |
| all non-ASCII characters. This also affects the fmt package's "%q" formatting |
| directive. The previous quoting behavior is still available via strconv's new |
| QuoteToASCII function. |
| |
| Most instances of the type map[string][]string in the http package have been |
| replaced with the new Values type. The http.Values type has the Get, Set, Add, |
| and Del helper methods to make working with query parameters and form values |
| more convenient. |
| |
| The exp/draw package has been split into the image/draw and exp/gui packages. |
| |
| Other changes: |
| * 8l, ld: initial adjustments for Plan 9 native compilation of 8l (thanks Lucio De Re). |
| * arm: floating point improvements (thanks Fan Hongjian). |
| * big: Improved speed of nat-to-string conversion (thanks Michael T. Jones), |
| Rat outputs the requested precision from FloatString (thanks Graham Miller), |
| gobs for big.Rats. |
| * cgo: support non intel gcc machine flags (thanks Dave Cheney). |
| * compress/lzw: do not use background goroutines, |
| reduce decoder buffer size from 3*4096 to 2*4096. |
| * crypto/twofish: fix Reset index overflow bug. |
| * crypto: reorg, cleanup and add function for generating CRLs. |
| * exec: export the underlying *os.Process in Cmd. |
| * gc: enable building under clang/2.9 (thanks Dave Cheney), |
| preparatory work toward escape analysis, compact stack frames. |
| * go/build: new incomplete package for building go programs. |
| * godefs: do not assume forward type references are enums (thanks Robert Hencke). |
| * gofix, gofmt: fix diff regression from exec change. |
| * html: improve attribute parsing, note package status. |
| * http: don't fail on accept hitting EMFILE, |
| fix handling of 0-length HTTP requests. |
| * image/draw: fix clipping bug where sp/mp were not shifted when r.Min was. |
| * image/gif: fix buglet in graphics extension. |
| * image/tiff: support for bit depths other than 8 (thanks Benny Siegert). |
| * ld: fix and simplify ELF symbol generation (thanks Anthony Martin) |
| * libmach: use the standardized format for designated initializers (thanks Jeff Hodges) |
| * mail: address list parsing. |
| * net: add network interface identification API (thanks Mikio Hara), |
| fix bug in net.Interfaces: handle elastic sdl_data size correctly (thanks Mikio Hara). |
| * netchan: added drain method to importer (thanks David Jakob Fritz). |
| * os: add Process.Kill and Process.Signal (thanks Evan Shaw), |
| fix Getenv for Plan 9 (thanks Yuval Pavel Zholkover). |
| * runtime: improve memmove by checking memory overlap (thanks Quan Yong Zhai), |
| support for Linux grsecurity systems (thanks Jonathan Mark). |
| * spec: handle a corner case for shifts. |
| * testing: check that tests and benchmarks do not affect GOMAXPROCS (thanks Dmitriy Vyukov). |
| * unicode: add IsPrint and related properties, general categories. |
| </pre> |
| |
| <h2 id="2011-06-02">2011-06-02</h2> |
| |
| <pre> |
| This snapshot includes changes to the exec package that will require changes |
| to client code. |
| |
| The exec package has been re-designed with a more convenient and succinct API. |
| This code: |
| args := []string{"diff", "-u", "file1.txt", "file2.txt"} |
| p, err := exec.Run("/usr/bin/diff", args, os.Environ(), "", |
| exec.DevNull, exec.Pipe, exec.DevNull) |
| if err != nil { |
| return nil, err |
| } |
| var buf bytes.Buffer |
| io.Copy(&buf, p.Stdout) |
| w, err := p.Wait(0) |
| p.Close() |
| if err != nil { |
| return nil, err |
| } |
| return buf.Bytes(), err |
| can be rewritten as: |
| return exec.Command("diff", "-u", "file1.txt", "file2.txt").Output() |
| See the exec package documentation for the details ("godoc exec"). |
| |
| By setting the GOPATH environment variable you can use goinstall to build and |
| install your own code and external libraries outside of the Go tree (and avoid |
| writing Makefiles). |
| See the goinstall command documentation for the details ("godoc goinstall"). |
| |
| Other changes: |
| * 5g: alignment fixes. |
| * 6l, 8l: fix Mach-O binaries with many dynamic libraries. |
| * 8l: emit resources (.rsrc) in Windows PE. (thanks Wei Guangjing). |
| * asn1: fix marshalling of empty optional RawValues (thanks Mikkel Krautz). |
| * big: make Int and Rat implement fmt.Scanner (thanks Evan Shaw), |
| ~8x faster number scanning, |
| remove some unnecessary conversions. |
| * cgo: restrict #cgo directives to prevent shell expansion (thanks Gustavo Niemeyer), |
| support pkg-config for flags and libs (thanks Gustavo Niemeyer). |
| * compress/flate: fix Huffman tree bug, |
| do not use background goroutines. |
| * crypto/openpgp: add support for symmetrically encrypting files. |
| * crypto/tls/generate_cert.go: fix misspelling of O_CREATE. |
| * dashboard: send notification emails when the build breaks. |
| * doc: mention go/printer instead of container/vector in effective go, |
| put Release History link on 'Documentation' page, |
| put Weekly Snapshot History link on 'Contributing' page. |
| * encoding/base64: add DecodeString and EncodeToString. |
| * encoding/binary: add a non-reflect fast path for Read, |
| add a non-reflect fast path for Write. |
| * encoding/hex: add hex dumping. |
| * encoding/line: delete package. Its functionality is now in bufio. |
| * filepath: Abs must always return a clean path (thanks Gustavo Niemeyer). |
| * fmt: fix bug in UnreadRune, |
| make %q work for integers, printing a quoted character literal, |
| return EOF when out of input in Scan*. |
| * gc: check parameter declarations in interface fields (thanks Anthony Martin), |
| disallow ... in type conversions (thanks Anthony Martin), |
| do not force heap allocation on referencing outer variable in a closure, |
| fix m[x], _ = y.(T), |
| implement new shift rules, |
| patch y.tab.c to fix build when using Bison 2.5, |
| relax assignability of method receivers (thanks Anthony Martin), |
| typecheck the whole tree before walking. |
| * go/scanner: don't allow "0x" and "0X" as integers (thanks Evan Shaw). |
| * gobuilder: fixes for windows (thanks Alex Brainman). |
| * godoc: basic setup for running godoc on local app engine emulator, |
| display advert for the package dashboard on package list page. |
| * goinstall: fixes for windows (thanks Alex Brainman), |
| more verbose logging with -v. |
| * gotest, pkg/exec: use bash to run shell scripts on windows (thanks Alex Brainman). |
| * http/spdy: redo interfaces, flesh out implementation & frame types (thanks William Chan). |
| * http: Transport hook to register non-http(s) protocols, |
| add client+server benchmark, |
| catch Handler goroutine panics, |
| fix Set-Cookie date parsing, |
| have client set Content-Length when possible, |
| let Transport use a custom net.Dial function, |
| propagate Set-Cookie in reverse proxy, |
| ServeFile shouldn't send Content-Length when Content-Encoding is set. |
| * image: add a SubImage method. |
| * image/gif: simplify blockReader.Read. |
| * image/png: fix encoding of images that don't start at (0, 0). |
| * io, net, http: sendfile support. |
| * io: add ByteScanner, RuneScanner interfaces. |
| * ld: add -w to disable dwarf, make errors obviously from dwarf. |
| * mail: new package. |
| * mime/multipart: misc code/doc fixes. |
| * misc/cgo: remove reference to 'destroy' function. |
| * misc/emacs: don't select the mark after gofmt (thanks Eric Eisner). |
| * misc/gophertool: Chrome extension to aid in Go development |
| * misc/vim: limit Fmt command to Go buffers (thanks Yasuhiro Matsumoto). |
| * net: if we stop polling, remove any pending events for the socket, |
| update IP multicast socket options (thanks Mikio Hara). |
| * os: Fix test to work on Solaris, |
| fix Readdir(0) on EOF, |
| fix Readdir, Readdirnames (thanks Yuval Pavel Zholkover), |
| fix os.MkdirAll with backslash path separator (thanks Yasuhiro Matsumoto), |
| handle OpenFile flag parameter properly on Windows (thanks Alex Brainman). |
| * path/filepath: remove string constants. |
| * pkg: spelling tweaks, I-Z (thanks Robert Hencke). |
| * quietgcc: fix typo, respect $TMPDIR. |
| * runtime: do not garbage collect windows callbacks (thanks Alex Brainman), |
| fix mmap error return on linux (thanks Dmitry Chestnykh), |
| reset GOMAXPROCS during tests, |
| save cdecl registers in Windows SEH handler (thanks Alexey Borzenkov). |
| * spec: be precise with the use of the informal ellipsis and the Go token, |
| clarify rules for shifts. |
| * strconv: add QuoteRune; analogous to Quote but for runes rather than strings. |
| * strings: implement UnreadByte, UnreadRune. |
| * sync: always wake up sleeping goroutines on Cond.Signal (thanks Gustavo Niemeyer). |
| * sync/atomic: fix check64. |
| * syscall: add ProcAttr field to pass an unescaped command line on windows (thanks Vincent Vanackere), |
| add routing messages support for Linux and BSD (thanks Mikio Hara). |
| * template: fixes and clean-ups (thanks Gustavo Niemeyer). |
| * time: fix Format bug: midnight/noon are 12AM/PM not 0AM/PM. |
| * unicode: make the tables smaller. |
| </pre> |
| |
| <h2 id="2011-05-22">2011-05-22</h2> |
| |
| <pre> |
| This snapshot includes changes to the http package that will require changes to |
| client code. |
| |
| The finalURL return value of the Client.Get method has been removed. |
| This value is now accessible via the new Request field on http.Response. |
| For example, this code: |
| |
| res, finalURL, err := http.Get(...) |
| |
| should be rewritten as: |
| |
| res, err := http.Get(...) |
| if err != nil { |
| // ... |
| } |
| finalURL := res.Request.URL.String() |
| |
| Uses of http.Get that assign the finalURL value to _ can be rewritten |
| automatically with gofix. |
| |
| This snapshot also includes an optimization to the append function that makes it |
| between 2 and 5 times faster in typical use cases. |
| |
| Other changes: |
| * 5a, 6a, 8a, cc: remove old environment variables. |
| * 5c, 5g: fix build with too-smart gcc. |
| * 5l, 8l: add ELF symbol table to binary. |
| * 5l: delete pre-ARMv4 instruction implementations, other fixes. |
| * 6l, 8l: emit windows dwarf sections like other platforms (thanks Alex Brainman). |
| * 6l: fix emit windows dwarf sections (thanks Wei Guangjing). |
| * 8g: fix conversion from float to uint64 (thanks Anthony Martin). |
| * Make.cmd: create TARGDIR if necessary (thanks Gustavo Niemeyer). |
| * asn1: add big support. |
| * big: add Int methods to act on numbered bits (thanks Roger Peppe), |
| better support for string conversions, |
| support %v and # modifier, better handling of unknown formats. |
| * cgi: export RequestFromMap (thanks Evan Shaw), |
| set Request.TLS and Request.RemoteAddr for children. |
| * cgo: use packed struct to fix Windows behavior. |
| * codereview: add release branch support, |
| fetch metadata using JSON API, not XML scraping, |
| handle 'null as missing field' in rietveld json. |
| * compress/lzw: silently drop implied codes that are too large. |
| * compress/zlib: actually use provided dictionary in NewWriterDict |
| * crypto/openpgp: add key generation support, |
| change PublicKey.Serialize to include the header. |
| * crypto/rand: add utility functions for number generation (thanks Anthony Martin). |
| * crypto/tls: export the verified chains. |
| * crypto/x509/crl: add package. |
| * crypto/x509: export raw SubjectPublicKeyInfo, |
| support DSA public keys in X.509 certs, |
| support parsing and verifying DSA signatures (thanks Jonathan Allie). |
| * doc/roadmap: put "App Engine support" under "Done". |
| * doc: add I/O 2011 talks to talks/, docs.html, and front page. |
| * effective go: explain about values/pointers in String() example, |
| update to new Open signature. |
| * exp/draw: fast paths for drawing a YCbCr or an NRGBA onto an RGBA. |
| * filepath: make EvalSymlinks work on Windows (thanks Alex Brainman). |
| * flag: allow distinct sets of flags. |
| * gc: fix type switch error message for invalid cases (thanks Lorenzo Stoakes), |
| fix unsafe.Sizeof, |
| preserve original expression for errors. |
| * go/ast, go/doc, godoc: consider struct fields and interface methods when filtering ASTs. |
| * go/ast: consider anonymous fields and set Incomplete bit when filtering ASTs, |
| properly maintain map of package global imports. |
| * go/doc, godoc: when filtering for godoc, don't remove elements of a declaration. |
| * go/parser: accept parenthesized receive operations in select statements, |
| always introduce an ast.Object when declaring an identifier. |
| * go/printer, gofmt: fix alignment of "=" in const/var declarations, |
| fix formatting of expression lists (missing blank). |
| * go/printer: added simple performance benchmark, |
| make tests follow syntactic restrictions, |
| more accurate comment for incomplete structs/interfaces, |
| * go/token: faster FileSet.Position implementation. |
| * go/types: type checker API + testing infrastructure. |
| * godoc: added -index flag to enable/disable search index, |
| if there is no search box, don't run the respective JS code. |
| * gofmt: update test.sh (exclude a file w/ incorrect syntax). |
| * html: parse empty, unquoted, and single-quoted attribute values. |
| * http/cgi: correctly set request Content-Type (thanks Evan Shaw), |
| pass down environment variables for IRIX and Solaris. |
| * http/pprof: fix POST reading bug. |
| * http/spdy: new incomplete package (thanks Ross Light). |
| * http: Client.Do should follow redirects for GET and HEAD, |
| add Header.Write method (thanks Evan Shaw), |
| add Request.SetBasicAuth method, |
| add Transport.ProxySelector, |
| add http.SetCookie(ResponseWriter, *Cookie), |
| don't Clean query string in relative redirects, |
| fix FormFile nil pointer dereference on missing multipart form, |
| fix racy test with a simpler version, |
| fix two Transport gzip+persist crashes, |
| include Host header in requests, |
| make HEAD client request follow redirects (thanks Eivind Uggedal). |
| update cookie doc to reference new RFC 6265, |
| write cookies according to RFC 6265 (thanks Christian Himpel). |
| * image/bmp: implement a BMP decoder. |
| * image/gif: new package provides a GIF decoder. |
| * image/jpeg: decode grayscale images, not just color images. |
| optimizations and tweaks. |
| * image/png: encode paletted images with alpha channel (thanks Dmitry Chestnykh), |
| speed up opaque RGBA encoding. |
| * image/tiff: implement a decoder (thanks Benny Siegert). |
| * image: add type-specific Set methods and use them when decoding PNG, |
| make AlphaColor.Set conform to usual signature (thanks Roger Peppe), |
| png & jpeg encoding benchmarks. |
| * ld: do not emit reference to dynamic library named "", |
| fix alignment of rodata section on Plan 9 (thanks Anthony Martin), |
| make ELF binaries with no shared library dependencies static binaries. |
| * make.bash: remove old bash version of gotest on Windows (thanks Alex Brainman). |
| * make: add nuke target for C commands and libs (thanks Anthony Martin). |
| * mime/multipart: add FileName accessor on Part, |
| add Writer, |
| return an error on Reader EOF, not (nil, nil). |
| * misc/cgo/test: run tests. |
| * misc/emacs: use UTF-8 when invoking gofmt as a subprocess (thanks Sameer Ajmani). |
| * misc/vim: new Vim indentation script. |
| * net, http: add and make use of IP address scope identification API (thanks Mikio Hara). |
| * net: default to 127.0.0.1, not localhost, in TestICMP, |
| don't crash on unexpected DNS SRV responses, |
| enable SO_REUSEPORT on BSD variants (thanks Mikio Hara), |
| protocol family adaptive address family selection (thanks Mikio Hara), |
| re-enable wildcard listening (thanks Mikio Hara), |
| sort records returned by LookupSRV (thanks Gary Burd). |
| * os: make Readdir & Readdirnames return os.EOF at end, |
| make Setenv update C environment variables. |
| * reflect: allow unexported key in Value.MapIndex. |
| * runtime, sync/atomic: fix arm cas. |
| * runtime: add newline to "finalizer already set" error (thanks Albert Strasheim), |
| handle out-of-threads on Linux gracefully (thanks Albert Strasheim), |
| fix function args not checked warning on ARM (thanks Dave Cheney), |
| make StackSystem part of StackGuard (thanks Alexey Borzenkov), |
| maybe fix Windows build broken by cgo setenv CL. |
| * spec: clarify semantics of integer division, |
| clarify semantics of range clause, |
| fix error in production syntax, |
| narrow syntax for expression and select statements, |
| newlines cannot be used inside a char or "" string literal, |
| restricted expressions may still be parenthesized. |
| * strings: make Reader.Read use copy instead of an explicit loop. |
| * syscall: add Windows file mapping functions and constants (thanks Evan Shaw), |
| add IPv6 scope zone ID support (thanks Mikio Hara), |
| add netlink support for linux/386, linux/amd64, linux/arm (thanks Mikio Hara), |
| add Sendfile, |
| adjust freebsd syscalls.master URL properly (thanks Mikio Hara), |
| change Overlapped.HEvent type, it is a handle (thanks Alex Brainman). |
| * syslog: fix skipping of net tests (thanks Gustavo Niemeyer). |
| * template: support string, int and float literals (thanks Gustavo Niemeyer). |
| * xml: fix reflect error. |
| </pre> |
| |
| <h2 id="2011-04-27">2011-04-27 (<a href="release.html#r57">base for r57</a>)</h2> |
| |
| <pre> |
| This snapshot includes revisions to the reflect package to make it more |
| efficient, after the last weekly's major API update. If your code uses reflect |
| it may require further changes, not all of which can be made automatically by |
| gofix. For the full details of the change, see |
| http://codereview.appspot.com/4435042 |
| Also, the Typeof and NewValue functions have been renamed to TypeOf and ValueOf. |
| |
| Other changes: |
| * 5c: make alignment rules match 5g, just like 6c matches 6g. |
| * 8g, 8l: fix "set but not used" gcc error (thanks Fazlul Shahriar). |
| * all-qemu.bash: remove DISABLE_NET_TESTS. |
| * build: remove DISABLE_NET_TESTS. |
| * builder: build multiple targets in parallel. |
| * cgo: avoid "incompatible pointer type" warning (thanks Albert Strasheim). |
| * codereview: add 'hg undo' command, various other fixes. |
| * compress/flate: dictionary support. |
| * compress/zlib: add FDICT flag in Reader/Writer (thanks Ross Light). |
| * container/heap: fix circular dependency in test. |
| * crypto/openpgp: better handling of keyrings. |
| * crypto/rsa: support > 3 primes. |
| * crypto/tls: add server-side OCSP stapling support. |
| * crypto/x509: memorize chain building. |
| * crypto: move certificate verification into x509. |
| * dashboard: build most recent revision first. |
| * doc: mention make version in install.html. |
| * expvar: add Func for functions that return values that are JSON marshalable. |
| * fmt: decrease recursion depth in tests to permit them to run under gccgo, |
| tweak the doc for %U. |
| * gc: allow complex types to be receiver types (thanks Robert Hencke), |
| correct handling of unexported method names in embedded interfaces, |
| explain why invalid receiver types are invalid, |
| fix copy([]int, string) error message (thanks Quan Yong Zhai), |
| fix 'invalid recursive type' error (thanks Lorenzo Stoakes), |
| many bug fixes. |
| * go spec: attempt at clarifying language for "append", |
| for map types, mention indexing operations. |
| * go/types: update for export data format change. |
| * gob: fix handling of indirect receivers for GobDecoders, |
| fix trivial bug in map marshaling, |
| have errorf always prefix the message with "gob: ", |
| test case for indirection to large field, |
| use new Implements and AssignableTo methods in reflect, |
| when decoding a string, allocate a string, not a []byte. |
| * gobuilder: permit builders of the form goos-goarch-foo, |
| respect MAKEFLAGS if provided (thanks Dave Cheney). |
| * godoc: use "search" input type for search box (thanks Dmitry Chestnykh). |
| * gofix: add support for reflect rename. |
| * gofmt: add -d (diff) (thanks David Crawshaw), |
| don't crash when rewriting nil interfaces in AST, |
| exclude test case that doesn't compile w/o errors, |
| gofmt test harness bug fix. |
| * goinstall: support GOPATH; building and installing outside the Go tree, |
| support building executable commands. |
| * gopack: fix prefix bug, |
| preserve safe flag when not adding unsafe objects to archive. |
| * gotest: add timing, respect $GOARCH, |
| generate gofmt-compliant code. |
| * http/cgi: copy some PATH environment variables to child, |
| improve Location response handling, |
| pass some default environment variables. |
| * http/fcgi: new package (thanks Evan Shaw). |
| * http: add NewRequest helper, |
| add MultipartForm, ParseMultipartForm, and FormFile to Request, |
| be clear when failing to connect to a proxy, |
| bug fixes and new tests, |
| consume request bodies before replying, |
| don't quote Set-Cookie Domain and Path (thanks Petar Maymounkov), |
| fix IP confusion in TestServerTimeouts, |
| handler timeout support, |
| ServerConn, ClientConn: add real Close (thanks Petar Maymounkov), |
| make Client redirect policy configurable, |
| put a limit on POST size, |
| reverse proxy handler. |
| * image/jpeg: add an encoder, |
| decode to a YCbCr image instead of an RGBA image. |
| * ioutil: add Discard. |
| * json: keep track of error offset in SyntaxError. |
| * ld: defend against some broken object files, |
| do not emit empty dwarf pe sections (thanks Alex Brainman), |
| fix 6l -d on Mac, diagnose invalid use of -d, |
| fix Plan 9 symbol table (thanks Anthony Martin), |
| remove MachoLoad limit. |
| * make: prevent rm provoking 'text file busy' errors (thanks Lorenzo Stoakes). |
| * mime/multipart: add ReadForm for parsing multipart forms, |
| limit line length to prevent abuse. |
| * mime: RFC 2231 continuation / non-ASCII support, |
| bunch more tests, few minor parsing fixes. |
| * misc/goplay: fix Tab and Shift+Enter in Firefox (thanks Dmitry Chestnykh). |
| * net: disable one more external network test, |
| fix EAI_BADFLAGS error on freebsd (thanks Mikio Hara), |
| fix ParseIP (thanks Quan Yong Zhai), |
| fix dialgoogle_test.go (thanks Quan Yong Zhai), |
| try /etc/hosts before loading DNS config (thanks Dmitry Chestnykh), |
| use C library resolver on FreeBSD, Linux, OS X / amd64, 386. |
| * os/user: new package to look up users. |
| * os: Open with O_APPEND|O_CREATE to append on Windows (thanks Alex Brainman), |
| fix race in ReadAt/WriteAt on Windows (thanks Alex Brainman), |
| turn EPIPE exit into panic. |
| * rc/env.bash: fix to build on windows under msys (thanks Joe Poirier). |
| * reflect: allow Slice of arrays, |
| fix Copy of arrays (thanks Gustavo Niemeyer), |
| require package qualifiers to match during interface check, |
| add Type.Implements, Type.AssignableTo, Value.CallSlice, |
| make Set match Go. |
| * rpc: allow the first argument of a method to be a value rather than a pointer, |
| run benchmarks over HTTP as well as direct network connections. |
| * run.bash: remove redundant rebuilds. |
| * runtime/plan9: warning remediation for Plan 9 (thanks Lucio De Re), |
| * runtime: many bug fixes, |
| fix GOMAXPROCS vs garbage collection bug (thanks Dmitriy Vyukov), |
| fix mkversion to output valid path separators (thanks Peter Mundy), |
| more graceful out-of-memory crash, |
| require package qualifiers to match during interface check, |
| skip functions with no lines when building src line table, |
| turn "too many EPIPE" into real SIGPIPE. |
| * src/pkg: make package doc comments consistently start with "Package foo". |
| * syscall: Madvise and Mprotect for Linux (thanks Albert Strasheim), |
| Mlock, Munlock, Mlockall, Munlockall on Linux (thanks Albert Strasheim), |
| add BPF support for darwin/386, darwin/amd64 (thanks Mikio Hara), |
| correct Windows CreateProcess input parameters (thanks Alex Brainman), |
| fix Ftruncate under linux/arm5 (thanks Dave Cheney), |
| permit StartProcess to hide the executed program on windows (thanks Vincent Vanackere). |
| * test/bench: update timings; moving to new machine. |
| * time: support Irix 6 location for zoneinfo files. |
| * tutorial: modernize the definition and use of Open, |
| replace the forever loops with finite counts in sieve programs. |
| * websocket: include *http.Request in websocket.Conn. |
| * xml: Parser hook for non-UTF-8 charset converters. |
| </pre> |
| |
| <h2 id="2011-04-13">2011-04-13</h2> |
| |
| <pre> |
| weekly.2011-04-13 |
| |
| This weekly snapshot includes major changes to the reflect package and the |
| os.Open function. Code that uses reflect or os.Open will require updating, |
| which can be done mechanically using the gofix tool. |
| |
| The reflect package's Type and Value types have changed. Type is now an |
| interface that implements all the possible type methods. Instead of a type |
| switch on a reflect.Type t, switch on t.Kind(). Value is now a struct value |
| that implements all the possible value methods. Instead of a type switch on a |
| reflect.Value v, switch on v.Kind(). See the change for the full details: |
| http://code.google.com/p/go/source/detail?r=843855f3c026 |
| |
| The os package's Open function has been replaced by three functions: |
| OpenFile(name, flag, perm) // same as old Open |
| Open(name) // same as old Open(name, O_RDONLY, 0) |
| Create(name) // same as old Open(name, O_RDWR|O_TRUNC|O_CREAT, 0666) |
| |
| To update your code to use the new APIs, run "gofix path/to/code". Gofix can't |
| handle all situations perfectly, so read and test the changes it makes before |
| committing them. |
| |
| Other changes: |
| * archive/zip: add func OpenReader, type ReadCloser (thanks Dmitry Chestnykh). |
| * asn1: Implement correct marshaling of length octets (thanks Luit van Drongelen). |
| * big: don't crash when printing nil ints. |
| * bufio: add ReadLine, to replace encoding/line. |
| * build: make the build faster, quieter. |
| * codereview: automatically port old diffs forward, |
| drop Author: line on self-clpatch, |
| recognize code URL without trailing slash. |
| * crypto/block: remove deprecated package. |
| * crypto/des: new package implementating DES and TDEA (thanks Yasuhiro Matsumoto). |
| * crypto/ecdsa, crypto/rsa: use io.ReadFull to read from random source (thanks Dmitry Chestnykh). |
| * crypto/rsa: add 3-prime support, |
| add support for precomputing CRT values, |
| flip the CRT code over so that it matches PKCS#1. |
| * crypto/x509: expose complete DER data (thanks Mikkel Krautz). |
| * doc: new "Functions" codewalk (thanks John DeNero). |
| * doc/roadmap: add sections on tools, packages. |
| * fmt: allow %U for unsigned integers. |
| * gc: fixes and optimizations. |
| * go/printer, gofmt: use blank to separate import rename from import path. |
| * go/scanner: better TokenString output. |
| * go/types: new Go type hierarchy implementation for AST. |
| * godashboard: show packages at launchpad.net (thanks Gustavo Niemeyer). |
| * gofix: add -diff, various fixes and helpers. |
| * gotest: fix a bug in error handling, |
| fixes for [^.]_test file pattern (thanks Peter Mundy), |
| handle \r\n returned by gomake on Windows (thanks Alex Brainman). |
| * gotype: use go/types GcImporter. |
| * govet: make name-matching for printf etc. case-insensitive. |
| * http: allow override of Content-Type for ServeFile, |
| client gzip support, |
| do not listen on 0.0.0.0 during test, |
| flesh out server Expect handling + tests. |
| * image/ycbcr: new package. |
| * image: allow "?" wildcards when registering image formats. |
| * io: fixes for Read with n > 0, os.EOF (thanks Robert Hencke). |
| * ld: correct Plan 9 compiler warnings (thanks Lucio De Re), |
| ELF header function declarations (thanks Lucio De Re), |
| fix Mach-O X86_64_RELOC_SIGNED relocations (thanks Mikkel Krautz), |
| fix Mach-O bss bug (thanks Mikkel Krautz), |
| fix dwarf decoding of strings for struct's fieldnames (thanks Luuk van Dijk), |
| fixes and optimizations (25% faster). |
| * log: generalize getting and setting flags and prefix. |
| * misc/cgo/life: enable build and test on Windows (thanks Alex Brainman). |
| * misc/vim: add plugin with Fmt command (thanks Dmitry Chestnykh), |
| update type highlighting for new reflect package. |
| * net: disable multicast tests by default (thanks Dave Cheney), |
| sort records returned by LookupMX (thanks Corey Thomasson). |
| * openpgp: Fix improper := shadowing (thanks Gustavo Niemeyer). |
| * os: rename Open to OpenFile, add new Open, Create, |
| fix Readdir in Plan 9 (thanks Fazlul Shahriar). |
| * os/inotify: use _test for test files, not _obj. |
| * pkg/path: enable tests on Windows (thanks Alex Brainman). |
| * reflect: new Type and Value API. |
| * src/pkg/Makefile: trim per-directory make output except on failure. |
| * syscall: Add DT_* and MADV_* constants on Linux (thanks Albert Strasheim), |
| add Mmap, Munmap on Linux, FreeBSD, OS X, |
| fix StartProcess in Plan 9 (thanks Fazlul Shahriar), |
| fix Windows Signaled (thanks Alex Brainman). |
| * test/bench: enable build and test on Windows (thanks Alex Brainman). |
| </pre> |
| |
| <h2 id="2011-04-04">2011-04-04</h2> |
| |
| <pre> |
| This snapshot includes changes to the net package. Your code will require |
| changes if it uses the Dial or LookupHost functions. |
| |
| The laddr argument has been removed from net.Dial, and the cname return value |
| has been removed from net.LookupHost. The new net.LookupCNAME function can be |
| used to find the canonical host for a given name. You can update your |
| networking code with gofix. |
| |
| The gotest shell script has been replaced by a Go program, making testing |
| significantly faster. |
| |
| Other changes: |
| * asn1: extensions needed for parsing Kerberos. |
| * bufio: Write and WriteString cleanup (thanks Evan Shaw). |
| * bytes, strings: simplify Join (thanks Evan Shaw). |
| * crypto/cipher: bad CTR IV length now triggers panic. |
| * crypto/tls: extend NPN support to the client, |
| added X509KeyPair function to parse a Certificate from memory. |
| * crypto/x509: parse Extended Key Usage extension (thanks Mikkel Krautz). |
| * debug/gosym: remove need for gotest to run preparatory commands. |
| * fmt: implement precision (length of input) values for %q: %.20q. |
| * go/parser: fix scoping for local type declarations (thanks Roger Peppe), |
| package name must not be the blank identifier. |
| * go/printer, gofmt: remove special case for multi-line raw strings. |
| * gopack: add P flag to remove prefix from filename information. |
| * gotest: add -test.timeout option, |
| replace the shell script with the compiled program written in go, |
| execute gomake properly on Windows (thanks Alex Brainman). |
| * gotry: move into its own directory, separate from gotest. |
| * gotype: support for more tests, added one new test. |
| * http: add Transport.MaxIdleConnsPerHost, |
| use upper case hex in URL escaping (thanks Matt Jones). |
| * httptest: add NewTLSServer. |
| * misc/kate: reorganize, remove closed() (thanks Evan Shaw). |
| * misc/notepadplus: support for notepad++ (thanks Anthony Starks). |
| * net: implement non-blocking connect (thanks Alexey Borzenkov). |
| * os: fix MkdirAll("/thisdoesnotexist") (thanks Albert Strasheim), |
| Plan 9 support (thanks Yuval Pavel Zholkover), |
| add a few missing Plan 9 errors (thanks Andrey Mirtchovski), |
| fix FileInfo.Name returned by Stat (thanks David Forsythe). |
| * path/filepath.Glob: add an error return, |
| don't drop known matches on error. |
| * path/filepath: add support for Plan 9 (thanks Andrey Mirtchovski). |
| * scanner: treat line comments like in Go. |
| * syscall: Plan 9 support (thanks Yuval Pavel Zholkover), |
| StartProcess Chroot and Credential (thanks Albert Strasheim), |
| add BPF support for freebsd/386, freebsd/amd64 (thanks Mikio Hara), |
| make [Raw]Syscall6 pass 6th arg on linux/386 (thanks Evan Shaw). |
| </pre> |
| |
| <h2 id="2011-03-28">2011-03-28</h2> |
| |
| <pre> |
| This weekly release includes improved support for testing. |
| |
| Memory and CPU profiling is now available via the gotest tool. Gotest will |
| produce memory and CPU profiling data when invoked with the -test.memprofile |
| and -test.cpuprofile flags. Run "godoc gotest" for details. |
| |
| We have also introduced a way for tests to run quickly when an exhaustive test |
| is unnecessary. Gotest's new -test.short flag in combination with the testing |
| package's new Short function allows you to write tests that can be run in |
| normal or "short" mode; short mode is now used by all.bash to reduce |
| installation time. |
| The Makefiles know about the flag - you can just run "make testshort". |
| |
| Other changes: |
| * .hgignore: Ignore all goinstalled packages (thanks Evan Shaw). |
| * build: add all-qemu.bash, handful of arm fixes, |
| add support for SWIG, and add two SWIG examples, |
| diagnose Ubuntu's buggy copy of gold, |
| handle broken awk in version.bash (thanks Dave Cheney), |
| reenable clean.bash without gomake (thanks Gustavo Niemeyer). |
| * cgo: fix index-out-of-bounds bug. |
| * codereview: permit CLs of the form weekly.DATE |
| * crypto/ecdsa: truncate hash values. |
| * crypto/openpgp: add DSA signature support. |
| * dashboard: remove old python/bash builder, update README. |
| * doc: explain release and weekly tags in install.html. |
| * exec: document dir option for Run (thanks Gustavo Niemeyer). |
| * flag: document Nflag function (thanks Fazlul Shahriar). |
| * gc: remove interim ... error which rejects valid code. |
| * go/ast: implemented NewPackage, |
| merge CaseClause and TypeCaseClause. |
| * go/parser: fix memory leak by making a copy of token literals, |
| resolve identifiers properly. |
| * go/printer, gofmt: avoid exponential layout algorithm, |
| gofmt: simplify struct formatting and respect line breaks. |
| * go/scanner: to interpret line comments with Windows filenames (thanks Alex Brainman). |
| * go/token: use array instead of map for token->string table. |
| * gob: optimizations to reduce allocations, |
| use pointers in bootstrapType so interfaces behave properly. |
| * gobuilder: recognize CLs of the form weekly.DATE. |
| * godefs: handle volatile. |
| * godoc: add -template flag to specify custom templates, |
| fix path problem for windows (thanks Yasuhiro Matsumoto). |
| * gofix: httpserver - rewrite rw.SetHeader to rw.Header.Set. |
| * gofmt: add profiling flag. |
| * gopprof: fix bug: do not rotate 180 degrees for large scrolls, |
| update list of memory allocation functions. |
| * gotest: fix gofmt issue in generated _testmain.go. |
| * http: add NewProxyClientConn, |
| avoid crash when asked for multiple file ranges, |
| don't chunk 304 responses, |
| export Transport, add keep-alive support. |
| * ld: return > 0 exit code on unsafe import. |
| * misc/bbedit: remove closed keyword (thanks Anthony Starks). |
| * misc/emacs: gofmt: don't clobber the current buffer on failure. |
| * misc/vim: remove 'closed' as a builtin function. |
| * net: add FileConn, FilePacketConn, FileListener (thanks Albert Strasheim), |
| don't force epoll/kqueue to wake up in order to add new events, |
| let OS-specific AddFD routine wake up polling thread, |
| use preallocated buffer for epoll and kqueue/kevent. |
| * path/filepath: add EvalSymlinks function, |
| fix TestEvalSymlinks when run under symlinked GOROOT. |
| * path: work for windows (thanks Yasuhiro Matsumoto). |
| * rpc: increase server_test timeout (thanks Gustavo Niemeyer), |
| optimizations to reduce allocations. |
| * runtime: fix darwin/amd64 thread VM footprint (thanks Alexey Borzenkov), |
| fix gdb support for goroutines, |
| more stack split fixes, |
| os-specific types and code for setitimer, |
| update defs.h for freebsd-386 (thanks Devon H. O'Dell). |
| * strings: Map: avoid allocation when string is unchanged. |
| * syscall: GetsockoptInt (thanks Albert Strasheim), |
| StartProcess fixes for windows (thanks Alex Brainman), |
| permit non-blocking syscalls, |
| rename from .sh to .pl, because these files are in Perl. |
| * test: enable tests using v, ok := <-ch syntax (thanks Robert Hencke). |
| * time: give a helpful message when we can't set the time zone for testing. |
| isolate syscall reference in sys.go. |
| </pre> |
| |
| <h2 id="2011-03-15">2011-03-15</h2> |
| |
| <pre> |
| This week's release introduces a new release tagging scheme. We intend to |
| continue with our weekly releases, but have renamed the existing tags from |
| "release" to "weekly". The "release" tag will now be applied to one hand-picked |
| stable release each month or two. |
| |
| The revision formerly tagged "release.2011-03-07.1" (now "weekly.2011-03-07.1") |
| has been nominated our first stable release, and has been given the tag |
| "release.r56". As we tag each stable release we will post an announcement to |
| the new golang-announce mailing list: |
| http://groups.google.com/group/golang-announce |
| |
| You can continue to keep your Go installation updated using "hg update |
| release", but now you should only need to update once we tag a new stable |
| release, which we will announce here. If you wish to stay at the leading edge, |
| you should switch to the weekly tag with "hg update weekly". |
| |
| |
| This weekly release includes significant changes to the language spec and the |
| http, os, and syscall packages. Your code may need to be changed. It also |
| introduces the new gofix tool. |
| |
| The closed function has been removed from the language. The syntax for channel |
| receives has been changed to return an optional second value, a boolean value |
| indicating whether the channel is closed. This code: |
| v := <-ch |
| if closed(ch) { |
| // channel is closed |
| } |
| should now be written as: |
| v, ok := <-ch |
| if !ok { |
| // channel is closed |
| } |
| |
| It is now illegal to declare unused labels, just as it is illegal to declare |
| unused local variables. |
| |
| The new gofix tool finds Go programs that use old APIs and rewrites them to use |
| newer ones. After you update to a new Go release, gofix helps make the |
| necessary changes to your programs. Gofix will handle the http, os, and syscall |
| package changes described below, and we will update the program to keep up with |
| future changes to the libraries. |
| |
| The Hijack and Flush methods have been removed from the http.ResponseWriter |
| interface and are accessible via the new http.Hijacker and http.Flusher |
| interfaces. The RemoteAddr and UsingTLS methods have been moved from |
| http.ResponseWriter to http.Request. |
| |
| The http.ResponseWriter interface's SetHeader method has been replaced by a |
| Header() method that returns the response's http.Header. Caller code needs to |
| change. This code: |
| rw.SetHeader("Content-Type", "text/plain") |
| should now be written as: |
| rw.Header().Set("Content-Type", "text/plain") |
| The os and syscall packages' StartProcess functions now take their final three |
| arguments as an *os.ProcAttr and *syscall.ProcAttr values, respectively. This |
| code: |
| os.StartProcess(bin, args, env, dir, fds) |
| should now be written as: |
| os.StartProcess(bin, args, &os.ProcAttr{Files: fds, Dir: dir, Env: env}) |
| |
| The gob package will now encode and decode values of types that implement the |
| gob.GobEncoder and gob.GobDecoder interfaces. This allows types with unexported |
| fields to transmit self-consistent descriptions; one instance is big.Int and |
| big.Rat. |
| |
| Other changes: |
| * 5l, 6l, 8l: reduce binary size about 40% by omitting symbols for type, string, go.string. |
| * 5l, 8l: output missing section symbols (thanks Anthony Martin). |
| * 6l, 8l: fix gdb crash. |
| * Make.cmd: also clean _test* (thanks Gustavo Niemeyer). |
| * big: implemented custom Gob(En/De)coder for Int type. |
| * build: remove duplicate dependency in Make.cmd (thanks Robert Hencke), |
| run gotest in misc/cgo/test. |
| * codereview.py: don't suggest change -d if user is not CL author (thanks Robert Hencke). |
| * compress/lzw: benchmark a range of input sizes. |
| * crypto/ecdsa: add package. |
| * crypto/elliptic: add the N value of each curve. |
| * crypto/openpgp: bug fixes and fix misnamed function. |
| * crypto/tls: fix compile error (thanks Dave Cheney). |
| * doc: Effective Go: some small cleanups, |
| update FAQ. hello, world is now 1.1MB, down from 1.8MB, |
| update codelab wiki to fix template.Execute argument order. |
| * flag: visit the flags in sorted order, for nicer messages. |
| * fmt: do not export EOF = -1. |
| * fmt: make ScanState.Token more general (thanks Roger Peppe). |
| * gc: diagnose unused labels, |
| fix handling of return values named _, |
| include all dependencies in export metadata, |
| make unsafe.Pointer its own kind of type, instead of an equivalent to *any. |
| * go/ast, go/parser: populate identifier scopes at parse time. |
| * go/ast: add FileSet parameter to ast.Print and ast.Fprint. |
| * go/parser: first constant in a constant declaration must have a value. |
| * gob: efficiency and reliability fixes. |
| * gofmt: remove -trace and -ast flags. |
| * goinstall: handle $(GOOS) and $(GOARCH) in filenames, |
| handle .c files with gc when cgo isn't used, and |
| handle .s files with gc (thanks Gustavo Niemeyer). |
| * gopack: omit time stamps, makes output deterministic. |
| * gotype: commandline tool to typecheck go programs. |
| * govet: handle '*' in print format strings. |
| * hash: new FNV-1a implementation (thanks Pascal S. de Kloe). |
| * http/cgi: child support (e.g. Go CGI under Apache). |
| * http: adapt Cookie code to follow IETF draft (thanks Petar Maymounkov), |
| add test for fixed HTTP/1.0 keep-alive issue, |
| don't hit external network in client_test.go, |
| fix transport crash when request URL is nil, |
| rename interface Transport to RoundTripper, |
| run tests even with DISABLE_NET_TESTS=1. |
| * httptest: default the Recorder status code to 200 on a Write. |
| * io/ioutil: clean-up of ReadAll and ReadFile. |
| * ioutil: add NopCloser. |
| * ld: preserve symbol sizes during data layout. |
| * lib9, libmach: Change GOOS references to GOHOSTOS (thanks Evan Shaw). |
| * libmach: correct string comparison to revive 6cov on darwin (thanks Dave Cheney). |
| * misc/vim: Add indent script for Vim (thanks Ross Light). |
| * net, os, syslog: fixes for Solaris support. |
| * net: don't loop to drain wakeup pipe. |
| * nm: document -S flag. |
| * openpgp: add PublicKey KeyId string accessors. |
| * rpc: optimizations, add benchmarks and memory profiling, |
| use httptest.Server for tests (thanks Robert Hencke). |
| * runtime: reduce lock contention via wakeup on scheduler unlock, |
| scheduler, cgo reorganization, |
| split non-debugging malloc interface out of debug.go into mem.go. |
| * spec: clarify return statement rules. |
| * strings: add IndexRune tests, ASCII fast path, |
| better benchmark names; add BenchmarkIndex. |
| * syscall: implement Mount and Unmount for linux, |
| implement Reboot for linux. |
| * time: fix Time.ZoneOffset documentation (thanks Peter Mundy). |
| * tls: move PeerCertificates to ConnectionState. |
| </pre> |
| |
| <h2 id="2011-03-07">2011-03-07 (<a href="release.html#r56">base for r56</a>)</h2> |
| |
| <pre> |
| This release includes changes to the reflect and path packages. |
| Code that uses reflect or path may need to be updated. |
| |
| The reflect package's Value.Addr method has been renamed to Value.UnsafeAddr. |
| Code that uses the Addr method will have to call UnsafeAddr instead. |
| |
| The path package has been split into two packages: path and path/filepath. |
| Package path manipulates slash-separated paths, regardless of operating system. |
| Package filepath implements the local operating system's native file paths. |
| OS-specific functioanlity in pacakge path, such as Walk, moved to filepath. |
| |
| Other changes: |
| * build: fixes and simplifications (thanks Dave Cheney), |
| move $GOBIN ahead of /bin, /usr/bin in build $PATH. |
| * bzip2: speed up decompression. |
| * cgo: fix dwarf type parsing (thanks Gustavo Niemeyer), |
| put temporary source files in _obj (thanks Roger Peppe), |
| fix bug involving 0-argument callbacks. |
| * compress/lzw: optimizations. |
| * doc: add FAQ about "implements", |
| add FAQ about large binaries , |
| add FAQ about stack vs heap allocation, |
| add internationalization to roadmap, |
| describe platform-specific conventions in code.html. |
| * fmt: allow recursive calls to Fscan etc (thanks Roger Peppe), |
| make %#p suppress leading 0x. |
| * gc, gopack: add some missing flags to the docs. |
| * gc: fix init of packages named main (thanks Gustavo Niemeyer), |
| * gob: make recursive map and slice types work, and other fixes. |
| tentative support for GobEncoder/GobDecoder interfaces. |
| * gobuilder: add -package flag to build external packages and -v for verbose. |
| * gofmt: exclude test file that is not legal Go. |
| * goinstall: protect against malicious filenames (thanks Roger Peppe). |
| * goyacc: provide -p flag to set prefix for names, documentation update. |
| * http: add cookie support (thanks Petar Maymounkov), |
| allow handlers to send non-chunked responses, |
| export ParseHTTPVersion, |
| expose Client's Transport, |
| use WriteProxy, |
| rename ClientTransport to Transport. |
| * http/cgi: new package. |
| * http/httptest: new package. |
| * image: add a decoding test for common file formats. |
| * io/ioutil: add TempDir. |
| * mime/multipart: Header changed from map to MIMEHeader |
| * path/filepath: new OS-specific path support (thanks Gustavo Niemeyer). |
| * reflect: add PtrTo, add Value.Addr (old Addr is now UnsafeAddr). |
| * runtime: use kernel-supplied compare-and-swap on linux/arm. |
| * spec: minor clarification of scope rule for functions. |
| * sync/atomic: new package to expose atomic operations. |
| * syscall: regenerate zerrors_freebsd_amd64.go (thanks Mikio Hara), |
| work around FreeBSD execve kernel bug (thanks Devon H. O'Dell). |
| * template: document the delimiters. |
| * testing: run GC before each benchmark run (thanks Roger Peppe). |
| * unsafe: fix the documentation. |
| * websocket: use httptest.Server for tests (thanks Robert Hencke). |
| * xml: permit nested directives (thanks Chris Dollin). |
| </pre> |
| |
| <h2 id="2011-02-24">2011-02-24</h2> |
| |
| <pre> |
| This release includes changes to the http package and a small language change. |
| Your code will require changes if it manipulates http Headers or omits the |
| condition in if statements. |
| |
| The new http.Header type replaces map[string]string in the Header and Trailer |
| fields of http.Request and http.Response. |
| A Header value can be manipulated via its Get, Set, Add, and Del methods. |
| See http://golang.org/pkg/http/#Header |
| |
| The condition is now mandatory in if statements. |
| Previously it would default to true, as in switch and for statements. |
| This code is now illegal: |
| if x := foo(); { |
| // code that is always executed |
| } |
| The same effect can be achieved like this: |
| if x := foo(); true { |
| // code |
| } |
| Or, in a simpler form: |
| { |
| x := foo() |
| // code |
| } |
| |
| Other changes: |
| * 6l: new -Hwindowsgui flag allows to build windows gui pe (thanks Alex Brainman), |
| pe fixes (thanks Wei Guangjing). |
| * 8l, 6l: allow for more os threads to be created on Windows (thanks Alex Brainman), |
| * build: reduce the use of subshells in recursive make, and |
| remove unused NaCl conditional from make.bash (thanks Dave Cheney). |
| * codereview: fix clpatch with empty diffs (thanks Gustavo Niemeyer). |
| * compress/bzip2: add package. |
| * compress/lzw: implement a decoder. |
| * crypto/openpgp: add package. |
| * crypto/rand: add read buffer to speed up small requests (thanks Albert Strasheim). |
| * crypto/rsa: left-pad OAEP results when needed. |
| * crypto/tls: make protocol negotiation failure fatal. |
| * fmt: stop giving characters to the Scan method of Scanner when we hit a newline in Scanln. |
| * gc: interface error message fixes, |
| make string const comparison unsigned (thanks Jeff R. Allen). |
| * go spec: minor clarification on channel types. |
| * go/ast, parser: condition in if statement is mandatory. |
| * gob: compute information about a user's type once. |
| protect against pure recursive types. |
| * godoc: accept symbolic links as path names provided to -path, |
| add robots.txt, log errors when reading filter files. |
| * html: tokenize HTML comments. |
| * http: add proxy support (thanks Yasuhiro Matsumoto), |
| implement with net/textproto (thanks Petar Maymounkov), |
| send full URL in proxy requests, |
| introduce start of Client and ClientTransport. |
| * image/png: support for more formats (thanks Mikael Tillenius). |
| * json: only use alphanumeric tags, |
| use base64 to encode []byte (thanks Roger Peppe). |
| * ld: detect stack overflow due to NOSPLIT, drop rpath, support weak symbols. |
| * misc/dashboard/builder: talk to hg with utf-8 encoding. |
| * misc/dashboard: notify golang-dev on build failure. |
| * net: *netFD.Read to return os.EOF on eof under windows (thanks Alex Brainman), |
| add IPv4 multicast to UDPConn (thanks Dave Cheney), |
| more accurate IPv4-in-IPv6 API test (thanks Mikio Hara), |
| reject invalid net:proto network names (thanks Olivier Antoine). |
| * netchan: allow use of arbitrary connections (thanks Roger Peppe). |
| * os: add ENODATA and ENOTCONN (thanks Albert Strasheim). |
| * reflect: add a couple of sentences explaining how Methods operate, |
| add a secret method to ArrayOrSliceType to ensure it's only implemented by arrays and slices, |
| add pointer word to CommonType (placeholder for future work). |
| * runtime-gdb.py: gdb pretty printer for go strings properly handles length. |
| * runtime: various bug fixes, more complete stack traces, |
| record $GOROOT_FINAL for runtime.GOROOT. |
| * spec: delete incorrect mention of selector working on pointer to interface type. |
| * sync: add Cond (thanks Gustavo Niemeyer). |
| * syscall: add MCL_* flags for mlockall (thanks Albert Strasheim), |
| implement chmod() for win32 (thanks Yasuhiro Matsumoto). |
| * test/bench: update timings for new GC. |
| * testing: rename cmdline flags to avoid conflicts (thanks Gustavo Niemeyer). |
| * textproto: introduce Header type (thanks Petar Maymounkov). |
| * websocket: use new interface to access Header. |
| </pre> |
| |
| <h2 id="2011-02-15">2011-02-15</h2> |
| |
| <pre> |
| This release includes changes to the io, os, and template packages. |
| You may need to update your code. |
| |
| The io.ReadByter and io.ReadRuner interface types have been renamed to |
| io.ByteReader and io.RuneReader respectively. |
| |
| The os package's ForkExec function has been superseded by the new StartProcess |
| function and an API built around the Process type: |
| http://golang.org/pkg/os/#Process |
| |
| The order of arguments to template.Execute has been reversed to be consistent |
| the notion of "destination first", as with io.Copy, fmt.Fprint, and others. |
| |
| Gotest now works for package main in directories using Make.cmd-based makefiles. |
| |
| The memory allocation runtime problems from the last release are not completely |
| fixed. The virtual memory exhaustion problems encountered by people using |
| ulimit -v have been fixed, but there remain known garbage collector problems |
| when using GOMAXPROCS > 1. |
| |
| Other changes: |
| * 5l: stopped generating 64-bit eor. |
| * 8l: more work on plan9 support (thanks Yuval Pavel Zholkover). |
| * archive/zip: handle files with data descriptors. |
| * arm: working peep-hole optimizer. |
| * asn1: marshal true as 255, not 1. |
| * buffer.go: minor optimization, expanded comment. |
| * build: drop syslog on DISABLE_NET_TESTS=1 (thanks Gustavo Niemeyer), |
| allow clean.bash to work on fresh checkout, |
| change "all tests pass" message to be more obvious, |
| fix spaces in GOROOT (thanks Christopher Nielsen). |
| * bytes: fix bug in buffer.ReadBytes (thanks Evan Shaw). |
| * 5g: better int64 code, |
| don't use MVN instruction. |
| * cgo: don't run cgo when not compiling (thanks Gustavo Niemeyer), |
| fix _cgo_run timestamp file order (thanks Gustavo Niemeyer), |
| fix handling of signed enumerations (thanks Gustavo Niemeyer), |
| os/arch dependent #cgo directives (thanks Gustavo Niemeyer), |
| rename internal f to avoid conflict with possible C global named f. |
| * codereview: fix hgpatch on windows (thanks Yasuhiro Matsumoto), |
| record repository, base revision, |
| use cmd.communicate (thanks Yasuhiro Matsumoto). |
| * container/ring: replace Iter() with Do(). |
| * crypto/cipher: add resync open to OCFB mode. |
| * crypto/openpgp/armor: bug fixes. |
| * crypto/openpgp/packet: new subpackage. |
| * crypto/tls: load a chain of certificates from a file, |
| select best cipher suite, not worst. |
| * crypto/x509: add support for name constraints. |
| * debug/pe: ImportedSymbols fixes (thanks Wei Guangjing). |
| * doc/code: update to reflect that package names need not be unique. |
| * doc/codelab/wiki: a bunch of fixes (thanks Andrey Mirtchovski). |
| * doc/install: update for new versions of Mercurial. |
| * encoding/line: fix line returned after EOF. |
| * flag: allow hexadecimal (0xFF) and octal (0377) input for integer flags. |
| * fmt.Scan: scan binary-exponent floating format, 2.4p-3, |
| hexadecimal (0xFF) and octal (0377) integers. |
| * fmt: document %%; also %b for floating point. |
| * gc, ld: detect stale or incompatible object files, |
| package name main
|