github.com/yanyiwu/go@v0.0.0-20150106053140-03d6637dbb7f/doc/devel/release.html (about) 1 <!--{ 2 "Title": "Release History" 3 }--> 4 5 <p>This page summarizes the changes between official stable releases of Go. 6 The <a href="//golang.org/change">change log</a> has the full details.</p> 7 8 <p>To update to a specific release, use:</p> 9 10 <pre> 11 git pull 12 git checkout <i>release-branch</i> 13 </pre> 14 15 <h2 id="go1.4">go1.4 (released 2014/12/10)</h2> 16 17 <p> 18 Go 1.4 is a major release of Go. 19 Read the <a href="/doc/go1.4">Go 1.4 Release Notes</a> for more information. 20 </p> 21 22 <h2 id="go1.3">go1.3 (released 2014/06/18)</h2> 23 24 <p> 25 Go 1.3 is a major release of Go. 26 Read the <a href="/doc/go1.3">Go 1.3 Release Notes</a> for more information. 27 </p> 28 29 <h3 id="go1.3.minor">Minor revisions</h3> 30 31 <p> 32 go1.3.1 (released 2014/08/13) includes bug fixes to the compiler and the <code>runtime</code>, <code>net</code>, and <code>crypto/rsa</code> packages. 33 See the <a href="//code.google.com/p/go/source/list?name=release-branch.go1.3&r=073fc578434bf3e1e22749b559d273c8da728ebb">change history</a> for details. 34 </p> 35 36 <p> 37 go1.3.2 (released 2014/09/25) includes bug fixes to cgo and the crypto/tls packages. 38 See the <a href="//code.google.com/p/go/source/list?name=release-branch.go1.3&r=go1.3.2">change history</a> for details. 39 </p> 40 41 <p> 42 go1.3.3 (released 2014/09/30) includes further bug fixes to cgo, the runtime package, and the nacl port. 43 See the <a href="//code.google.com/p/go/source/list?name=release-branch.go1.3&r=go1.3.3">change history</a> for details. 44 </p> 45 46 <h2 id="go1.2">go1.2 (released 2013/12/01)</h2> 47 48 <p> 49 Go 1.2 is a major release of Go. 50 Read the <a href="/doc/go1.2">Go 1.2 Release Notes</a> for more information. 51 </p> 52 53 <h3 id="go1.2.minor">Minor revisions</h3> 54 55 <p> 56 go1.2.1 (released 2014/03/02) includes bug fixes to the <code>runtime</code>, <code>net</code>, and <code>database/sql</code> packages. 57 See the <a href="//code.google.com/p/go/source/list?name=release-branch.go1.2&r=7ada9e760ce34e78aee5b476c9621556d0fa5d31">change history</a> for details. 58 </p> 59 60 <p> 61 go1.2.2 (released 2014/05/05) includes a 62 <a href="//code.google.com/p/go/source/detail?r=bda3619e7a2c&repo=tools">security fix</a> 63 that affects the tour binary included in the binary distributions (thanks to Guillaume T). 64 </p> 65 66 <h2 id="go1.1">go1.1 (released 2013/05/13)</h2> 67 68 <p> 69 Go 1.1 is a major release of Go. 70 Read the <a href="/doc/go1.1">Go 1.1 Release Notes</a> for more information. 71 </p> 72 73 <h3 id="go1.1.minor">Minor revisions</h3> 74 75 <p> 76 go1.1.1 (released 2013/06/13) includes several compiler and runtime bug fixes. 77 See the <a href="//code.google.com/p/go/source/list?name=release-branch.go1.1&r=43c4a41d24382a56a90e924800c681e435d9e399">change history</a> for details. 78 </p> 79 80 <p> 81 go1.1.2 (released 2013/08/13) includes fixes to the <code>gc</code> compiler 82 and <code>cgo</code>, and the <code>bufio</code>, <code>runtime</code>, 83 <code>syscall</code>, and <code>time</code> packages. 84 See the <a href="//code.google.com/p/go/source/list?name=release-branch.go1.1&r=a6a9792f94acd4ff686b2bc57383d163608b91cf">change history</a> for details. 85 If you use package syscall's <code>Getrlimit</code> and <code>Setrlimit</code> 86 functions under Linux on the ARM or 386 architectures, please note change 87 <a href="//golang.org/change/55ac276af5a7">55ac276af5a7</a> 88 that fixes <a href="//golang.org/issue/5949">issue 5949</a>. 89 </p> 90 91 <h2 id="go1">go1 (released 2012/03/28)</h2> 92 93 <p> 94 Go 1 is a major release of Go that will be stable in the long term. 95 Read the <a href="/doc/go1.html">Go 1 Release Notes</a> for more information. 96 </p> 97 98 <p> 99 It is intended that programs written for Go 1 will continue to compile and run 100 correctly, unchanged, under future versions of Go 1. 101 Read the <a href="/doc/go1compat.html">Go 1 compatibility document</a> for more 102 about the future of Go 1. 103 </p> 104 105 <p> 106 The go1 release corresponds to 107 <code><a href="weekly.html#2012-03-27">weekly.2012-03-27</a></code>. 108 </p> 109 110 <h3 id="go1.minor">Minor revisions</h3> 111 112 <p> 113 go1.0.1 (released 2012/04/25) was issued to 114 <a href="//golang.org/change/a890477d3dfb">fix</a> an 115 <a href="//golang.org/issue/3545">escape analysis bug</a> 116 that can lead to memory corruption. 117 It also includes several minor code and documentation fixes. 118 </p> 119 120 <p> 121 go1.0.2 (released 2012/06/13) was issued to fix two bugs in the implementation 122 of maps using struct or array keys: 123 <a href="//golang.org/issue/3695">issue 3695</a> and 124 <a href="//golang.org/issue/3573">issue 3573</a>. 125 It also includes many minor code and documentation fixes. 126 </p> 127 128 <p> 129 go1.0.3 (released 2012/09/21) includes minor code and documentation fixes. 130 </p> 131 132 <p> 133 See the <a href="//code.google.com/p/go/source/list?name=release-branch.go1">go1 release branch history</a> for the complete list of changes. 134 </p> 135 136 <h2 id="r60">r60 (released 2011/09/07)</h2> 137 138 <p> 139 The r60 release corresponds to 140 <code><a href="weekly.html#2011-08-17">weekly.2011-08-17</a></code>. 141 This section highlights the most significant changes in this release. 142 For a more detailed summary, see the 143 <a href="weekly.html#2011-08-17">weekly release notes</a>. 144 For complete information, see the 145 <a href="//code.google.com/p/go/source/list?r=release-branch.r60">Mercurial change list</a>. 146 </p> 147 148 <h3 id="r60.lang">Language</h3> 149 150 <p> 151 An "else" block is now required to have braces except if the body of the "else" 152 is another "if". Since gofmt always puts those braces in anyway, 153 gofmt-formatted programs will not be affected. 154 To fix other programs, run gofmt. 155 </p> 156 157 <h3 id="r60.pkg">Packages</h3> 158 159 <p> 160 <a href="/pkg/http/">Package http</a>'s URL parsing and query escaping code 161 (such as <code>ParseURL</code> and <code>URLEscape</code>) has been moved to 162 the new <a href="/pkg/url/">url package</a>, with several simplifications to 163 the names. Client code can be updated automatically with gofix. 164 </p> 165 166 <p> 167 <a href="/pkg/image/">Package image</a> has had significant changes made to the 168 <code>Pix</code> field of struct types such as 169 <a href="/pkg/image/#RGBA">image.RGBA</a> and 170 <a href="/pkg/image/#NRGBA">image.NRGBA</a>. 171 The <a href="/pkg/image/#Image">image.Image</a> interface type has not changed, 172 though, and you should not need to change your code if you don't explicitly 173 refer to <code>Pix</code> fields. For example, if you decode a number of images 174 using the <a href="/pkg/image/jpeg/">image/jpeg</a> package, compose them using 175 <a href="/pkg/image/draw/">image/draw</a>, and then encode the result using 176 <a href="/pkg/img/png">image/png</a>, then your code should still work as 177 before. 178 If your code <i>does</i> refer to <code>Pix</code> fields see the 179 <a href="/doc/devel/weekly.html#2011-07-19">weekly.2011-07-19</a> 180 snapshot notes for how to update your code. 181 </p> 182 183 <p> 184 <a href="/pkg/template/">Package template</a> has been replaced with a new 185 templating package (formerly <code>exp/template</code>). The original template 186 package is still available as <a href="/pkg/old/template/">old/template</a>. 187 The <code>old/template</code> package is deprecated and will be removed. 188 The Go tree has been updated to use the new template package. We encourage 189 users of the old template package to switch to the new one. Code that uses 190 <code>template</code> or <code>exp/template</code> will need to change its 191 import lines to <code>"old/template"</code> or <code>"template"</code>, 192 respectively. 193 </p> 194 195 <h3 id="r60.cmd">Tools</h3> 196 197 <p> 198 <a href="/cmd/goinstall/">Goinstall</a> now uses a new tag selection scheme. 199 When downloading or updating, goinstall looks for a tag or branch with the 200 <code>"go."</code> prefix that corresponds to the local Go version. For Go 201 <code>release.r58</code> it looks for <code>go.r58</code>. For 202 <code>weekly.2011-06-03</code> it looks for <code>go.weekly.2011-06-03</code>. 203 If the specific <code>go.X</code> tag or branch is not found, it chooses the 204 closest earlier version. If an appropriate tag or branch is found, goinstall 205 uses that version of the code. Otherwise it uses the default version selected 206 by the version control system. Library authors are encouraged to use the 207 appropriate tag or branch names in their repositories to make their libraries 208 more accessible. 209 </p> 210 211 <h3 id="r60.minor">Minor revisions</h3> 212 213 <p> 214 r60.1 includes a 215 <a href="//golang.org/change/1824581bf62d">linker 216 fix</a>, a pair of 217 <a href="//golang.org/change/9ef4429c2c64">goplay</a> 218 <a href="//golang.org/change/d42ed8c3098e">fixes</a>, 219 and a <code>json</code> package 220 <a href="//golang.org/change/d5e97874fe84">fix</a> and 221 a new 222 <a href="//golang.org/change/4f0e6269213f">struct tag 223 option</a>. 224 </p> 225 226 <p> 227 r60.2 228 <a href="//golang.org/change/ff19536042ac">fixes</a> 229 a memory leak involving maps. 230 </p> 231 232 <p> 233 r60.3 fixes a 234 <a href="//golang.org/change/01fa62f5e4e5">reflect bug</a>. 235 </p> 236 237 <h2 id="r59">r59 (released 2011/08/01)</h2> 238 239 <p> 240 The r59 release corresponds to 241 <code><a href="weekly.html#2011-07-07">weekly.2011-07-07</a></code>. 242 This section highlights the most significant changes in this release. 243 For a more detailed summary, see the 244 <a href="weekly.html#2011-07-07">weekly release notes</a>. 245 For complete information, see the 246 <a href="//code.google.com/p/go/source/list?r=release-branch.r59">Mercurial change list</a>. 247 </p> 248 249 <h3 id="r59.lang">Language</h3> 250 251 <p> 252 This release includes a language change that restricts the use of 253 <code>goto</code>. In essence, a <code>goto</code> statement outside a block 254 cannot jump to a label inside that block. Your code may require changes if it 255 uses <code>goto</code>. 256 See <a href="//golang.org/change/dc6d3cf9279d">this 257 changeset</a> for how the new rule affected the Go tree. 258 </p> 259 260 <h3 id="r59.pkg">Packages</h3> 261 262 <p> 263 As usual, <a href="/cmd/gofix/">gofix</a> will handle the bulk of the rewrites 264 necessary for these changes to package APIs. 265 </p> 266 267 <p> 268 <a href="/pkg/http">Package http</a> has a new 269 <a href="/pkg/http/#FileSystem">FileSystem</a> interface that provides access 270 to files. The <a href="/pkg/http/#FileServer">FileServer</a> helper now takes a 271 <code>FileSystem</code> argument instead of an explicit file system root. By 272 implementing your own <code>FileSystem</code> you can use the 273 <code>FileServer</code> to serve arbitrary data. 274 </p> 275 276 <p> 277 <a href="/pkg/os/">Package os</a>'s <code>ErrorString</code> type has been 278 hidden. Most uses of <code>os.ErrorString</code> can be replaced with 279 <a href="/pkg/os/#NewError">os.NewError</a>. 280 </p> 281 282 <p> 283 <a href="/pkg/reflect/">Package reflect</a> supports a new struct tag scheme 284 that enables sharing of struct tags between multiple packages. 285 In this scheme, the tags must be of the form: 286 </p> 287 <pre> 288 `key:"value" key2:"value2"` 289 </pre> 290 <p> 291 The <a href="/pkg/reflect/#StructField">StructField</a> type's Tag field now 292 has type <a href="/pkg/reflect/#StructTag">StructTag</a>, which has a 293 <code>Get</code> method. Clients of <a href="/pkg/json">json</a> and 294 <a href="/pkg/xml">xml</a> will need to be updated. Code that says 295 </p> 296 <pre> 297 type T struct { 298 X int "name" 299 } 300 </pre> 301 <p> 302 should become 303 </p> 304 <pre> 305 type T struct { 306 X int `json:"name"` // or `xml:"name"` 307 } 308 </pre> 309 <p> 310 Use <a href="/cmd/govet/">govet</a> to identify struct tags that need to be 311 changed to use the new syntax. 312 </p> 313 314 <p> 315 <a href="/pkg/sort/">Package sort</a>'s <code>IntArray</code> type has been 316 renamed to <a href="/pkg/sort/#IntSlice">IntSlice</a>, and similarly for 317 <a href="/pkg/sort/#Float64Slice">Float64Slice</a> and 318 <a href="/pkg/sort/#StringSlice">StringSlice</a>. 319 </p> 320 321 <p> 322 <a href="/pkg/strings/">Package strings</a>'s <code>Split</code> function has 323 itself been split into <a href="/pkg/strings/#Split">Split</a> and 324 <a href="/pkg/strings/#SplitN">SplitN</a>. 325 <code>SplitN</code> is the same as the old <code>Split</code>. 326 The new <code>Split</code> is equivalent to <code>SplitN</code> with a final 327 argument of -1. 328 </p> 329 330 <a href="/pkg/image/draw/">Package image/draw</a>'s 331 <a href="/pkg/image/draw/#Draw">Draw</a> function now takes an additional 332 argument, a compositing operator. 333 If in doubt, use <a href="/pkg/image/draw/#Op">draw.Over</a>. 334 </p> 335 336 <h3 id="r59.cmd">Tools</h3> 337 338 <p> 339 <a href="/cmd/goinstall/">Goinstall</a> now installs packages and commands from 340 arbitrary remote repositories (not just Google Code, Github, and so on). 341 See the <a href="/cmd/goinstall/">goinstall documentation</a> for details. 342 </p> 343 344 <h2 id="r58">r58 (released 2011/06/29)</h2> 345 346 <p> 347 The r58 release corresponds to 348 <code><a href="weekly.html#2011-06-09">weekly.2011-06-09</a></code> 349 with additional bug fixes. 350 This section highlights the most significant changes in this release. 351 For a more detailed summary, see the 352 <a href="weekly.html#2011-06-09">weekly release notes</a>. 353 For complete information, see the 354 <a href="//code.google.com/p/go/source/list?r=release-branch.r58">Mercurial change list</a>. 355 </p> 356 357 <h3 id="r58.lang">Language</h3> 358 359 <p> 360 This release fixes a <a href="//golang.org/change/b720749486e1">use of uninitialized memory in programs that misuse <code>goto</code></a>. 361 </p> 362 363 <h3 id="r58.pkg">Packages</h3> 364 365 <p> 366 As usual, <a href="/cmd/gofix/">gofix</a> will handle the bulk of the rewrites 367 necessary for these changes to package APIs. 368 </p> 369 370 <p> 371 <a href="/pkg/http/">Package http</a> drops the <code>finalURL</code> return 372 value from the <a href="/pkg/http/#Client.Get">Client.Get</a> method. The value 373 is now available via the new <code>Request</code> field on <a 374 href="/pkg/http/#Response">http.Response</a>. 375 Most instances of the type map[string][]string in have been 376 replaced with the new <a href="/pkg/http/#Values">Values</a> type. 377 </p> 378 379 <p> 380 <a href="/pkg/exec/">Package exec</a> has been redesigned with a more 381 convenient and succinct API. 382 </p> 383 384 <p> 385 <a href="/pkg/strconv/">Package strconv</a>'s <a href="/pkg/strconv/#Quote">Quote</a> 386 function now escapes only those Unicode code points not classified as printable 387 by <a href="/pkg/unicode/#IsPrint">unicode.IsPrint</a>. 388 Previously Quote would escape all non-ASCII characters. 389 This also affects the <a href="/pkg/fmt/">fmt</a> package's <code>"%q"</code> 390 formatting directive. The previous quoting behavior is still available via 391 strconv's new <a href="/pkg/strconv/#QuoteToASCII">QuoteToASCII</a> function. 392 </p> 393 394 <p> 395 <a href="/pkg/os/signal/">Package os/signal</a>'s 396 <a href="/pkg/os/#Signal">Signal</a> and 397 <a href="/pkg/os/#UnixSignal">UnixSignal</a> types have been moved to the 398 <a href="/pkg/os/">os</a> package. 399 </p> 400 401 <p> 402 <a href="/pkg/image/draw/">Package image/draw</a> is the new name for 403 <code>exp/draw</code>. The GUI-related code from <code>exp/draw</code> is now 404 located in the <a href="/pkg/exp/gui/">exp/gui</a> package. 405 </p> 406 407 <h3 id="r58.cmd">Tools</h3> 408 409 <p> 410 <a href="/cmd/goinstall/">Goinstall</a> now observes the GOPATH environment 411 variable to build and install your own code and external libraries outside of 412 the Go tree (and avoid writing Makefiles). 413 </p> 414 415 416 <h3 id="r58.minor">Minor revisions</h3> 417 418 <p>r58.1 adds 419 <a href="//golang.org/change/293c25943586">build</a> and 420 <a href="//golang.org/change/bf17e96b6582">runtime</a> 421 changes to make Go run on OS X 10.7 Lion. 422 </p> 423 424 <h2 id="r57">r57 (released 2011/05/03)</h2> 425 426 <p> 427 The r57 release corresponds to 428 <code><a href="weekly.html#2011-04-27">weekly.2011-04-27</a></code> 429 with additional bug fixes. 430 This section highlights the most significant changes in this release. 431 For a more detailed summary, see the 432 <a href="weekly.html#2011-04-27">weekly release notes</a>. 433 For complete information, see the 434 <a href="//code.google.com/p/go/source/list?r=release-branch.r57">Mercurial change list</a>. 435 </p> 436 437 <p>The new <a href="/cmd/gofix">gofix</a> tool finds Go programs that use old APIs and rewrites them to use 438 newer ones. After you update to a new Go release, gofix helps make the 439 necessary changes to your programs. Gofix will handle the http, os, and syscall 440 package changes described below, and we will update the program to keep up with 441 future changes to the libraries. 442 Gofix can’t 443 handle all situations perfectly, so read and test the changes it makes before 444 committing them. 445 See <a href="//blog.golang.org/2011/04/introducing-gofix.html">the gofix blog post</a> for more 446 information.</p> 447 448 <h3 id="r57.lang">Language</h3> 449 450 <p> 451 <a href="/doc/go_spec.html#Receive_operator">Multiple assignment syntax</a> replaces the <code>closed</code> function. 452 The syntax for channel 453 receives allows an optional second assigned value, a boolean value 454 indicating whether the channel is closed. This code: 455 </p> 456 457 <pre> 458 v := <-ch 459 if closed(ch) { 460 // channel is closed 461 } 462 </pre> 463 464 <p>should now be written as:</p> 465 466 <pre> 467 v, ok := <-ch 468 if !ok { 469 // channel is closed 470 } 471 </pre> 472 473 <p><a href="/doc/go_spec.html#Label_scopes">Unused labels are now illegal</a>, just as unused local variables are.</p> 474 475 <h3 id="r57.pkg">Packages</h3> 476 477 <p> 478 <a href="/pkg/gob/">Package gob</a> will now encode and decode values of types that implement the 479 <a href="/pkg/gob/#GobEncoder">GobEncoder</a> and 480 <a href="/pkg/gob/#GobDecoder">GobDecoder</a> interfaces. This allows types with unexported 481 fields to transmit self-consistent descriptions; examples include 482 <a href="/pkg/big/#Int.GobDecode">big.Int</a> and <a href="/pkg/big/#Rat.GobDecode">big.Rat</a>. 483 </p> 484 485 <p> 486 <a href="/pkg/http/">Package http</a> has been redesigned. 487 For clients, there are new 488 <a href="/pkg/http/#Client">Client</a> and <a href="/pkg/http/#Transport">Transport</a> 489 abstractions that give more control over HTTP details such as headers sent 490 and redirections followed. These abstractions make it easy to implement 491 custom clients that add functionality such as <a href="//code.google.com/p/goauth2/source/browse/oauth/oauth.go">OAuth2</a>. 492 For servers, <a href="/pkg/http/#ResponseWriter">ResponseWriter</a> 493 has dropped its non-essential methods. 494 The Hijack and Flush methods are no longer required; 495 code can test for them by checking whether a specific value implements 496 <a href="/pkg/http/#Hijacker">Hijacker</a> or <a href="/pkg/http/#Flusher">Flusher</a>. 497 The RemoteAddr and UsingTLS methods are replaced by <a href="/pkg/http/#Request">Request</a>'s 498 RemoteAddr and TLS fields. 499 The SetHeader method is replaced by a Header method; 500 its result, of type <a href="/pkg/http/#Header">Header</a>, 501 implements Set and other methods. 502 </p> 503 504 <p> 505 <a href="/pkg/net/">Package net</a> 506 drops the <code>laddr</code> argument from <a href="/pkg/net/#Conn.Dial">Dial</a> 507 and drops the <code>cname</code> return value 508 from <a href="/pkg/net/#LookupHost">LookupHost</a>. 509 The implementation now uses <a href="/cmd/cgo/">cgo</a> to implement 510 network name lookups using the C library getaddrinfo(3) 511 function when possible. This ensures that Go and C programs 512 resolve names the same way and also avoids the OS X 513 application-level firewall. 514 </p> 515 516 <p> 517 <a href="/pkg/os/">Package os</a> 518 introduces simplified <a href="/pkg/os/#File.Open">Open</a> 519 and <a href="/pkg/os/#File.Create">Create</a> functions. 520 The original Open is now available as <a href="/pkg/os/#File.OpenFile">OpenFile</a>. 521 The final three arguments to <a href="/pkg/os/#Process.StartProcess">StartProcess</a> 522 have been replaced by a pointer to a <a href="/pkg/os/#ProcAttr">ProcAttr</a>. 523 </p> 524 525 <p> 526 <a href="/pkg/reflect/">Package reflect</a> has been redesigned. 527 <a href="/pkg/reflect/#Type">Type</a> is now an interface that implements 528 all the possible type methods. 529 Instead of a type switch on a Type <code>t</code>, switch on <code>t.Kind()</code>. 530 <a href="/pkg/reflect/#Value">Value</a> is now a struct value that 531 implements all the possible value methods. 532 Instead of a type switch on a Value <code>v</code>, switch on <code>v.Kind()</code>. 533 Typeof and NewValue are now called <a href="/pkg/reflect/#Type.TypeOf">TypeOf</a> and <a href="/pkg/reflect/#Value.ValueOf">ValueOf</a> 534 To create a writable Value, use <code>New(t).Elem()</code> instead of <code>Zero(t)</code>. 535 See <a href="//golang.org/change/843855f3c026">the change description</a> 536 for the full details. 537 The new API allows a more efficient implementation of Value 538 that avoids many of the allocations required by the previous API. 539 </p> 540 541 <p> 542 Remember that gofix will handle the bulk of the rewrites 543 necessary for these changes to package APIs. 544 </p> 545 546 <h3 id="r57.cmd">Tools</h3> 547 548 <p><a href="/cmd/gofix/">Gofix</a>, a new command, is described above.</p> 549 550 <p> 551 <a href="/cmd/gotest/">Gotest</a> is now a Go program instead of a shell script. 552 The new <code>-test.short</code> flag in combination with package testing's Short function 553 allows you to write tests that can be run in normal or “short” mode; 554 all.bash runs tests in short mode to reduce installation time. 555 The Makefiles know about the flag: use <code>make testshort</code>. 556 </p> 557 558 <p> 559 The run-time support now implements CPU and memory profiling. 560 Gotest's new 561 <a href="/cmd/gotest/"><code>-test.cpuprofile</code> and 562 <code>-test.memprofile</code> flags</a> make it easy to 563 profile tests. 564 To add profiling to your web server, see the <a href="/pkg/http/pprof/">http/pprof</a> 565 documentation. 566 For other uses, see the <a href="/pkg/runtime/pprof/">runtime/pprof</a> documentation. 567 </p> 568 569 <h3 id="r57.minor">Minor revisions</h3> 570 571 <p>r57.1 fixes a <a href="//golang.org/change/ff2bc62726e7145eb2ecc1e0f076998e4a8f86f0">nil pointer dereference in http.FormFile</a>.</p> 572 <p>r57.2 fixes a <a href="//golang.org/change/063b0ff67d8277df03c956208abc068076818dae">use of uninitialized memory in programs that misuse <code>goto</code></a>.</p> 573 574 <h2 id="r56">r56 (released 2011/03/16)</h2> 575 576 <p> 577 The r56 release was the first stable release and corresponds to 578 <code><a href="weekly.html#2011-03-07">weekly.2011-03-07.1</a></code>. 579 The numbering starts at 56 because before this release, 580 what we now consider weekly snapshots were called releases. 581 </p>