~ubuntu-branches/ubuntu/vivid/golang/vivid

« back to all changes in this revision

Viewing changes to doc/devel/weekly.html

  • Committer: Bazaar Package Importer
  • Author(s): Ondřej Surý
  • Date: 2011-08-03 17:04:59 UTC
  • mfrom: (14.1.2 sid)
  • Revision ID: james.westby@ubuntu.com-20110803170459-wzd99m3567y80ila
Tags: 1:59-1
* Imported Upstream version 59
* Refresh patches to a new release
* Fix FTBFS on ARM (Closes: #634270)
* Update version.bash to work with Debian packaging and not hg
  repository

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
hg update weekly.<i>YYYY-MM-DD</i>
15
15
</pre>
16
16
 
 
17
<h2 id="2011-07-07">2011-07-07 (<a href="release.html#r59">base for r59</a>)</h2>
 
18
 
 
19
<pre>
 
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.
 
23
 
 
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.
 
27
 
 
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.
 
32
 
 
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
 
40
        type T struct {
 
41
                X int "name"
 
42
        }
 
43
should become
 
44
        type T struct {
 
45
                X int `json:"name"`  // or `xml:"name"`
 
46
        }
 
47
Use govet to identify struct tags that need to be changed to use the new syntax.
 
48
 
 
49
Other changes:
 
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.
 
61
* csv: new package.
 
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.
 
121
</pre>
 
122
 
 
123
<h2 id="2011-06-23">2011-06-23</h2>
 
124
 
 
125
<pre>
 
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
 
131
 
 
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.
 
134
 
 
135
Other changes:
 
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).
 
182
</pre>
 
183
 
 
184
<h2 id="2011-06-16">2011-06-16</h2>
 
185
 
 
186
<pre>
 
187
This release includes changes to the sort and image/draw packages that will
 
188
require changes to client code.
 
189
 
 
190
The sort.IntArray type has been renamed to IntSlice, and similarly for
 
191
StringArray and Float64Array.
 
192
 
 
193
The image/draw package’s Draw function now takes an additional argument,
 
194
a compositing operator. If in doubt, use draw.Over.
 
195
 
 
196
Other changes:
 
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).
 
235
</pre>
 
236
 
17
237
<h2 id="2011-06-09">2011-06-09 (<a href="release.html#r58">base for r58</a>)</h2>
18
238
 
19
239
<pre>