14
14
hg update weekly.<i>YYYY-MM-DD</i>
17
<h2 id="2011-07-07">2011-07-07 (<a href="release.html#r59">base for r59</a>)</h2>
20
This weekly snapshot includes changes to the strings, http, reflect, json, and
21
xml packages. Code that uses these packages will need changes. Most of these
22
changes can be made automatically with gofix.
24
The strings package's Split function has itself been split into Split and
25
SplitN. SplitN is the same as the old Split. The new Split is equivalent to
26
SplitN with a final argument of -1.
28
The http package has a new FileSystem interface that provides access to files.
29
The FileServer helper now takes a FileSystem argument instead of an explicit
30
file system root. By implementing your own FileSystem you can use the
31
FileServer to serve arbitrary data.
33
The reflect package supports a new struct tag scheme that enables sharing of
34
struct tags between multiple packages.
35
In this scheme, the tags must be of the form:
36
key:"value" key2:"value2"
37
reflect.StructField's Tag field now has type StructTag (a string type), which
38
has method Get(key string) string that returns the associated value.
39
Clients of json and xml will need to be updated. Code that says
45
X int `json:"name"` // or `xml:"name"`
47
Use govet to identify struct tags that need to be changed to use the new syntax.
50
* 5l, 6l, 8l: drop use of ed during build.
51
* asn1: support T61 and UTF8 string.
52
* bufio: do not cache Read errors (thanks Graham Miller).
53
* build: make version.bash aware of branches.
54
* cgi: don't depend on CGI.pm for tests.
55
* codereview: make --ignore_hgpatch_failure work again,
56
restrict sync to default branch.
57
* crypto/openpgp: add ability to reserialize keys,
58
bug fix (thanks Gideon Jan-Wessel Redelinghuys).
59
* crypto/tls: fix generate_cert.go.
60
* crypto/x509: prevent chain cycles in Verify.
62
* doc: remove ed from apt-get package list.
63
* docs: fold the prog.sh scripting from makehtml into htmlgen itself.
64
* ebnflint: better handling of stdin.
65
* exp/regexp/syntax: new experimental RE2-based regexp implementation.
66
* exp/template: a new experimental templating package.
67
* fmt: add SkipSpace to fmt's ScanState interface.
68
* fmt: rename errno and error to err for doc consistency.
69
* gc: avoid package name ambiguity in error messages,
70
fix package quoting logic,
71
fixes for Plan 9 (thanks Lucio De Re).
72
* go/build: evaluate symlinks before comparing path to GOPATH.
73
* gob: use exported fields in structs in the package documentation.
74
* godoc: ignore directories that begin with '.',
75
search GOPATH for documentation.
76
* gofix: os/signal, path/filepath, and sort fixes (thanks Robert Hencke),
77
* goinstall: add support for generic hosts (thanks Julian Phillips),
78
only report successfully-installed packages to the dashboard,
79
try to access via https (thanks Yasuhiro Matsumoto).
80
* gotest: add -test.benchtime and -test.cpu flags.
81
* html: fixes and improvements (thanks Yasuhiro Matsumoto).
82
* http/cgi: add Handler.Dir to specify working directory (thanks Yasuhiro Matsumoto).
83
* http: add StripPrefix handler wrapper,
84
assume ContentLength 0 on GET requests,
85
better handling of 0-length Request.Body,
86
do TLS handshake explicitly before copying TLS state,
87
document that ServerConn and ClientConn are low-level,
88
make NewChunkedReader public (thanks Andrew Balholm),
89
respect Handlers setting Connection: close in their response.
90
* image: more tests, Paletted.Opaque optimization.
91
* io.WriteString: if the object has a WriteString method, use it (thanks Evan Shaw).
92
* ld: elide the Go symbol table when using -s (thanks Anthony Martin).
93
* ld: fix ELF strip by removing overlap of sections (thanks Gustavo Niemeyer).
94
* mime/multipart: parse LF-delimited messages, not just CRLF.
95
* mime: permit lower-case media type parameters (thanks Pascal S. de Kloe).
96
* misc/dashboard: new features and improvements (not yet deployed).
97
* misc/emacs: update list of builtins (thanks Quan Yong Zhai).
98
* misc/vim: allow only utf-8 for file encoding (thanks Yasuhiro Matsumoto).
99
* os: fix documentation for FileInfo.Name,
100
simplify WriteString,
101
use a different symbol from syscall in mkunixsignals.sh.
102
* path/filepath: enable TestWalk to run on windows (thanks Alex Brainman).
103
* reflect: add MethodByName,
104
allow Len on String values.
105
* regexp: document that Regexp is thread-safe.
106
* runtime/cgo: check for errors from pthread_create (thanks Albert Strasheim).
107
* runtime: add Semacquire/Semrelease benchmarks,
108
improved Semacquire/Semrelease implementation,
109
windows/amd64 port (thanks Wei Guangjing).
110
* sync: add fast path to Once,
111
improve Mutex to allow successive acquisitions,
112
new and improved benchmarks.
113
* syscall: regenerate zerrors for darwin/linux/freebsd,
114
support for tty options in StartProcess (thanks Ken Rockot).
115
* testing: make ResetTimer not start/stop the timer,
116
scale benchmark precision to 0.01ns if needed.
117
* time: zero-pad two-digit years.
118
* unicode/maketables: update debugging data.
119
* windows: define and use syscall.Handle (thanks Wei Guangjing).
120
* xml: add Marshal and MarshalIndent.
123
<h2 id="2011-06-23">2011-06-23</h2>
126
This release includes a language change that restricts the use of goto.
127
In essence, a "goto" statement outside a block cannot jump to a label inside
128
that block. Your code may require changes if it uses goto.
129
This changeset shows how the new rule affected the Go tree:
130
http://code.google.com/p/go/source/detail?r=dc6d3cf9279d
132
The os.ErrorString type has been hidden. If your code uses os.ErrorString it
133
must be changed. Most uses of os.ErrorString can be replaced with os.NewError.
136
* 5c: do not use R9 and R10.
137
* 8l: more fixes for Plan 9 (thanks Lucio De Re).
138
* build: Make.ccmd: link with mach lib (thanks Joe Poirier).
139
* build: exclude packages that fail on Plan 9 (thanks Anthony Martin).
140
* cc: nit: silence comment warnings (thanks Dave Cheney).
141
* codereview.py: note that hg change -d abandons a change list (thanks Robert Hencke).
142
* crypto/openpgp: add ElGamal support.
143
* doc/faq: add question about converting from []T to []interface{}.
144
* doc: Effective Go: fix variadic function example (thanks Ben Lynn).
145
* exec: LookPath should not search %PATH% for files like c:cmd.exe (thanks Alex Brainman),
146
add support for Plan 9 (thanks Anthony Martin),
147
better error message for windows LookPath (thanks Alex Brainman).
148
* fmt: catch panics from calls to String etc.
149
* gc: descriptive panic for nil pointer -> value method call,
150
implement goto restriction,
151
unsafe.Alignof, unsafe.Offsetof, unsafe.Sizeof now return uintptr.
152
* go/build: include Import objects in Script Inputs.
153
* godefs: rudimentary tests (thanks Robert Hencke).
154
* goinstall: refactor and generalize repo handling code (thanks Julian Phillips),
155
temporarily use Makefiles by default (override with -make=false).
156
* gopprof: update list of memory allocators.
157
* http: add Server.ListenAndServeTLS,
158
buffer request.Write,
159
fix req.Cookie(name) with cookies in one header,
160
permit handlers to explicitly remove the Date header,
161
write Header keys with empty values.
162
* image: basic test for the 16-bits-per-color-channel types.
163
* io: clarify Read, ReadAt, Copy, Copyn EOF behavior.
164
* ld: don't attempt to build dynamic sections unnecessarily (thanks Gustavo Niemeyer).
165
* libmach: fix disassembly of FCMOVcc and FCOMI (thanks Anthony Martin),
166
fix tracing on linux (for cov) (thanks Anthony Martin).
167
* mime: fix RFC references (thanks Pascal S. de Kloe).
168
* misc/gobuilder: run make single-threaded on windows (thanks Alex Brainman).
169
* misc/godashboard: Accept sub-directories for goinstall's report (thanks Yasuhiro Matsumoto).
170
* nacl, tiny: remove vestiges (thanks Robert Hencke).
171
* net, syscall: interface for windows (thanks Yasuhiro Matsumoto).
172
* os: change Waitmsg String method to use pointer receiver (thanks Graham Miller).
173
* runtime: don't use twice the memory with grsec-like kernels (thanks Gustavo Niemeyer),
174
* spec: disallow goto into blocks.
175
* sync: restore GOMAXPROCS during benchmarks.
176
* syscall: add LSF support for linux (thanks Mikio Hara),
177
add socket control message support for darwin, freebsd, linux (thanks Mikio Hara),
178
add tty support to StartProcess (thanks Ken Rockot),
179
fix build for Sizeof change.
180
* test: test of goto restrictions.
181
* time: add support for Plan 9 (thanks Anthony Martin).
184
<h2 id="2011-06-16">2011-06-16</h2>
187
This release includes changes to the sort and image/draw packages that will
188
require changes to client code.
190
The sort.IntArray type has been renamed to IntSlice, and similarly for
191
StringArray and Float64Array.
193
The image/draw package’s Draw function now takes an additional argument,
194
a compositing operator. If in doubt, use draw.Over.
197
* build: fix header files for Plan 9 (thanks Lucio De Re).
198
* cgo: handle new Apple LLVM-based gcc from Xcode 4.2.
199
* crypto/openpgp: add ability to encrypt and sign messages.
200
* doc/gopher: add goggled gopher logo for App Engine.
201
* doc: Update notes for 3-day Go course.
202
* exec: make LookPath work when PATHEXT var not set on Windows (thanks Alex Brainman).
203
* exp/regexp/syntax: syntax data structures, parser, escapes, character classes.
204
* exp/template: lexical scanner for new template package.
205
* fmt: debugging formats for characters: %+q %#U.
206
* gc: frame compaction for arm,
207
handle go print() and go println(),
208
work around goto bug.
209
* go/build: fixes, self-contained tests.
210
* go/printer, gofmt: print "select {}" on one line.
211
* godoc: replace OS file system accesses in favor of a FileSystem interface.
212
* gofix: fix inconsistent indentation in help output (thanks Scott Lawrence).
213
* goinstall: use go/build package to scan and build packages.
214
* http/spdy: improve error handling (thanks William Chan).
215
* http: use runtime/debug.Stack() to dump stack trace on panic.
216
* ld: dwarf emit filenames in debug_line header instead of as extended opcodes,
217
fix link Windows PE __declspec(dllimport) symbol (thanks Wei Guangjing),
218
make .rodata section read-only (thanks Gustavo Niemeyer).
219
* mail: decode RFC 2047 "B" encoding.
220
* mime/multipart: remove temp files after tests on Windows (thanks Alex Brainman).
221
* net: export all fields in Interface (thanks Mikio Hara),
222
rearrange source to run more tests on Windows (thanks Alex Brainman),
223
sendfile for win32 (thanks Yasuhiro Matsumoto).
224
* os: Plan 9, fix OpenFile & Chmod, add Process.Kill (thanks Yuval Pavel Zholkover).
225
* runtime: fix Plan 9 "lingering goroutines bug" (thanks Yuval Pavel Zholkover).
226
* spec: clarify rules for append, scope rules for :=,
227
specify constant conversions,
228
unsafe.Alignof/Offsetof/Sizeof return uintptr.
229
* syscall, os, exec: add *syscall.SysProcAttr field to os.ProcAttr and exec.Cmd.
230
* syscall: add ptrace on darwin (thanks Jeff Hodges),
231
mksyscall_windows.pl should output unix newline (thanks Yasuhiro Matsumoto).
232
update BPF support for BSD variants (thanks Mikio Hara),
233
use strict in perl scripts (thanks Yasuhiro Matsumoto).
234
* xml: handle non-string attribute fields (thanks Maxim Ushakov).
17
237
<h2 id="2011-06-09">2011-06-09 (<a href="release.html#r58">base for r58</a>)</h2>