content/static/doc: copy The Go Project page (contrib.html) from Go repo

The Go Project page is copied from Go master as of 2020/04/24
(commit golang/go@ee8972cd126f0d575be90c0ffbb08fc09d6ede19, CL 209679).

This page not closely tied to specific Go releases, and thus is better
suited to live in the x/website repo.

It will be modified in CL 229483 to use the release history data from
the internal/history package, rather than using hand-written HTML
which needs to be updated manually after each major Go release.

For golang/go#29205.
For golang/go#29206.

Change-Id: I6a6fa734fb3d873da59d67d796616fc53d684610
Reviewed-on: https://go-review.googlesource.com/c/website/+/229482
Reviewed-by: Alexander Rakoczy <alex@golang.org>
diff --git a/content/static/doc/contrib.html b/content/static/doc/contrib.html
new file mode 100644
index 0000000..f0a01c5
--- /dev/null
+++ b/content/static/doc/contrib.html
@@ -0,0 +1,133 @@
+<!--{
+	"Title": "The Go Project",
+	"Path": "/project/"
+}-->
+
+<img class="gopher" src="/doc/gopher/project.png" />
+
+<div id="manual-nav"></div>
+
+<p>
+Go is an open source project developed by a team at
+<a href="//google.com/">Google</a> and many
+<a href="/CONTRIBUTORS">contributors</a> from the open source community.
+</p>
+
+<p>
+Go is distributed under a <a href="/LICENSE">BSD-style license</a>.
+</p>
+
+<h3 id="announce"><a href="//groups.google.com/group/golang-announce">Announcements Mailing List</a></h3>
+<p>
+A low traffic mailing list for important announcements, such as new releases.
+</p>
+<p>
+We encourage all Go users to subscribe to
+<a href="//groups.google.com/group/golang-announce">golang-announce</a>.
+</p>
+
+
+<h2 id="go1">Version history</h2>
+
+<h3 id="release"><a href="/doc/devel/release.html">Release History</a></h3>
+
+<p>A <a href="/doc/devel/release.html">summary</a> of the changes between Go releases. Notes for the major releases:</p>
+
+<ul>
+	<li><a href="/doc/go1.14">Go 1.14</a> <small>(February 2020)</small></li>
+	<li><a href="/doc/go1.13">Go 1.13</a> <small>(September 2019)</small></li>
+	<li><a href="/doc/go1.12">Go 1.12</a> <small>(February 2019)</small></li>
+	<li><a href="/doc/go1.11">Go 1.11</a> <small>(August 2018)</small></li>
+	<li><a href="/doc/go1.10">Go 1.10</a> <small>(February 2018)</small></li>
+	<li><a href="/doc/go1.9">Go 1.9</a> <small>(August 2017)</small></li>
+	<li><a href="/doc/go1.8">Go 1.8</a> <small>(February 2017)</small></li>
+	<li><a href="/doc/go1.7">Go 1.7</a> <small>(August 2016)</small></li>
+	<li><a href="/doc/go1.6">Go 1.6</a> <small>(February 2016)</small></li>
+	<li><a href="/doc/go1.5">Go 1.5</a> <small>(August 2015)</small></li>
+	<li><a href="/doc/go1.4">Go 1.4</a> <small>(December 2014)</small></li>
+	<li><a href="/doc/go1.3">Go 1.3</a> <small>(June 2014)</small></li>
+	<li><a href="/doc/go1.2">Go 1.2</a> <small>(December 2013)</small></li>
+	<li><a href="/doc/go1.1">Go 1.1</a> <small>(May 2013)</small></li>
+	<li><a href="/doc/go1">Go 1</a> <small>(March 2012)</small></li>
+</ul>
+
+<h3 id="go1compat"><a href="/doc/go1compat">Go 1 and the Future of Go Programs</a></h3>
+<p>
+What Go 1 defines and the backwards-compatibility guarantees one can expect as
+Go 1 matures.
+</p>
+
+
+<h2 id="resources">Developer Resources</h2>
+
+<h3 id="source"><a href="https://golang.org/change">Source Code</a></h3>
+<p>Check out the Go source code.</p>
+
+<h3 id="discuss"><a href="//groups.google.com/group/golang-nuts">Discussion Mailing List</a></h3>
+<p>
+A mailing list for general discussion of Go programming.
+</p>
+<p>
+Questions about using Go or announcements relevant to other Go users should be sent to
+<a href="//groups.google.com/group/golang-nuts">golang-nuts</a>.
+</p>
+
+<h3 id="golang-dev"><a href="https://groups.google.com/group/golang-dev">Developer</a> and
+<a href="https://groups.google.com/group/golang-codereviews">Code Review Mailing List</a></h3>
+<p>The <a href="https://groups.google.com/group/golang-dev">golang-dev</a>
+mailing list is for discussing code changes to the Go project.
+The <a href="https://groups.google.com/group/golang-codereviews">golang-codereviews</a>
+mailing list is for actual reviewing of the code changes (CLs).</p>
+
+<h3 id="golang-checkins"><a href="https://groups.google.com/group/golang-checkins">Checkins Mailing List</a></h3>
+<p>A mailing list that receives a message summarizing each checkin to the Go repository.</p>
+
+<h3 id="build_status"><a href="//build.golang.org/">Build Status</a></h3>
+<p>View the status of Go builds across the supported operating
+systems and architectures.</p>
+
+
+<h2 id="howto">How you can help</h2>
+
+<h3><a href="//golang.org/issue">Reporting issues</a></h3>
+
+<p>
+If you spot bugs, mistakes, or inconsistencies in the Go project's code or
+documentation, please let us know by
+<a href="//golang.org/issue/new">filing a ticket</a>
+on our <a href="//golang.org/issue">issue tracker</a>.
+(Of course, you should check it's not an existing issue before creating
+a new one.)
+</p>
+
+<p>
+We pride ourselves on being meticulous; no issue is too small.
+</p>
+
+<p>
+Security-related issues should be reported to
+<a href="mailto:security@golang.org">security@golang.org</a>.<br>
+See the <a href="/security">security policy</a> for more details.
+</p>
+
+<p>
+Community-related issues should be reported to
+<a href="mailto:conduct@golang.org">conduct@golang.org</a>.<br>
+See the <a href="/conduct">Code of Conduct</a> for more details.
+</p>
+
+<h3><a href="/doc/contribute.html">Contributing code &amp; documentation</a></h3>
+
+<p>
+Go is an open source project and we welcome contributions from the community.
+</p>
+<p>
+To get started, read these <a href="/doc/contribute.html">contribution
+guidelines</a> for information on design, testing, and our code review process.
+</p>
+<p>
+Check <a href="//golang.org/issue">the tracker</a> for
+open issues that interest you. Those labeled
+<a href="https://github.com/golang/go/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22">help wanted</a>
+are particularly in need of outside help.
+</p>
diff --git a/content/static/internal/gen/gen.go b/content/static/internal/gen/gen.go
index 03148c6..384c75f 100644
--- a/content/static/internal/gen/gen.go
+++ b/content/static/internal/gen/gen.go
@@ -43,6 +43,7 @@
 	"dirlist.html",
 	"doc/code.html",
 	"doc/conduct.html",
+	"doc/contrib.html",
 	"doc/copyright.html",
 	"doc/devel/pre_go1.html",
 	"doc/devel/release.html",
