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