diff --git a/content/static/static.go b/content/static/static.go
index cb0b96c..cf5eb6b 100644
--- a/content/static/static.go
+++ b/content/static/static.go
@@ -49,6 +49,8 @@
 
 	"doc/conduct.html": "<!--{\x0a\x09\"Title\":\x20\"Go\x20Community\x20Code\x20of\x20Conduct\",\x0a\x09\"Path\":\x20\x20\"/conduct\"\x0a}-->\x0a\x0a<style>\x0aul\x20{\x0a\x09max-width:\x20800px;\x0a}\x0aul\x20ul\x20{\x0a\x09margin:\x200\x200\x205px;\x0a}\x0a</style>\x0a\x0a<h2\x20id=\"about\">About</h2>\x0a\x0a<p>\x0aOnline\x20communities\x20include\x20people\x20from\x20many\x20different\x20backgrounds.\x0aThe\x20Go\x20contributors\x20are\x20committed\x20to\x20providing\x20a\x20friendly,\x20safe\x20and\x20welcoming\x0aenvironment\x20for\x20all,\x20regardless\x20of\x20gender\x20identity\x20and\x20expression,\x20sexual\x20orientation,\x0adisabilities,\x20neurodiversity,\x20physical\x20appearance,\x20body\x20size,\x20ethnicity,\x20nationality,\x0arace,\x20age,\x20religion,\x20or\x20similar\x20personal\x20characteristics.\x0a</p>\x0a\x0a<p>\x0aThe\x20first\x20goal\x20of\x20the\x20Code\x20of\x20Conduct\x20is\x20to\x20specify\x20a\x20baseline\x20standard\x0aof\x20behavior\x20so\x20that\x20people\x20with\x20different\x20social\x20values\x20and\x20communication\x0astyles\x20can\x20talk\x20about\x20Go\x20effectively,\x20productively,\x20and\x20respectfully.\x0a</p>\x0a\x0a<p>\x0aThe\x20second\x20goal\x20is\x20to\x20provide\x20a\x20mechanism\x20for\x20resolving\x20conflicts\x20in\x20the\x0acommunity\x20when\x20they\x20arise.\x0a</p>\x0a\x0a<p>\x0aThe\x20third\x20goal\x20of\x20the\x20Code\x20of\x20Conduct\x20is\x20to\x20make\x20our\x20community\x20welcoming\x20to\x0apeople\x20from\x20different\x20backgrounds.\x0aDiversity\x20is\x20critical\x20to\x20the\x20project;\x20for\x20Go\x20to\x20be\x20successful,\x20it\x20needs\x0acontributors\x20and\x20users\x20from\x20all\x20backgrounds.\x0a(See\x20<a\x20href=\"https://blog.golang.org/open-source\">Go,\x20Open\x20Source,\x20Community</a>.)\x0a</p>\x0a\x0a<p>\x0aWe\x20believe\x20that\x20healthy\x20debate\x20and\x20disagreement\x20are\x20essential\x20to\x20a\x20healthy\x20project\x20and\x20community.\x0aHowever,\x20it\x20is\x20never\x20ok\x20to\x20be\x20disrespectful.\x0aWe\x20value\x20diverse\x20opinions,\x20but\x20we\x20value\x20respectful\x20behavior\x20more.\x0a</p>\x0a\x0a<h2\x20id=\"values\">Gopher\x20values</h2>\x0a\x0a<p>\x0aThese\x20are\x20the\x20values\x20to\x20which\x20people\x20in\x20the\x20Go\x20community\x20(\xe2\x80\x9cGophers\xe2\x80\x9d)\x20should\x20aspire.\x0a</p>\x0a\x0a<ul>\x0a<li>Be\x20friendly\x20and\x20welcoming\x0a<li>Be\x20patient\x0a\x20\x20\x20\x20<ul>\x0a\x20\x20\x20\x20<li>Remember\x20that\x20people\x20have\x20varying\x20communication\x20styles\x20and\x20that\x20not\x0a\x20\x20\x20\x20\x20\x20\x20\x20everyone\x20is\x20using\x20their\x20native\x20language.\x0a\x20\x20\x20\x20\x20\x20\x20\x20(Meaning\x20and\x20tone\x20can\x20be\x20lost\x20in\x20translation.)\x0a\x20\x20\x20\x20</ul>\x0a<li>Be\x20thoughtful\x0a\x20\x20\x20\x20<ul>\x0a\x20\x20\x20\x20<li>Productive\x20communication\x20requires\x20effort.\x0a\x20\x20\x20\x20\x20\x20\x20\x20Think\x20about\x20how\x20your\x20words\x20will\x20be\x20interpreted.\x0a\x20\x20\x20\x20<li>Remember\x20that\x20sometimes\x20it\x20is\x20best\x20to\x20refrain\x20entirely\x20from\x20commenting.\x0a\x20\x20\x20\x20</ul>\x0a<li>Be\x20respectful\x0a\x20\x20\x20\x20<ul>\x0a\x20\x20\x20\x20<li>In\x20particular,\x20respect\x20differences\x20of\x20opinion.\x0a\x20\x20\x20\x20</ul>\x0a<li>Be\x20charitable\x0a\x20\x20\x20\x20<ul>\x0a\x20\x20\x20\x20<li>Interpret\x20the\x20arguments\x20of\x20others\x20in\x20good\x20faith,\x20do\x20not\x20seek\x20to\x20disagree.\x0a\x20\x20\x20\x20<li>When\x20we\x20do\x20disagree,\x20try\x20to\x20understand\x20why.\x0a\x20\x20\x20\x20</ul>\x0a<li>Avoid\x20destructive\x20behavior:\x0a\x20\x20\x20\x20<ul>\x0a\x20\x20\x20\x20<li>Derailing:\x20stay\x20on\x20topic;\x20if\x20you\x20want\x20to\x20talk\x20about\x20something\x20else,\x0a\x20\x20\x20\x20\x20\x20\x20\x20start\x20a\x20new\x20conversation.\x0a\x20\x20\x20\x20<li>Unconstructive\x20criticism:\x20don't\x20merely\x20decry\x20the\x20current\x20state\x20of\x20affairs;\x0a\x20\x20\x20\x20\x20\x20\x20\x20offer\xe2\x80\x94or\x20at\x20least\x20solicit\xe2\x80\x94suggestions\x20as\x20to\x20how\x20things\x20may\x20be\x20improved.\x0a\x20\x20\x20\x20<li>Snarking\x20(pithy,\x20unproductive,\x20sniping\x20comments)\x0a\x20\x20\x20\x20<li>Discussing\x20potentially\x20offensive\x20or\x20sensitive\x20issues;\x0a\x20\x20\x20\x20\x20\x20\x20\x20this\x20all\x20too\x20often\x20leads\x20to\x20unnecessary\x20conflict.\x0a\x20\x20\x20\x20<li>Microaggressions:\x20brief\x20and\x20commonplace\x20verbal,\x20behavioral\x20and\x0a\x20\x20\x20\x20\x20\x20\x20\x20environmental\x20indignities\x20that\x20communicate\x20hostile,\x20derogatory\x20or\x20negative\x0a\x20\x20\x20\x20\x20\x20\x20\x20slights\x20and\x20insults\x20to\x20a\x20person\x20or\x20group.\x0a\x20\x20\x20\x20</ul>\x0a</ul>\x0a\x0a<p>\x0aPeople\x20are\x20complicated.\x0aYou\x20should\x20expect\x20to\x20be\x20misunderstood\x20and\x20to\x20misunderstand\x20others;\x0awhen\x20this\x20inevitably\x20occurs,\x20resist\x20the\x20urge\x20to\x20be\x20defensive\x20or\x20assign\x20blame.\x0aTry\x20not\x20to\x20take\x20offense\x20where\x20no\x20offense\x20was\x20intended.\x0aGive\x20people\x20the\x20benefit\x20of\x20the\x20doubt.\x0aEven\x20if\x20the\x20intent\x20was\x20to\x20provoke,\x20do\x20not\x20rise\x20to\x20it.\x0aIt\x20is\x20the\x20responsibility\x20of\x20<i>all\x20parties</i>\x20to\x20de-escalate\x20conflict\x20when\x20it\x20arises.\x0a</p>\x0a\x0a<h2\x20id=\"code\">Code\x20of\x20Conduct</h2>\x0a\x0a<h3\x20id=\"our-pledge\">Our\x20Pledge</h3>\x0a\x0a<p>In\x20the\x20interest\x20of\x20fostering\x20an\x20open\x20and\x20welcoming\x20environment,\x20we\x20as\x0acontributors\x20and\x20maintainers\x20pledge\x20to\x20making\x20participation\x20in\x20our\x20project\x20and\x0aour\x20community\x20a\x20harassment-free\x20experience\x20for\x20everyone,\x20regardless\x20of\x20age,\x20body\x0asize,\x20disability,\x20ethnicity,\x20gender\x20identity\x20and\x20expression,\x20level\x20of\x0aexperience,\x20education,\x20socio-economic\x20status,\x20nationality,\x20personal\x20appearance,\x0arace,\x20religion,\x20or\x20sexual\x20identity\x20and\x20orientation.</p>\x0a\x0a<h3\x20id=\"our-standards\">Our\x20Standards</h3>\x0a\x0a<p>Examples\x20of\x20behavior\x20that\x20contributes\x20to\x20creating\x20a\x20positive\x20environment\x0ainclude:</p>\x0a\x0a<ul>\x0a<li>Using\x20welcoming\x20and\x20inclusive\x20language</li>\x0a<li>Being\x20respectful\x20of\x20differing\x20viewpoints\x20and\x20experiences</li>\x0a<li>Gracefully\x20accepting\x20constructive\x20criticism</li>\x0a<li>Focusing\x20on\x20what\x20is\x20best\x20for\x20the\x20community</li>\x0a<li>Showing\x20empathy\x20towards\x20other\x20community\x20members</li>\x0a</ul>\x0a\x0a<p>Examples\x20of\x20unacceptable\x20behavior\x20by\x20participants\x20include:</p>\x0a\x0a<ul>\x0a<li>The\x20use\x20of\x20sexualized\x20language\x20or\x20imagery\x20and\x20unwelcome\x20sexual\x20attention\x20or\x0aadvances</li>\x0a<li>Trolling,\x20insulting/derogatory\x20comments,\x20and\x20personal\x20or\x20political\x20attacks</li>\x0a<li>Public\x20or\x20private\x20harassment</li>\x0a<li>Publishing\x20others&rsquo;\x20private\x20information,\x20such\x20as\x20a\x20physical\x20or\x20electronic\x0aaddress,\x20without\x20explicit\x20permission</li>\x0a<li>Other\x20conduct\x20which\x20could\x20reasonably\x20be\x20considered\x20inappropriate\x20in\x20a\x0aprofessional\x20setting</li>\x0a</ul>\x0a\x0a<h3\x20id=\"our-responsibilities\">Our\x20Responsibilities</h3>\x0a\x0a<p>Project\x20maintainers\x20are\x20responsible\x20for\x20clarifying\x20the\x20standards\x20of\x20acceptable\x0abehavior\x20and\x20are\x20expected\x20to\x20take\x20appropriate\x20and\x20fair\x20corrective\x20action\x20in\x0aresponse\x20to\x20any\x20instances\x20of\x20unacceptable\x20behavior.</p>\x0a\x0a<p>Project\x20maintainers\x20have\x20the\x20right\x20and\x20responsibility\x20to\x20remove,\x20edit,\x20or\x20reject\x0acomments,\x20commits,\x20code,\x20wiki\x20edits,\x20issues,\x20and\x20other\x20contributions\x20that\x20are\x0anot\x20aligned\x20to\x20this\x20Code\x20of\x20Conduct,\x20or\x20to\x20ban\x20temporarily\x20or\x20permanently\x20any\x0acontributor\x20for\x20other\x20behaviors\x20that\x20they\x20deem\x20inappropriate,\x20threatening,\x0aoffensive,\x20or\x20harmful.</p>\x0a\x0a<h3\x20id=\"scope\">Scope</h3>\x0a\x0a<p>This\x20Code\x20of\x20Conduct\x20applies\x20both\x20within\x20project\x20spaces\x20and\x20in\x20public\x20spaces\x0awhen\x20an\x20individual\x20is\x20representing\x20the\x20project\x20or\x20its\x20community.\x20Examples\x20of\x0arepresenting\x20a\x20project\x20or\x20community\x20include\x20using\x20an\x20official\x20project\x20e-mail\x0aaddress,\x20posting\x20via\x20an\x20official\x20social\x20media\x20account,\x20or\x20acting\x20as\x20an\x20appointed\x0arepresentative\x20at\x20an\x20online\x20or\x20offline\x20event.\x20Representation\x20of\x20a\x20project\x20may\x20be\x0afurther\x20defined\x20and\x20clarified\x20by\x20project\x20maintainers.</p>\x0a\x0a<p>This\x20Code\x20of\x20Conduct\x20also\x20applies\x20outside\x20the\x20project\x20spaces\x20when\x20the\x20Project\x0aStewards\x20have\x20a\x20reasonable\x20belief\x20that\x20an\x20individual&rsquo;s\x20behavior\x20may\x20have\x20a\x0anegative\x20impact\x20on\x20the\x20project\x20or\x20its\x20community.</p>\x0a\x0a<h3\x20id=\"conflict-resolution\"></a>Conflict\x20Resolution</h3>\x0a\x0a<p>We\x20do\x20not\x20believe\x20that\x20all\x20conflict\x20is\x20bad;\x20healthy\x20debate\x20and\x20disagreement\x0aoften\x20yield\x20positive\x20results.\x20However,\x20it\x20is\x20never\x20okay\x20to\x20be\x20disrespectful\x20or\x0ato\x20engage\x20in\x20behavior\x20that\x20violates\x20the\x20project\xe2\x80\x99s\x20code\x20of\x20conduct.</p>\x0a\x0a<p>If\x20you\x20see\x20someone\x20violating\x20the\x20code\x20of\x20conduct,\x20you\x20are\x20encouraged\x20to\x20address\x0athe\x20behavior\x20directly\x20with\x20those\x20involved.\x20Many\x20issues\x20can\x20be\x20resolved\x20quickly\x0aand\x20easily,\x20and\x20this\x20gives\x20people\x20more\x20control\x20over\x20the\x20outcome\x20of\x20their\x0adispute.\x20If\x20you\x20are\x20unable\x20to\x20resolve\x20the\x20matter\x20for\x20any\x20reason,\x20or\x20if\x20the\x0abehavior\x20is\x20threatening\x20or\x20harassing,\x20report\x20it.\x20We\x20are\x20dedicated\x20to\x20providing\x0aan\x20environment\x20where\x20participants\x20feel\x20welcome\x20and\x20safe.</p>\x0a\x0a<p\x20id=\"reporting\">Reports\x20should\x20be\x20directed\x20to\x20Carmen\x20Andoh\x20and\x20Van\x20Riper,\x20the\x0aGo\x20Project\x20Stewards,\x20at\x20<i>conduct@golang.org</i>.\x0aIt\x20is\x20the\x20Project\x20Stewards\xe2\x80\x99\x20duty\x20to\x0areceive\x20and\x20address\x20reported\x20violations\x20of\x20the\x20code\x20of\x20conduct.\x20They\x20will\x20then\x0awork\x20with\x20a\x20committee\x20consisting\x20of\x20representatives\x20from\x20the\x20Open\x20Source\x0aPrograms\x20Office\x20and\x20the\x20Google\x20Open\x20Source\x20Strategy\x20team.\x20If\x20for\x20any\x20reason\x20you\x0aare\x20uncomfortable\x20reaching\x20out\x20the\x20Project\x20Stewards,\x20please\x20email\x0athe\x20Google\x20Open\x20Source\x20Programs\x20Office\x20at\x20<i>opensource@google.com</i>.</p>\x0a\x0a<p>We\x20will\x20investigate\x20every\x20complaint,\x20but\x20you\x20may\x20not\x20receive\x20a\x20direct\x20response.\x0aWe\x20will\x20use\x20our\x20discretion\x20in\x20determining\x20when\x20and\x20how\x20to\x20follow\x20up\x20on\x20reported\x0aincidents,\x20which\x20may\x20range\x20from\x20not\x20taking\x20action\x20to\x20permanent\x20expulsion\x20from\x0athe\x20project\x20and\x20project-sponsored\x20spaces.\x20We\x20will\x20notify\x20the\x20accused\x20of\x20the\x0areport\x20and\x20provide\x20them\x20an\x20opportunity\x20to\x20discuss\x20it\x20before\x20any\x20action\x20is\x20taken.\x0aThe\x20identity\x20of\x20the\x20reporter\x20will\x20be\x20omitted\x20from\x20the\x20details\x20of\x20the\x20report\x0asupplied\x20to\x20the\x20accused.\x20In\x20potentially\x20harmful\x20situations,\x20such\x20as\x20ongoing\x0aharassment\x20or\x20threats\x20to\x20anyone&rsquo;s\x20safety,\x20we\x20may\x20take\x20action\x20without\x20notice.</p>\x0a\x0a<h3\x20id=\"attribution\">Attribution</h3>\x0a\x0a<p>This\x20Code\x20of\x20Conduct\x20is\x20adapted\x20from\x20the\x20Contributor\x20Covenant,\x20version\x201.4,\x0aavailable\x20at\x0a<a\x20href=\"https://www.contributor-covenant.org/version/1/4/code-of-conduct.html\">https://www.contributor-covenant.org/version/1/4/code-of-conduct.html</a></p>\x0a\x0a<h2\x20id=\"summary\">Summary</h2>\x0a\x0a<ul>\x0a<li>Treat\x20everyone\x20with\x20respect\x20and\x20kindness.\x0a<li>Be\x20thoughtful\x20in\x20how\x20you\x20communicate.\x0a<li>Don\xe2\x80\x99t\x20be\x20destructive\x20or\x20inflammatory.\x0a<li>If\x20you\x20encounter\x20an\x20issue,\x20please\x20mail\x20<a\x20href=\"mailto:conduct@golang.org\">conduct@golang.org</a>.\x0a</ul>\x0a",
 
+	"doc/contrib.html": "<!--{\x0a\x09\"Title\":\x20\"The\x20Go\x20Project\",\x0a\x09\"Path\":\x20\"/project/\"\x0a}-->\x0a\x0a<img\x20class=\"gopher\"\x20src=\"/doc/gopher/project.png\"\x20/>\x0a\x0a<div\x20id=\"manual-nav\"></div>\x0a\x0a<p>\x0aGo\x20is\x20an\x20open\x20source\x20project\x20developed\x20by\x20a\x20team\x20at\x0a<a\x20href=\"//google.com/\">Google</a>\x20and\x20many\x0a<a\x20href=\"/CONTRIBUTORS\">contributors</a>\x20from\x20the\x20open\x20source\x20community.\x0a</p>\x0a\x0a<p>\x0aGo\x20is\x20distributed\x20under\x20a\x20<a\x20href=\"/LICENSE\">BSD-style\x20license</a>.\x0a</p>\x0a\x0a<h3\x20id=\"announce\"><a\x20href=\"//groups.google.com/group/golang-announce\">Announcements\x20Mailing\x20List</a></h3>\x0a<p>\x0aA\x20low\x20traffic\x20mailing\x20list\x20for\x20important\x20announcements,\x20such\x20as\x20new\x20releases.\x0a</p>\x0a<p>\x0aWe\x20encourage\x20all\x20Go\x20users\x20to\x20subscribe\x20to\x0a<a\x20href=\"//groups.google.com/group/golang-announce\">golang-announce</a>.\x0a</p>\x0a\x0a\x0a<h2\x20id=\"go1\">Version\x20history</h2>\x0a\x0a<h3\x20id=\"release\"><a\x20href=\"/doc/devel/release.html\">Release\x20History</a></h3>\x0a\x0a<p>A\x20<a\x20href=\"/doc/devel/release.html\">summary</a>\x20of\x20the\x20changes\x20between\x20Go\x20releases.\x20Notes\x20for\x20the\x20major\x20releases:</p>\x0a\x0a<ul>\x0a\x09<li><a\x20href=\"/doc/go1.14\">Go\x201.14</a>\x20<small>(February\x202020)</small></li>\x0a\x09<li><a\x20href=\"/doc/go1.13\">Go\x201.13</a>\x20<small>(September\x202019)</small></li>\x0a\x09<li><a\x20href=\"/doc/go1.12\">Go\x201.12</a>\x20<small>(February\x202019)</small></li>\x0a\x09<li><a\x20href=\"/doc/go1.11\">Go\x201.11</a>\x20<small>(August\x202018)</small></li>\x0a\x09<li><a\x20href=\"/doc/go1.10\">Go\x201.10</a>\x20<small>(February\x202018)</small></li>\x0a\x09<li><a\x20href=\"/doc/go1.9\">Go\x201.9</a>\x20<small>(August\x202017)</small></li>\x0a\x09<li><a\x20href=\"/doc/go1.8\">Go\x201.8</a>\x20<small>(February\x202017)</small></li>\x0a\x09<li><a\x20href=\"/doc/go1.7\">Go\x201.7</a>\x20<small>(August\x202016)</small></li>\x0a\x09<li><a\x20href=\"/doc/go1.6\">Go\x201.6</a>\x20<small>(February\x202016)</small></li>\x0a\x09<li><a\x20href=\"/doc/go1.5\">Go\x201.5</a>\x20<small>(August\x202015)</small></li>\x0a\x09<li><a\x20href=\"/doc/go1.4\">Go\x201.4</a>\x20<small>(December\x202014)</small></li>\x0a\x09<li><a\x20href=\"/doc/go1.3\">Go\x201.3</a>\x20<small>(June\x202014)</small></li>\x0a\x09<li><a\x20href=\"/doc/go1.2\">Go\x201.2</a>\x20<small>(December\x202013)</small></li>\x0a\x09<li><a\x20href=\"/doc/go1.1\">Go\x201.1</a>\x20<small>(May\x202013)</small></li>\x0a\x09<li><a\x20href=\"/doc/go1\">Go\x201</a>\x20<small>(March\x202012)</small></li>\x0a</ul>\x0a\x0a<h3\x20id=\"go1compat\"><a\x20href=\"/doc/go1compat\">Go\x201\x20and\x20the\x20Future\x20of\x20Go\x20Programs</a></h3>\x0a<p>\x0aWhat\x20Go\x201\x20defines\x20and\x20the\x20backwards-compatibility\x20guarantees\x20one\x20can\x20expect\x20as\x0aGo\x201\x20matures.\x0a</p>\x0a\x0a\x0a<h2\x20id=\"resources\">Developer\x20Resources</h2>\x0a\x0a<h3\x20id=\"source\"><a\x20href=\"https://golang.org/change\">Source\x20Code</a></h3>\x0a<p>Check\x20out\x20the\x20Go\x20source\x20code.</p>\x0a\x0a<h3\x20id=\"discuss\"><a\x20href=\"//groups.google.com/group/golang-nuts\">Discussion\x20Mailing\x20List</a></h3>\x0a<p>\x0aA\x20mailing\x20list\x20for\x20general\x20discussion\x20of\x20Go\x20programming.\x0a</p>\x0a<p>\x0aQuestions\x20about\x20using\x20Go\x20or\x20announcements\x20relevant\x20to\x20other\x20Go\x20users\x20should\x20be\x20sent\x20to\x0a<a\x20href=\"//groups.google.com/group/golang-nuts\">golang-nuts</a>.\x0a</p>\x0a\x0a<h3\x20id=\"golang-dev\"><a\x20href=\"https://groups.google.com/group/golang-dev\">Developer</a>\x20and\x0a<a\x20href=\"https://groups.google.com/group/golang-codereviews\">Code\x20Review\x20Mailing\x20List</a></h3>\x0a<p>The\x20<a\x20href=\"https://groups.google.com/group/golang-dev\">golang-dev</a>\x0amailing\x20list\x20is\x20for\x20discussing\x20code\x20changes\x20to\x20the\x20Go\x20project.\x0aThe\x20<a\x20href=\"https://groups.google.com/group/golang-codereviews\">golang-codereviews</a>\x0amailing\x20list\x20is\x20for\x20actual\x20reviewing\x20of\x20the\x20code\x20changes\x20(CLs).</p>\x0a\x0a<h3\x20id=\"golang-checkins\"><a\x20href=\"https://groups.google.com/group/golang-checkins\">Checkins\x20Mailing\x20List</a></h3>\x0a<p>A\x20mailing\x20list\x20that\x20receives\x20a\x20message\x20summarizing\x20each\x20checkin\x20to\x20the\x20Go\x20repository.</p>\x0a\x0a<h3\x20id=\"build_status\"><a\x20href=\"//build.golang.org/\">Build\x20Status</a></h3>\x0a<p>View\x20the\x20status\x20of\x20Go\x20builds\x20across\x20the\x20supported\x20operating\x0asystems\x20and\x20architectures.</p>\x0a\x0a\x0a<h2\x20id=\"howto\">How\x20you\x20can\x20help</h2>\x0a\x0a<h3><a\x20href=\"//golang.org/issue\">Reporting\x20issues</a></h3>\x0a\x0a<p>\x0aIf\x20you\x20spot\x20bugs,\x20mistakes,\x20or\x20inconsistencies\x20in\x20the\x20Go\x20project's\x20code\x20or\x0adocumentation,\x20please\x20let\x20us\x20know\x20by\x0a<a\x20href=\"//golang.org/issue/new\">filing\x20a\x20ticket</a>\x0aon\x20our\x20<a\x20href=\"//golang.org/issue\">issue\x20tracker</a>.\x0a(Of\x20course,\x20you\x20should\x20check\x20it's\x20not\x20an\x20existing\x20issue\x20before\x20creating\x0aa\x20new\x20one.)\x0a</p>\x0a\x0a<p>\x0aWe\x20pride\x20ourselves\x20on\x20being\x20meticulous;\x20no\x20issue\x20is\x20too\x20small.\x0a</p>\x0a\x0a<p>\x0aSecurity-related\x20issues\x20should\x20be\x20reported\x20to\x0a<a\x20href=\"mailto:security@golang.org\">security@golang.org</a>.<br>\x0aSee\x20the\x20<a\x20href=\"/security\">security\x20policy</a>\x20for\x20more\x20details.\x0a</p>\x0a\x0a<p>\x0aCommunity-related\x20issues\x20should\x20be\x20reported\x20to\x0a<a\x20href=\"mailto:conduct@golang.org\">conduct@golang.org</a>.<br>\x0aSee\x20the\x20<a\x20href=\"/conduct\">Code\x20of\x20Conduct</a>\x20for\x20more\x20details.\x0a</p>\x0a\x0a<h3><a\x20href=\"/doc/contribute.html\">Contributing\x20code\x20&amp;\x20documentation</a></h3>\x0a\x0a<p>\x0aGo\x20is\x20an\x20open\x20source\x20project\x20and\x20we\x20welcome\x20contributions\x20from\x20the\x20community.\x0a</p>\x0a<p>\x0aTo\x20get\x20started,\x20read\x20these\x20<a\x20href=\"/doc/contribute.html\">contribution\x0aguidelines</a>\x20for\x20information\x20on\x20design,\x20testing,\x20and\x20our\x20code\x20review\x20process.\x0a</p>\x0a<p>\x0aCheck\x20<a\x20href=\"//golang.org/issue\">the\x20tracker</a>\x20for\x0aopen\x20issues\x20that\x20interest\x20you.\x20Those\x20labeled\x0a<a\x20href=\"https://github.com/golang/go/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22\">help\x20wanted</a>\x0aare\x20particularly\x20in\x20need\x20of\x20outside\x20help.\x0a</p>\x0a",
+
 	"doc/copyright.html": "<!--{\x0a\x09\"Title\":\x20\"Copyright\"\x0a}-->\x0a\x0a<p>\x0a\x20\x20Except\x20as\x0a\x20\x20<a\x20href=\"https://developers.google.com/site-policies#restrictions\">noted</a>,\x20the\x20contents\x20of\x20this\x0a\x20\x20site\x20are\x20licensed\x20under\x20the\x0a\x20\x20<a\x20href=\"https://creativecommons.org/licenses/by/3.0/\">Creative\x20Commons\x20Attribution\x203.0\x20License</a>,\x0a\x20\x20and\x20code\x20is\x20licensed\x20under\x20a\x20<a\x20href=\"/LICENSE\">BSD\x20license</a>.\x0a</p>\x0a",
 
 	"doc/devel/pre_go1.html": "<!--{\x0a\x09\"Title\":\x20\"Pre-Go\x201\x20Release\x20History\"\x0a}-->\x0a\x0a<p>\x0aThis\x20page\x20summarizes\x20the\x20changes\x20between\x20stable\x20releases\x20of\x20Go\x20prior\x20to\x20Go\x201.\x0aSee\x20the\x20<a\x20href=\"release.html\">Release\x20History</a>\x20page\x20for\x20notes\x20on\x20recent\x20releases.\x0a</p>\x0a\x0a<h2\x20id=\"r60\">r60\x20(released\x202011/09/07)</h2>\x0a\x0a<p>\x0aThe\x20r60\x20release\x20corresponds\x20to\x20\x0a<code><a\x20href=\"weekly.html#2011-08-17\">weekly.2011-08-17</a></code>.\x0aThis\x20section\x20highlights\x20the\x20most\x20significant\x20changes\x20in\x20this\x20release.\x0aFor\x20a\x20more\x20detailed\x20summary,\x20see\x20the\x0a<a\x20href=\"weekly.html#2011-08-17\">weekly\x20release\x20notes</a>.\x0aFor\x20complete\x20information,\x20see\x20the\x0a<a\x20href=\"//code.google.com/p/go/source/list?r=release-branch.r60\">Mercurial\x20change\x20list</a>.\x0a</p>\x0a\x0a<h3\x20id=\"r60.lang\">Language</h3>\x0a\x0a<p>\x0aAn\x20\"else\"\x20block\x20is\x20now\x20required\x20to\x20have\x20braces\x20except\x20if\x20the\x20body\x20of\x20the\x20\"else\"\x0ais\x20another\x20\"if\".\x20Since\x20gofmt\x20always\x20puts\x20those\x20braces\x20in\x20anyway,\x0agofmt-formatted\x20programs\x20will\x20not\x20be\x20affected.\x0aTo\x20fix\x20other\x20programs,\x20run\x20gofmt.\x0a</p>\x0a\x0a<h3\x20id=\"r60.pkg\">Packages</h3>\x0a\x0a<p>\x0a<a\x20href=\"/pkg/http/\">Package\x20http</a>'s\x20URL\x20parsing\x20and\x20query\x20escaping\x20code\x0a(such\x20as\x20<code>ParseURL</code>\x20and\x20<code>URLEscape</code>)\x20has\x20been\x20moved\x20to\x0athe\x20new\x20<a\x20href=\"/pkg/url/\">url\x20package</a>,\x20with\x20several\x20simplifications\x20to\x0athe\x20names.\x20Client\x20code\x20can\x20be\x20updated\x20automatically\x20with\x20gofix.\x0a</p>\x0a\x0a<p>\x0a<a\x20href=\"/pkg/image/\">Package\x20image</a>\x20has\x20had\x20significant\x20changes\x20made\x20to\x20the\x0a<code>Pix</code>\x20field\x20of\x20struct\x20types\x20such\x20as\x0a<a\x20href=\"/pkg/image/#RGBA\">image.RGBA</a>\x20and\x0a<a\x20href=\"/pkg/image/#NRGBA\">image.NRGBA</a>.\x0aThe\x20<a\x20href=\"/pkg/image/#Image\">image.Image</a>\x20interface\x20type\x20has\x20not\x20changed,\x0athough,\x20and\x20you\x20should\x20not\x20need\x20to\x20change\x20your\x20code\x20if\x20you\x20don't\x20explicitly\x0arefer\x20to\x20<code>Pix</code>\x20fields.\x20For\x20example,\x20if\x20you\x20decode\x20a\x20number\x20of\x20images\x0ausing\x20the\x20<a\x20href=\"/pkg/image/jpeg/\">image/jpeg</a>\x20package,\x20compose\x20them\x20using\x0a<a\x20href=\"/pkg/image/draw/\">image/draw</a>,\x20and\x20then\x20encode\x20the\x20result\x20using\x0a<a\x20href=\"/pkg/img/png\">image/png</a>,\x20then\x20your\x20code\x20should\x20still\x20work\x20as\x0abefore.\x0aIf\x20your\x20code\x20<i>does</i>\x20refer\x20to\x20<code>Pix</code>\x20fields\x20see\x20the\x20\x0a<a\x20href=\"/doc/devel/weekly.html#2011-07-19\">weekly.2011-07-19</a>\x0asnapshot\x20notes\x20for\x20how\x20to\x20update\x20your\x20code.\x0a</p>\x0a\x0a<p>\x0a<a\x20href=\"/pkg/template/\">Package\x20template</a>\x20has\x20been\x20replaced\x20with\x20a\x20new\x0atemplating\x20package\x20(formerly\x20<code>exp/template</code>).\x20The\x20original\x20template\x0apackage\x20is\x20still\x20available\x20as\x20<a\x20href=\"/pkg/old/template/\">old/template</a>.\x0aThe\x20<code>old/template</code>\x20package\x20is\x20deprecated\x20and\x20will\x20be\x20removed.\x0aThe\x20Go\x20tree\x20has\x20been\x20updated\x20to\x20use\x20the\x20new\x20template\x20package.\x20We\x20encourage\x0ausers\x20of\x20the\x20old\x20template\x20package\x20to\x20switch\x20to\x20the\x20new\x20one.\x20Code\x20that\x20uses\x0a<code>template</code>\x20or\x20<code>exp/template</code>\x20will\x20need\x20to\x20change\x20its\x0aimport\x20lines\x20to\x20<code>\"old/template\"</code>\x20or\x20<code>\"template\"</code>,\x0arespectively.\x0a</p>\x0a\x0a<h3\x20id=\"r60.cmd\">Tools</h3>\x0a\x0a<p>\x0a<a\x20href=\"/cmd/goinstall/\">Goinstall</a>\x20now\x20uses\x20a\x20new\x20tag\x20selection\x20scheme.\x0aWhen\x20downloading\x20or\x20updating,\x20goinstall\x20looks\x20for\x20a\x20tag\x20or\x20branch\x20with\x20the\x0a<code>\"go.\"</code>\x20prefix\x20that\x20corresponds\x20to\x20the\x20local\x20Go\x20version.\x20For\x20Go\x0a<code>release.r58</code>\x20it\x20looks\x20for\x20<code>go.r58</code>.\x20For\x0a<code>weekly.2011-06-03</code>\x20it\x20looks\x20for\x20<code>go.weekly.2011-06-03</code>.\x0aIf\x20the\x20specific\x20<code>go.X</code>\x20tag\x20or\x20branch\x20is\x20not\x20found,\x20it\x20chooses\x20the\x0aclosest\x20earlier\x20version.\x20If\x20an\x20appropriate\x20tag\x20or\x20branch\x20is\x20found,\x20goinstall\x0auses\x20that\x20version\x20of\x20the\x20code.\x20Otherwise\x20it\x20uses\x20the\x20default\x20version\x20selected\x0aby\x20the\x20version\x20control\x20system.\x20Library\x20authors\x20are\x20encouraged\x20to\x20use\x20the\x0aappropriate\x20tag\x20or\x20branch\x20names\x20in\x20their\x20repositories\x20to\x20make\x20their\x20libraries\x0amore\x20accessible.\x0a</p>\x0a\x0a<h3\x20id=\"r60.minor\">Minor\x20revisions</h3>\x0a\x0a<p>\x0ar60.1\x20includes\x20a\x20\x0a<a\x20href=\"//golang.org/change/1824581bf62d\">linker\x0afix</a>,\x20a\x20pair\x20of\x0a<a\x20href=\"//golang.org/change/9ef4429c2c64\">goplay</a>\x0a<a\x20href=\"//golang.org/change/d42ed8c3098e\">fixes</a>,\x0aand\x20a\x20<code>json</code>\x20package\x0a<a\x20href=\"//golang.org/change/d5e97874fe84\">fix</a>\x20and\x0aa\x20new\x0a<a\x20href=\"//golang.org/change/4f0e6269213f\">struct\x20tag\x0aoption</a>.\x0a</p>\x0a\x0a<p>\x0ar60.2\x0a<a\x20href=\"//golang.org/change/ff19536042ac\">fixes</a>\x0aa\x20memory\x20leak\x20involving\x20maps.\x0a</p>\x0a\x0a<p>\x0ar60.3\x20fixes\x20a\x0a<a\x20href=\"//golang.org/change/01fa62f5e4e5\">reflect\x20bug</a>.\x0a</p>\x0a\x0a<h2\x20id=\"r59\">r59\x20(released\x202011/08/01)</h2>\x0a\x0a<p>\x0aThe\x20r59\x20release\x20corresponds\x20to\x20\x0a<code><a\x20href=\"weekly.html#2011-07-07\">weekly.2011-07-07</a></code>.\x0aThis\x20section\x20highlights\x20the\x20most\x20significant\x20changes\x20in\x20this\x20release.\x0aFor\x20a\x20more\x20detailed\x20summary,\x20see\x20the\x0a<a\x20href=\"weekly.html#2011-07-07\">weekly\x20release\x20notes</a>.\x0aFor\x20complete\x20information,\x20see\x20the\x0a<a\x20href=\"//code.google.com/p/go/source/list?r=release-branch.r59\">Mercurial\x20change\x20list</a>.\x0a</p>\x0a\x0a<h3\x20id=\"r59.lang\">Language</h3>\x0a\x0a<p>\x0aThis\x20release\x20includes\x20a\x20language\x20change\x20that\x20restricts\x20the\x20use\x20of\x0a<code>goto</code>.\x20\x20In\x20essence,\x20a\x20<code>goto</code>\x20statement\x20outside\x20a\x20block\x0acannot\x20jump\x20to\x20a\x20label\x20inside\x20that\x20block.\x20Your\x20code\x20may\x20require\x20changes\x20if\x20it\x0auses\x20<code>goto</code>.\x0aSee\x20<a\x20href=\"//golang.org/change/dc6d3cf9279d\">this\x0achangeset</a>\x20for\x20how\x20the\x20new\x20rule\x20affected\x20the\x20Go\x20tree.\x0a</p>\x0a\x0a<h3\x20id=\"r59.pkg\">Packages</h3>\x0a\x0a<p>\x0aAs\x20usual,\x20<a\x20href=\"/cmd/gofix/\">gofix</a>\x20will\x20handle\x20the\x20bulk\x20of\x20the\x20rewrites\x0anecessary\x20for\x20these\x20changes\x20to\x20package\x20APIs.\x0a</p>\x0a\x0a<p>\x0a<a\x20href=\"/pkg/http\">Package\x20http</a>\x20has\x20a\x20new\x0a<a\x20href=\"/pkg/http/#FileSystem\">FileSystem</a>\x20interface\x20that\x20provides\x20access\x0ato\x20files.\x20The\x20<a\x20href=\"/pkg/http/#FileServer\">FileServer</a>\x20helper\x20now\x20takes\x20a\x0a<code>FileSystem</code>\x20argument\x20instead\x20of\x20an\x20explicit\x20file\x20system\x20root.\x20By\x0aimplementing\x20your\x20own\x20<code>FileSystem</code>\x20you\x20can\x20use\x20the\x0a<code>FileServer</code>\x20to\x20serve\x20arbitrary\x20data.\x0a</p>\x0a\x0a<p>\x0a<a\x20href=\"/pkg/os/\">Package\x20os</a>'s\x20<code>ErrorString</code>\x20type\x20has\x20been\x0ahidden.\x20Most\x20uses\x20of\x20<code>os.ErrorString</code>\x20can\x20be\x20replaced\x20with\x0a<a\x20href=\"/pkg/os/#NewError\">os.NewError</a>.\x0a</p>\x0a\x0a<p>\x0a<a\x20href=\"/pkg/reflect/\">Package\x20reflect</a>\x20supports\x20a\x20new\x20struct\x20tag\x20scheme\x0athat\x20enables\x20sharing\x20of\x20struct\x20tags\x20between\x20multiple\x20packages.\x0aIn\x20this\x20scheme,\x20the\x20tags\x20must\x20be\x20of\x20the\x20form:\x0a</p>\x0a<pre>\x0a\x09`key:\"value\"\x20key2:\"value2\"`\x0a</pre>\x0a<p>\x0aThe\x20<a\x20href=\"/pkg/reflect/#StructField\">StructField</a>\x20type's\x20Tag\x20field\x20now\x0ahas\x20type\x20<a\x20href=\"/pkg/reflect/#StructTag\">StructTag</a>,\x20which\x20has\x20a\x0a<code>Get</code>\x20method.\x20Clients\x20of\x20<a\x20href=\"/pkg/json\">json</a>\x20and\x0a<a\x20href=\"/pkg/xml\">xml</a>\x20will\x20need\x20to\x20be\x20updated.\x20Code\x20that\x20says\x0a</p>\x0a<pre>\x0a\x09type\x20T\x20struct\x20{\x0a\x09\x09X\x20int\x20\"name\"\x0a\x09}\x0a</pre>\x0a<p>\x0ashould\x20become\x0a</p>\x0a<pre>\x0a\x09type\x20T\x20struct\x20{\x0a\x09\x09X\x20int\x20`json:\"name\"`\x20\x20//\x20or\x20`xml:\"name\"`\x0a\x09}\x0a</pre>\x0a<p>\x0aUse\x20<a\x20href=\"/cmd/govet/\">govet</a>\x20to\x20identify\x20struct\x20tags\x20that\x20need\x20to\x20be\x0achanged\x20to\x20use\x20the\x20new\x20syntax.\x0a</p>\x0a\x0a<p>\x0a<a\x20href=\"/pkg/sort/\">Package\x20sort</a>'s\x20<code>IntArray</code>\x20type\x20has\x20been\x0arenamed\x20to\x20<a\x20href=\"/pkg/sort/#IntSlice\">IntSlice</a>,\x20and\x20similarly\x20for\x0a<a\x20href=\"/pkg/sort/#Float64Slice\">Float64Slice</a>\x20and\x0a<a\x20href=\"/pkg/sort/#StringSlice\">StringSlice</a>.\x0a</p>\x0a\x0a<p>\x0a<a\x20href=\"/pkg/strings/\">Package\x20strings</a>'s\x20<code>Split</code>\x20function\x20has\x0aitself\x20been\x20split\x20into\x20<a\x20href=\"/pkg/strings/#Split\">Split</a>\x20and\x0a<a\x20href=\"/pkg/strings/#SplitN\">SplitN</a>.\x0a<code>SplitN</code>\x20is\x20the\x20same\x20as\x20the\x20old\x20<code>Split</code>.\x0aThe\x20new\x20<code>Split</code>\x20is\x20equivalent\x20to\x20<code>SplitN</code>\x20with\x20a\x20final\x0aargument\x20of\x20-1.\x0a</p>\x0a\x0a<a\x20href=\"/pkg/image/draw/\">Package\x20image/draw</a>'s\x0a<a\x20href=\"/pkg/image/draw/#Draw\">Draw</a>\x20function\x20now\x20takes\x20an\x20additional\x0aargument,\x20a\x20compositing\x20operator.\x0aIf\x20in\x20doubt,\x20use\x20<a\x20href=\"/pkg/image/draw/#Op\">draw.Over</a>.\x0a</p>\x0a\x0a<h3\x20id=\"r59.cmd\">Tools</h3>\x0a\x0a<p>\x0a<a\x20href=\"/cmd/goinstall/\">Goinstall</a>\x20now\x20installs\x20packages\x20and\x20commands\x20from\x0aarbitrary\x20remote\x20repositories\x20(not\x20just\x20Google\x20Code,\x20Github,\x20and\x20so\x20on).\x0aSee\x20the\x20<a\x20href=\"/cmd/goinstall/\">goinstall\x20documentation</a>\x20for\x20details.\x0a</p>\x0a\x0a<h2\x20id=\"r58\">r58\x20(released\x202011/06/29)</h2>\x0a\x0a<p>\x0aThe\x20r58\x20release\x20corresponds\x20to\x20\x0a<code><a\x20href=\"weekly.html#2011-06-09\">weekly.2011-06-09</a></code>\x0awith\x20additional\x20bug\x20fixes.\x0aThis\x20section\x20highlights\x20the\x20most\x20significant\x20changes\x20in\x20this\x20release.\x0aFor\x20a\x20more\x20detailed\x20summary,\x20see\x20the\x0a<a\x20href=\"weekly.html#2011-06-09\">weekly\x20release\x20notes</a>.\x0aFor\x20complete\x20information,\x20see\x20the\x0a<a\x20href=\"//code.google.com/p/go/source/list?r=release-branch.r58\">Mercurial\x20change\x20list</a>.\x0a</p>\x0a\x0a<h3\x20id=\"r58.lang\">Language</h3>\x0a\x0a<p>\x0aThis\x20release\x20fixes\x20a\x20<a\x20href=\"//golang.org/change/b720749486e1\">use\x20of\x20uninitialized\x20memory\x20in\x20programs\x20that\x20misuse\x20<code>goto</code></a>.\x0a</p>\x0a\x0a<h3\x20id=\"r58.pkg\">Packages</h3>\x0a\x0a<p>\x0aAs\x20usual,\x20<a\x20href=\"/cmd/gofix/\">gofix</a>\x20will\x20handle\x20the\x20bulk\x20of\x20the\x20rewrites\x0anecessary\x20for\x20these\x20changes\x20to\x20package\x20APIs.\x0a</p>\x0a\x0a<p>\x0a<a\x20href=\"/pkg/http/\">Package\x20http</a>\x20drops\x20the\x20<code>finalURL</code>\x20return\x0avalue\x20from\x20the\x20<a\x20href=\"/pkg/http/#Client.Get\">Client.Get</a>\x20method.\x20The\x20value\x0ais\x20now\x20available\x20via\x20the\x20new\x20<code>Request</code>\x20field\x20on\x20<a\x0ahref=\"/pkg/http/#Response\">http.Response</a>.\x0aMost\x20instances\x20of\x20the\x20type\x20map[string][]string\x20in\x20have\x20been\x0areplaced\x20with\x20the\x20new\x20<a\x20href=\"/pkg/http/#Values\">Values</a>\x20type.\x0a</p>\x0a\x0a<p>\x0a<a\x20href=\"/pkg/exec/\">Package\x20exec</a>\x20has\x20been\x20redesigned\x20with\x20a\x20more\x0aconvenient\x20and\x20succinct\x20API.\x0a</p>\x0a\x0a<p>\x0a<a\x20href=\"/pkg/strconv/\">Package\x20strconv</a>'s\x20<a\x20href=\"/pkg/strconv/#Quote\">Quote</a>\x0afunction\x20now\x20escapes\x20only\x20those\x20Unicode\x20code\x20points\x20not\x20classified\x20as\x20printable\x0aby\x20<a\x20href=\"/pkg/unicode/#IsPrint\">unicode.IsPrint</a>.\x0aPreviously\x20Quote\x20would\x20escape\x20all\x20non-ASCII\x20characters.\x0aThis\x20also\x20affects\x20the\x20<a\x20href=\"/pkg/fmt/\">fmt</a>\x20package's\x20<code>\"%q\"</code>\x0aformatting\x20directive.\x20The\x20previous\x20quoting\x20behavior\x20is\x20still\x20available\x20via\x0astrconv's\x20new\x20<a\x20href=\"/pkg/strconv/#QuoteToASCII\">QuoteToASCII</a>\x20function.\x20\x20\x20\x0a</p>\x0a\x0a<p>\x0a<a\x20href=\"/pkg/os/signal/\">Package\x20os/signal</a>'s\x0a<a\x20href=\"/pkg/os/#Signal\">Signal</a>\x20and\x20\x0a<a\x20href=\"/pkg/os/#UnixSignal\">UnixSignal</a>\x20types\x20have\x20been\x20moved\x20to\x20the\x0a<a\x20href=\"/pkg/os/\">os</a>\x20package.\x0a</p>\x0a\x0a<p>\x0a<a\x20href=\"/pkg/image/draw/\">Package\x20image/draw</a>\x20is\x20the\x20new\x20name\x20for\x0a<code>exp/draw</code>.\x20The\x20GUI-related\x20code\x20from\x20<code>exp/draw</code>\x20is\x20now\x0alocated\x20in\x20the\x20<a\x20href=\"/pkg/exp/gui/\">exp/gui</a>\x20package.\x0a</p>\x0a\x0a<h3\x20id=\"r58.cmd\">Tools</h3>\x0a\x0a<p>\x0a<a\x20href=\"/cmd/goinstall/\">Goinstall</a>\x20now\x20observes\x20the\x20GOPATH\x20environment\x0avariable\x20to\x20build\x20and\x20install\x20your\x20own\x20code\x20and\x20external\x20libraries\x20outside\x20of\x0athe\x20Go\x20tree\x20(and\x20avoid\x20writing\x20Makefiles).\x0a</p>\x0a\x0a\x0a<h3\x20id=\"r58.minor\">Minor\x20revisions</h3>\x0a\x0a<p>r58.1\x20adds\x20\x0a<a\x20href=\"//golang.org/change/293c25943586\">build</a>\x20and\x0a<a\x20href=\"//golang.org/change/bf17e96b6582\">runtime</a>\x0achanges\x20to\x20make\x20Go\x20run\x20on\x20OS\x20X\x2010.7\x20Lion.\x0a</p>\x0a\x0a<h2\x20id=\"r57\">r57\x20(released\x202011/05/03)</h2>\x0a\x0a<p>\x0aThe\x20r57\x20release\x20corresponds\x20to\x20\x0a<code><a\x20href=\"weekly.html#2011-04-27\">weekly.2011-04-27</a></code>\x0awith\x20additional\x20bug\x20fixes.\x0aThis\x20section\x20highlights\x20the\x20most\x20significant\x20changes\x20in\x20this\x20release.\x0aFor\x20a\x20more\x20detailed\x20summary,\x20see\x20the\x0a<a\x20href=\"weekly.html#2011-04-27\">weekly\x20release\x20notes</a>.\x0aFor\x20complete\x20information,\x20see\x20the\x0a<a\x20href=\"//code.google.com/p/go/source/list?r=release-branch.r57\">Mercurial\x20change\x20list</a>.\x0a</p>\x0a\x0a<p>The\x20new\x20<a\x20href=\"/cmd/gofix\">gofix</a>\x20tool\x20finds\x20Go\x20programs\x20that\x20use\x20old\x20APIs\x20and\x20rewrites\x20them\x20to\x20use\x0anewer\x20ones.\x20\x20After\x20you\x20update\x20to\x20a\x20new\x20Go\x20release,\x20gofix\x20helps\x20make\x20the\x0anecessary\x20changes\x20to\x20your\x20programs.\x20Gofix\x20will\x20handle\x20the\x20http,\x20os,\x20and\x20syscall\x0apackage\x20changes\x20described\x20below,\x20and\x20we\x20will\x20update\x20the\x20program\x20to\x20keep\x20up\x20with\x0afuture\x20changes\x20to\x20the\x20libraries.\x20\x0aGofix\x20can\xe2\x80\x99t\x0ahandle\x20all\x20situations\x20perfectly,\x20so\x20read\x20and\x20test\x20the\x20changes\x20it\x20makes\x20before\x0acommitting\x20them.\x0aSee\x20<a\x20href=\"//blog.golang.org/2011/04/introducing-gofix.html\">the\x20gofix\x20blog\x20post</a>\x20for\x20more\x0ainformation.</p>\x0a\x0a<h3\x20id=\"r57.lang\">Language</h3>\x0a\x0a<p>\x0a<a\x20href=\"/doc/go_spec.html#Receive_operator\">Multiple\x20assignment\x20syntax</a>\x20replaces\x20the\x20<code>closed</code>\x20function.\x0aThe\x20syntax\x20for\x20channel\x0areceives\x20allows\x20an\x20optional\x20second\x20assigned\x20value,\x20a\x20boolean\x20value\x0aindicating\x20whether\x20the\x20channel\x20is\x20closed.\x20This\x20code:\x0a</p>\x0a\x0a<pre>\x0a\x09v\x20:=\x20&lt;-ch\x0a\x09if\x20closed(ch)\x20{\x0a\x09\x09//\x20channel\x20is\x20closed\x0a\x09}\x0a</pre>\x0a\x0a<p>should\x20now\x20be\x20written\x20as:</p>\x0a\x0a<pre>\x0a\x09v,\x20ok\x20:=\x20&lt;-ch\x0a\x09if\x20!ok\x20{\x0a\x09\x09//\x20channel\x20is\x20closed\x0a\x09}\x0a</pre>\x0a\x0a<p><a\x20href=\"/doc/go_spec.html#Label_scopes\">Unused\x20labels\x20are\x20now\x20illegal</a>,\x20just\x20as\x20unused\x20local\x20variables\x20are.</p>\x0a\x0a<h3\x20id=\"r57.pkg\">Packages</h3>\x0a\x0a<p>\x0a<a\x20href=\"/pkg/gob/\">Package\x20gob</a>\x20will\x20now\x20encode\x20and\x20decode\x20values\x20of\x20types\x20that\x20implement\x20the\x0a<a\x20href=\"/pkg/gob/#GobEncoder\">GobEncoder</a>\x20and\x0a<a\x20href=\"/pkg/gob/#GobDecoder\">GobDecoder</a>\x20interfaces.\x20This\x20allows\x20types\x20with\x20unexported\x0afields\x20to\x20transmit\x20self-consistent\x20descriptions;\x20examples\x20include\x20\x0a<a\x20href=\"/pkg/big/#Int.GobDecode\">big.Int</a>\x20and\x20<a\x20href=\"/pkg/big/#Rat.GobDecode\">big.Rat</a>.\x0a</p>\x0a\x0a<p>\x0a<a\x20href=\"/pkg/http/\">Package\x20http</a>\x20has\x20been\x20redesigned.\x0aFor\x20clients,\x20there\x20are\x20new\x0a<a\x20href=\"/pkg/http/#Client\">Client</a>\x20and\x20<a\x20href=\"/pkg/http/#Transport\">Transport</a>\x0aabstractions\x20that\x20give\x20more\x20control\x20over\x20HTTP\x20details\x20such\x20as\x20headers\x20sent\x0aand\x20redirections\x20followed.\x20\x20These\x20abstractions\x20make\x20it\x20easy\x20to\x20implement\x0acustom\x20clients\x20that\x20add\x20functionality\x20such\x20as\x20<a\x20href=\"//code.google.com/p/goauth2/source/browse/oauth/oauth.go\">OAuth2</a>.\x0aFor\x20servers,\x20<a\x20href=\"/pkg/http/#ResponseWriter\">ResponseWriter</a>\x0ahas\x20dropped\x20its\x20non-essential\x20methods.\x0aThe\x20Hijack\x20and\x20Flush\x20methods\x20are\x20no\x20longer\x20required;\x0acode\x20can\x20test\x20for\x20them\x20by\x20checking\x20whether\x20a\x20specific\x20value\x20implements\x0a<a\x20href=\"/pkg/http/#Hijacker\">Hijacker</a>\x20or\x20<a\x20href=\"/pkg/http/#Flusher\">Flusher</a>.\x0aThe\x20RemoteAddr\x20and\x20UsingTLS\x20methods\x20are\x20replaced\x20by\x20<a\x20href=\"/pkg/http/#Request\">Request</a>'s\x0aRemoteAddr\x20and\x20TLS\x20fields.\x0aThe\x20SetHeader\x20method\x20is\x20replaced\x20by\x20a\x20Header\x20method;\x0aits\x20result,\x20of\x20type\x20<a\x20href=\"/pkg/http/#Header\">Header</a>,\x0aimplements\x20Set\x20and\x20other\x20methods.\x0a</p>\x0a\x0a<p>\x0a<a\x20href=\"/pkg/net/\">Package\x20net</a>\x0adrops\x20the\x20<code>laddr</code>\x20argument\x20from\x20<a\x20href=\"/pkg/net/#Conn.Dial\">Dial</a>\x0aand\x20drops\x20the\x20<code>cname</code>\x20return\x20value\x0afrom\x20<a\x20href=\"/pkg/net/#LookupHost\">LookupHost</a>.\x0aThe\x20implementation\x20now\x20uses\x20<a\x20href=\"/cmd/cgo/\">cgo</a>\x20to\x20implement\x0anetwork\x20name\x20lookups\x20using\x20the\x20C\x20library\x20getaddrinfo(3)\x0afunction\x20when\x20possible.\x20\x20This\x20ensures\x20that\x20Go\x20and\x20C\x20programs\x0aresolve\x20names\x20the\x20same\x20way\x20and\x20also\x20avoids\x20the\x20OS\x20X\x20\x0aapplication-level\x20firewall.\x0a</p>\x0a\x0a<p>\x0a<a\x20href=\"/pkg/os/\">Package\x20os</a>\x0aintroduces\x20simplified\x20<a\x20href=\"/pkg/os/#File.Open\">Open</a>\x0aand\x20<a\x20href=\"/pkg/os/#File.Create\">Create</a>\x20functions.\x0aThe\x20original\x20Open\x20is\x20now\x20available\x20as\x20<a\x20href=\"/pkg/os/#File.OpenFile\">OpenFile</a>.\x0aThe\x20final\x20three\x20arguments\x20to\x20<a\x20href=\"/pkg/os/#Process.StartProcess\">StartProcess</a>\x0ahave\x20been\x20replaced\x20by\x20a\x20pointer\x20to\x20a\x20<a\x20href=\"/pkg/os/#ProcAttr\">ProcAttr</a>.\x0a</p>\x0a\x0a<p>\x0a<a\x20href=\"/pkg/reflect/\">Package\x20reflect</a>\x20has\x20been\x20redesigned.\x0a<a\x20href=\"/pkg/reflect/#Type\">Type</a>\x20is\x20now\x20an\x20interface\x20that\x20implements\x0aall\x20the\x20possible\x20type\x20methods.\x0aInstead\x20of\x20a\x20type\x20switch\x20on\x20a\x20Type\x20<code>t</code>,\x20switch\x20on\x20<code>t.Kind()</code>.\x0a<a\x20href=\"/pkg/reflect/#Value\">Value</a>\x20is\x20now\x20a\x20struct\x20value\x20that\x0aimplements\x20all\x20the\x20possible\x20value\x20methods.\x0aInstead\x20of\x20a\x20type\x20switch\x20on\x20a\x20Value\x20<code>v</code>,\x20switch\x20on\x20<code>v.Kind()</code>.\x0aTypeof\x20and\x20NewValue\x20are\x20now\x20called\x20<a\x20href=\"/pkg/reflect/#Type.TypeOf\">TypeOf</a>\x20and\x20<a\x20href=\"/pkg/reflect/#Value.ValueOf\">ValueOf</a>\x0aTo\x20create\x20a\x20writable\x20Value,\x20use\x20<code>New(t).Elem()</code>\x20instead\x20of\x20<code>Zero(t)</code>.\x0aSee\x20<a\x20href=\"//golang.org/change/843855f3c026\">the\x20change\x20description</a>\x0afor\x20the\x20full\x20details.\x0aThe\x20new\x20API\x20allows\x20a\x20more\x20efficient\x20implementation\x20of\x20Value\x0athat\x20avoids\x20many\x20of\x20the\x20allocations\x20required\x20by\x20the\x20previous\x20API.\x0a</p>\x0a\x0a<p>\x0aRemember\x20that\x20gofix\x20will\x20handle\x20the\x20bulk\x20of\x20the\x20rewrites\x0anecessary\x20for\x20these\x20changes\x20to\x20package\x20APIs.\x0a</p>\x0a\x0a<h3\x20id=\"r57.cmd\">Tools</h3>\x0a\x0a<p><a\x20href=\"/cmd/gofix/\">Gofix</a>,\x20a\x20new\x20command,\x20is\x20described\x20above.</p>\x0a\x0a<p>\x0a<a\x20href=\"/cmd/gotest/\">Gotest</a>\x20is\x20now\x20a\x20Go\x20program\x20instead\x20of\x20a\x20shell\x20script.\x0aThe\x20new\x20<code>-test.short</code>\x20flag\x20in\x20combination\x20with\x20package\x20testing's\x20Short\x20function\x0aallows\x20you\x20to\x20write\x20tests\x20that\x20can\x20be\x20run\x20in\x20normal\x20or\x20&ldquo;short&rdquo;\x20mode;\x0aall.bash\x20runs\x20tests\x20in\x20short\x20mode\x20to\x20reduce\x20installation\x20time.\x0aThe\x20Makefiles\x20know\x20about\x20the\x20flag:\x20use\x20<code>make\x20testshort</code>.\x0a</p>\x0a\x0a<p>\x0aThe\x20run-time\x20support\x20now\x20implements\x20CPU\x20and\x20memory\x20profiling.\x0aGotest's\x20new\x20\x0a<a\x20href=\"/cmd/gotest/\"><code>-test.cpuprofile</code>\x20and\x0a<code>-test.memprofile</code>\x20flags</a>\x20make\x20it\x20easy\x20to\x0aprofile\x20tests.\x0aTo\x20add\x20profiling\x20to\x20your\x20web\x20server,\x20see\x20the\x20<a\x20href=\"/pkg/http/pprof/\">http/pprof</a>\x0adocumentation.\x0aFor\x20other\x20uses,\x20see\x20the\x20<a\x20href=\"/pkg/runtime/pprof/\">runtime/pprof</a>\x20documentation.\x0a</p>\x0a\x0a<h3\x20id=\"r57.minor\">Minor\x20revisions</h3>\x0a\x0a<p>r57.1\x20fixes\x20a\x20<a\x20href=\"//golang.org/change/ff2bc62726e7145eb2ecc1e0f076998e4a8f86f0\">nil\x20pointer\x20dereference\x20in\x20http.FormFile</a>.</p>\x0a<p>r57.2\x20fixes\x20a\x20<a\x20href=\"//golang.org/change/063b0ff67d8277df03c956208abc068076818dae\">use\x20of\x20uninitialized\x20memory\x20in\x20programs\x20that\x20misuse\x20<code>goto</code></a>.</p>\x0a\x0a<h2\x20id=\"r56\">r56\x20(released\x202011/03/16)</h2>\x0a\x0a<p>\x0aThe\x20r56\x20release\x20was\x20the\x20first\x20stable\x20release\x20and\x20corresponds\x20to\x0a<code><a\x20href=\"weekly.html#2011-03-07\">weekly.2011-03-07.1</a></code>.\x0aThe\x20numbering\x20starts\x20at\x2056\x20because\x20before\x20this\x20release,\x0awhat\x20we\x20now\x20consider\x20weekly\x20snapshots\x20were\x20called\x20releases.\x0a</p>\x0a",