</tr>
<tr>
-<td><a href="http://godoc.org/code.google.com/p/go.tools/cmd/cover/">cover</a></td>
+<td><a href="//godoc.org/code.google.com/p/go.tools/cmd/cover/">cover</a></td>
<td> </td>
<td>Cover is a program for creating and analyzing the coverage profiles
generated by <code>"go test -coverprofile"</code>.
</tr>
<tr>
-<td><a href="http://godoc.org/code.google.com/p/go.tools/cmd/godoc/">godoc</a></td>
+<td><a href="//godoc.org/code.google.com/p/go.tools/cmd/godoc/">godoc</a></td>
<td> </td>
<td>Godoc extracts and generates documentation for Go packages.</td>
</tr>
<tr>
-<td><a href="http://godoc.org/code.google.com/p/go.tools/cmd/vet/">vet</a></td>
+<td><a href="//godoc.org/code.google.com/p/go.tools/cmd/vet/">vet</a></td>
<td> </td>
<td>Vet examines Go source code and reports suspicious constructs, such as Printf
calls whose arguments do not align with the format string.</td>
<p>
A similar explanation is available as a
-<a href="http://www.youtube.com/watch?v=XCsL89YtqCs">screencast</a>.
+<a href="//www.youtube.com/watch?v=XCsL89YtqCs">screencast</a>.
</p>
this property to automatically fetch packages from remote repositories.
For instance, the examples described in this document are also kept in a
Mercurial repository hosted at Google Code,
-<code><a href="http://code.google.com/p/go.example">code.google.com/p/go.example</a></code>.
+<code><a href="//code.google.com/p/go.example">code.google.com/p/go.example</a></code>.
If you include the repository URL in the package's import path,
<code>go get</code> will fetch, build, and install it automatically:
</p>
<p>
This convention is the easiest way to make your Go packages available for
others to use.
-The <a href="http://code.google.com/p/go-wiki/wiki/Projects">Go Wiki</a>
-and <a href="http://godoc.org/">godoc.org</a>
+The <a href="//code.google.com/p/go-wiki/wiki/Projects">Go Wiki</a>
+and <a href="//godoc.org/">godoc.org</a>
provide lists of external Go projects.
</p>
<p>
Subscribe to the
-<a href="http://groups.google.com/group/golang-announce">golang-announce</a>
+<a href="//groups.google.com/group/golang-announce">golang-announce</a>
mailing list to be notified when a new stable version of Go is released.
</p>
</p>
<p>
-Take <a href="http://tour.golang.org/">A Tour of Go</a> to learn the language
+Take <a href="//tour.golang.org/">A Tour of Go</a> to learn the language
proper.
</p>
<p>
The official mailing list for discussion of the Go language is
-<a href="http://groups.google.com/group/golang-nuts">Go Nuts</a>.
+<a href="//groups.google.com/group/golang-nuts">Go Nuts</a>.
</p>
<p>
Report bugs using the
-<a href="http://code.google.com/p/go/issues/list">Go issue tracker</a>.
+<a href="//code.google.com/p/go/issues/list">Go issue tracker</a>.
</p>
<p>
Go is an open source project developed by a team at
-<a href="http://google.com/">Google</a> and many
+<a href="//google.com/">Google</a> and many
<a href="/CONTRIBUTORS">contributors</a> from the open source community.
</p>
Go is distributed under a <a href="/LICENSE">BSD-style license</a>.
</p>
-<h3 id="announce"><a href="http://groups.google.com/group/golang-announce">Announcements Mailing List</a></h3>
+<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="http://groups.google.com/group/golang-announce">golang-announce</a>.
+<a href="//groups.google.com/group/golang-announce">golang-announce</a>.
</p>
<p>A mailing list that receives a message summarizing each checkin to the Go repository.</p>
<h3 id="golang-bugs"><a href="https://groups.google.com/group/golang-bugs">Bugs Mailing List</a></h3>
-<p>A mailing list that receives each update to the Go <a href="http://golang.org/issue">issue tracker</a>.</p>
+<p>A mailing list that receives each update to the Go <a href="//golang.org/issue">issue tracker</a>.</p>
-<h3 id="build_status"><a href="http://build.golang.org/">Build Status</a></h3>
+<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>
}-->
<p>This page summarizes the changes between official stable releases of Go.
-The <a href="http://code.google.com/p/go/source/list">Mercurial change log</a>
+The <a href="//code.google.com/p/go/source/list">Mercurial change log</a>
has the full details.</p>
<p>To update to a specific release, use:</p>
<p>
go1.2.1 (released 2014/03/02) includes bug fixes to the <code>runtime</code>, <code>net</code>, and <code>database/sql</code> packages.
-See the <a href="https://code.google.com/p/go/source/list?name=release-branch.go1.2&r=7ada9e760ce34e78aee5b476c9621556d0fa5d31">change history</a> for details.
+See the <a href="//code.google.com/p/go/source/list?name=release-branch.go1.2&r=7ada9e760ce34e78aee5b476c9621556d0fa5d31">change history</a> for details.
</p>
<p>
go1.2.2 (released 2014/05/05) includes a
-<a href="https://code.google.com/p/go/source/detail?r=bda3619e7a2c&repo=tools">security fix</a>
+<a href="//code.google.com/p/go/source/detail?r=bda3619e7a2c&repo=tools">security fix</a>
that affects the tour binary included in the binary distributions (thanks to Guillaume T).
</p>
<p>
go1.1.1 (released 2013/06/13) includes several compiler and runtime bug fixes.
-See the <a href="https://code.google.com/p/go/source/list?name=release-branch.go1.1&r=43c4a41d24382a56a90e924800c681e435d9e399">change history</a> for details.
+See the <a href="//code.google.com/p/go/source/list?name=release-branch.go1.1&r=43c4a41d24382a56a90e924800c681e435d9e399">change history</a> for details.
</p>
<p>
go1.1.2 (released 2013/08/13) includes fixes to the <code>gc</code> compiler
and <code>cgo</code>, and the <code>bufio</code>, <code>runtime</code>,
<code>syscall</code>, and <code>time</code> packages.
-See the <a href="https://code.google.com/p/go/source/list?name=release-branch.go1.1&r=a6a9792f94acd4ff686b2bc57383d163608b91cf">change history</a> for details.
+See the <a href="//code.google.com/p/go/source/list?name=release-branch.go1.1&r=a6a9792f94acd4ff686b2bc57383d163608b91cf">change history</a> for details.
If you use package syscall's <code>Getrlimit</code> and <code>Setrlimit</code>
functions under Linux on the ARM or 386 architectures, please note change
-<a href="http://golang.org/change/55ac276af5a7">55ac276af5a7</a>
-that fixes <a href="http://golang.org/issue/5949">issue 5949</a>.
+<a href="//golang.org/change/55ac276af5a7">55ac276af5a7</a>
+that fixes <a href="//golang.org/issue/5949">issue 5949</a>.
</p>
<h2 id="go1">go1 (released 2012/03/28)</h2>
<p>
go1.0.1 (released 2012/04/25) was issued to
-<a href="https://code.google.com/p/go/source/detail?r=a890477d3dfb">fix</a> an
-<a href="https://code.google.com/p/go/issues/detail?id=3545">escape analysis
-bug</a> that can lead to memory corruption.
+<a href="//golang.org/change/a890477d3dfb">fix</a> an
+<a href="//golang.org/issue/3545">escape analysis bug</a>
+that can lead to memory corruption.
It also includes several minor code and documentation fixes.
</p>
<p>
go1.0.2 (released 2012/06/13) was issued to fix two bugs in the implementation
of maps using struct or array keys:
-<a href="http://code.google.com/p/go/issues/detail?id=3695">issue 3695</a> and
-<a href="http://code.google.com/p/go/issues/detail?id=3573">issue 3573</a>.
+<a href="//golang.org/issue/3695">issue 3695</a> and
+<a href="//golang.org/issue/3573">issue 3573</a>.
It also includes many minor code and documentation fixes.
</p>
</p>
<p>
-See the <a href="http://code.google.com/p/go/source/list?name=release-branch.go1">go1 release branch history</a> for the complete list of changes.
+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.
</p>
<h2 id="r60">r60 (released 2011/09/07)</h2>
For a more detailed summary, see the
<a href="weekly.html#2011-08-17">weekly release notes</a>.
For complete information, see the
-<a href="http://code.google.com/p/go/source/list?r=release-branch.r60">Mercurial change list</a>.
+<a href="//code.google.com/p/go/source/list?r=release-branch.r60">Mercurial change list</a>.
</p>
<h3 id="r60.lang">Language</h3>
<p>
r60.1 includes a
-<a href="http://code.google.com/p/go/source/detail?r=1824581bf62d">linker
+<a href="//golang.org/change/1824581bf62d">linker
fix</a>, a pair of
-<a href="http://code.google.com/p/go/source/detail?r=9ef4429c2c64">goplay</a>
-<a href="http://code.google.com/p/go/source/detail?r=d42ed8c3098e">fixes</a>,
+<a href="//golang.org/change/9ef4429c2c64">goplay</a>
+<a href="//golang.org/change/d42ed8c3098e">fixes</a>,
and a <code>json</code> package
-<a href="http://code.google.com/p/go/source/detail?r=d5e97874fe84">fix</a> and
+<a href="//golang.org/change/d5e97874fe84">fix</a> and
a new
-<a href="http://code.google.com/p/go/source/detail?r=4f0e6269213f">struct tag
+<a href="//golang.org/change/4f0e6269213f">struct tag
option</a>.
</p>
<p>
r60.2
-<a href="http://code.google.com/p/go/source/detail?r=ff19536042ac">fixes</a>
+<a href="//golang.org/change/ff19536042ac">fixes</a>
a memory leak involving maps.
</p>
<p>
r60.3 fixes a
-<a href="http://code.google.com/p/go/source/detail?r=01fa62f5e4e5">reflect bug</a>.
+<a href="//golang.org/change/01fa62f5e4e5">reflect bug</a>.
</p>
<h2 id="r59">r59 (released 2011/08/01)</h2>
For a more detailed summary, see the
<a href="weekly.html#2011-07-07">weekly release notes</a>.
For complete information, see the
-<a href="http://code.google.com/p/go/source/list?r=release-branch.r59">Mercurial change list</a>.
+<a href="//code.google.com/p/go/source/list?r=release-branch.r59">Mercurial change list</a>.
</p>
<h3 id="r59.lang">Language</h3>
<code>goto</code>. In essence, a <code>goto</code> statement outside a block
cannot jump to a label inside that block. Your code may require changes if it
uses <code>goto</code>.
-See <a href="http://code.google.com/p/go/source/detail?r=dc6d3cf9279d">this
+See <a href="//golang.org/change/dc6d3cf9279d">this
changeset</a> for how the new rule affected the Go tree.
</p>
For a more detailed summary, see the
<a href="weekly.html#2011-06-09">weekly release notes</a>.
For complete information, see the
-<a href="http://code.google.com/p/go/source/list?r=release-branch.r58">Mercurial change list</a>.
+<a href="//code.google.com/p/go/source/list?r=release-branch.r58">Mercurial change list</a>.
</p>
<h3 id="r58.lang">Language</h3>
<p>
-This release fixes a <a href="http://code.google.com/p/go/source/detail?r=b720749486e1">use of uninitialized memory in programs that misuse <code>goto</code></a>.
+This release fixes a <a href="//golang.org/change/b720749486e1">use of uninitialized memory in programs that misuse <code>goto</code></a>.
</p>
<h3 id="r58.pkg">Packages</h3>
<h3 id="r58.minor">Minor revisions</h3>
<p>r58.1 adds
-<a href="http://code.google.com/p/go/source/detail?r=293c25943586">build</a> and
-<a href="http://code.google.com/p/go/source/detail?r=bf17e96b6582">runtime</a>
+<a href="//golang.org/change/293c25943586">build</a> and
+<a href="//golang.org/change/bf17e96b6582">runtime</a>
changes to make Go run on OS X 10.7 Lion.
</p>
For a more detailed summary, see the
<a href="weekly.html#2011-04-27">weekly release notes</a>.
For complete information, see the
-<a href="http://code.google.com/p/go/source/list?r=release-branch.r57">Mercurial change list</a>.
+<a href="//code.google.com/p/go/source/list?r=release-branch.r57">Mercurial change list</a>.
</p>
<p>The new <a href="/cmd/gofix">gofix</a> tool finds Go programs that use old APIs and rewrites them to use
Gofix can’t
handle all situations perfectly, so read and test the changes it makes before
committing them.
-See <a href="http://blog.golang.org/2011/04/introducing-gofix.html">the gofix blog post</a> for more
+See <a href="//blog.golang.org/2011/04/introducing-gofix.html">the gofix blog post</a> for more
information.</p>
<h3 id="r57.lang">Language</h3>
<a href="/pkg/http/#Client">Client</a> and <a href="/pkg/http/#Transport">Transport</a>
abstractions that give more control over HTTP details such as headers sent
and redirections followed. These abstractions make it easy to implement
-custom clients that add functionality such as <a href="http://code.google.com/p/goauth2/source/browse/oauth/oauth.go">OAuth2</a>.
+custom clients that add functionality such as <a href="//code.google.com/p/goauth2/source/browse/oauth/oauth.go">OAuth2</a>.
For servers, <a href="/pkg/http/#ResponseWriter">ResponseWriter</a>
has dropped its non-essential methods.
The Hijack and Flush methods are no longer required;
Instead of a type switch on a Value <code>v</code>, switch on <code>v.Kind()</code>.
Typeof and NewValue are now called <a href="/pkg/reflect/#Type.TypeOf">TypeOf</a> and <a href="/pkg/reflect/#Value.ValueOf">ValueOf</a>
To create a writable Value, use <code>New(t).Elem()</code> instead of <code>Zero(t)</code>.
-See <a href="http://code.google.com/p/go/source/detail?r=843855f3c026">the change description</a>
+See <a href="//golang.org/change/843855f3c026">the change description</a>
for the full details.
The new API allows a more efficient implementation of Value
that avoids many of the allocations required by the previous API.
<h3 id="r57.minor">Minor revisions</h3>
-<p>r57.1 fixes a <a href="http://code.google.com/p/go/source/detail?r=ff2bc62726e7145eb2ecc1e0f076998e4a8f86f0">nil pointer dereference in http.FormFile</a>.</p>
-<p>r57.2 fixes a <a href="http://code.google.com/p/go/source/detail?r=063b0ff67d8277df03c956208abc068076818dae">use of uninitialized memory in programs that misuse <code>goto</code></a>.</p>
+<p>r57.1 fixes a <a href="//golang.org/change/ff2bc62726e7145eb2ecc1e0f076998e4a8f86f0">nil pointer dereference in http.FormFile</a>.</p>
+<p>r57.2 fixes a <a href="//golang.org/change/063b0ff67d8277df03c956208abc068076818dae">use of uninitialized memory in programs that misuse <code>goto</code></a>.</p>
<h2 id="r56">r56 (released 2011/03/16)</h2>
<p>This page summarizes the changes between tagged weekly snapshots of Go.
Such snapshots are no longer created. This page remains as a historical reference only.</p>
-<p>For recent information, see the <a href="http://code.google.com/p/go/source/list">Mercurial change log</a> and <a href="http://groups.google.com/group/golang-dev/">development mailing list</a>.</p>
+<p>For recent information, see the <a href="//code.google.com/p/go/source/list">Mercurial change log</a> and <a href="//groups.google.com/group/golang-dev/">development mailing list</a>.</p>
<h2 id="2012-03-27">2012-03-27 (<a href="release.html#go1">Go 1</a>)</h2>
<img class="gopher" src="/doc/gopher/doc.png"/>
-<h3 id="go_tour"><a href="http://tour.golang.org/">A Tour of Go</a></h3>
+<h3 id="go_tour"><a href="//tour.golang.org/">A Tour of Go</a></h3>
<p>
An interactive introduction to Go in three sections.
The first section covers basic syntax and data structures; the second discusses
methods and interfaces; and the third introduces Go's concurrency primitives.
Each section concludes with a few exercises so you can practice what you've
-learned. You can <a href="http://tour.golang.org/">take the tour online</a> or
-<a href="http://code.google.com/p/go-tour/">install it locally</a>.
+learned. You can <a href="//tour.golang.org/">take the tour online</a> or
+<a href="//code.google.com/p/go-tour/">install it locally</a>.
</p>
<h3 id="code"><a href="code.html">How to write Go code</a></h3>
<p>
Also available as a
-<a href="http://www.youtube.com/watch?v=XCsL89YtqCs">screencast</a>, this doc
+<a href="//www.youtube.com/watch?v=XCsL89YtqCs">screencast</a>, this doc
explains how to use the <a href="/cmd/go/">go command</a> to fetch, build, and
install packages, commands, and run tests.
</p>
<h2 id="articles">Articles</h2>
-<h3 id="blog"><a href="http://blog.golang.org/">The Go Blog</a></h3>
+<h3 id="blog"><a href="//blog.golang.org/">The Go Blog</a></h3>
<p>The official blog of the Go project, featuring news and in-depth articles by
the Go team and guests.</p>
demonstrate these.
</p>
-<h3 id="go_code_that_grows"><a href="http://vimeo.com/53221560">Code that grows with grace</a></h3>
+<h3 id="go_code_that_grows"><a href="//vimeo.com/53221560">Code that grows with grace</a></h3>
<p>
One of Go's key design goals is code adaptability; that it should be easy to take a simple design and build upon it in a clean and natural way. In this talk Andrew Gerrand describes a simple "chat roulette" server that matches pairs of incoming TCP connections, and then use Go's concurrency mechanisms, interfaces, and standard library to extend it with a web interface and other features. While the function of the program changes dramatically, Go's flexibility preserves the original design as it grows.
</p>
-<h3 id="go_concurrency_patterns"><a href="http://www.youtube.com/watch?v=f6kdp27TYZs">Go Concurrency Patterns</a></h3>
+<h3 id="go_concurrency_patterns"><a href="//www.youtube.com/watch?v=f6kdp27TYZs">Go Concurrency Patterns</a></h3>
<p>
Concurrency is the key to designing high performance network services. Go's concurrency primitives (goroutines and channels) provide a simple and efficient means of expressing concurrent execution. In this talk we see how tricky concurrency problems can be solved gracefully with simple Go code.
</p>
-<h3 id="advanced_go_concurrency_patterns"><a href="http://www.youtube.com/watch?v=QDDwwePbDtw">Advanced Go Concurrency Patterns</a></h3>
+<h3 id="advanced_go_concurrency_patterns"><a href="//www.youtube.com/watch?v=QDDwwePbDtw">Advanced Go Concurrency Patterns</a></h3>
<p>
This talk expands on the <i>Go Concurrency Patterns</i> talk to dive deeper into Go's concurrency primitives.
</p>
<p>
This document gives tips for writing clear, idiomatic Go code.
It augments the <a href="/ref/spec">language specification</a>,
-the <a href="http://tour.golang.org/">Tour of Go</a>,
+the <a href="//tour.golang.org/">Tour of Go</a>,
and <a href="/doc/code.html">How to Write Go Code</a>,
all of which you
should read first.
use the language.
Moreover, many of the packages contain working, self-contained
executable examples you can run directly from the
-<a href="http://golang.org">golang.org</a> web site, such as
-<a href="http://golang.org/pkg/strings/#example_Map">this one</a> (if
+<a href="//golang.org">golang.org</a> web site, such as
+<a href="//golang.org/pkg/strings/#example_Map">this one</a> (if
necessary, click on the word "Example" to open it up).
If you have a question about how to approach a problem or how something
might be implemented, the documentation, code and examples in the
to structure as parallel computations, Go is a concurrent language,
not a parallel one, and not all parallelization problems fit Go's model.
For a discussion of the distinction, see the talk cited in
-<a href="http://blog.golang.org/2013/01/concurrency-is-not-parallelism.html">this
+<a href="//blog.golang.org/2013/01/concurrency-is-not-parallelism.html">this
blog post</a>.
<h3 id="leaky_buffer">A leaky buffer</h3>
<p>
The master sources for the gccgo frontend may be found at
-<a href="http://code.google.com/p/gofrontend">http://code.google.com/p/gofrontend</a>.
+<a href="//code.google.com/p/gofrontend">http://code.google.com/p/gofrontend</a>.
The master sources are not buildable by themselves, but only in
conjunction with GCC (in the future, other compilers may be
supported). Changes made to the gccgo frontend are also applied to
repository, and the <code>gofrontend</code> <code>libgo</code>
directory is mirrored to the GCC <code>libgo</code> directory. In
addition, the <code>test</code> directory
-from <a href="http://code.google.com/p/go">the main Go repository</a>
+from <a href="//code.google.com/p/go">the main Go repository</a>
is mirrored to the <code>gcc/testsuite/go.test/test</code> directory
in the GCC repository.
</p>
<p>
The run-time library for gccgo is mostly the same as the library
-in <a href="http://code.google.com/p/go">the main Go repository</a>.
+in <a href="//code.google.com/p/go">the main Go repository</a>.
The library code in the Go repository is periodically merged into
the <code>libgo/go</code> directory of the <code>gofrontend</code> and
then the GCC repositories, using the shell
<p>
Due to the change of the <a href="#int"><code>int</code></a> to 64 bits and
-a new internal <a href="http://golang.org/s/go11func">representation of functions</a>,
+a new internal <a href="//golang.org/s/go11func">representation of functions</a>,
the arrangement of function arguments on the stack has changed in the gc tool chain.
Functions written in assembly will need to be revised at least
to adjust frame pointer offsets.
<p>
Further details are in the
-<a href="http://golang.org/s/go12nil">design document</a>.
+<a href="//golang.org/s/go12nil">design document</a>.
</p>
<p>
<p>
Further details are in the
-<a href="http://golang.org/s/go12slice">design document</a>.
+<a href="//golang.org/s/go12slice">design document</a>.
</p>
<p>
<p>
Both binaries are still included with the distribution, but the source code for the
godoc and vet commands has moved to the
-<a href="http://code.google.com/p/go.tools">go.tools</a> subrepository.
+<a href="//code.google.com/p/go.tools">go.tools</a> subrepository.
</p>
<p>
</p>
<p>
-The binary distributions available from <a href="http://golang.org">golang.org</a>
+The binary distributions available from <a href="//golang.org">golang.org</a>
include these binaries, so users of these distributions are unaffected.
</p>
and
<a href="/pkg/encoding/#TextUnmarshaler"><code>TextUnmarshaler</code></a>.
Full details are in the <a href="/pkg/encoding/">documentation</a> for the package
-and a separate <a href="http://golang.org/s/go12encoding">design document</a>.
+and a separate <a href="//golang.org/s/go12encoding">design document</a>.
</p>
<h3 id="fmt_indexed_arguments">The fmt package</h3>
There is not yet support for Native Client on ARM.
Note that this is Native Client (NaCl), not Portable Native Client (PNaCl).
Details about Native Client are <a href="https://developers.google.com/native-client/dev/">here</a>;
-how to set up the Go version is described <a href="http://golang.org/wiki/NativeClient">here</a>.
+how to set up the Go version is described <a href="//golang.org/wiki/NativeClient">here</a>.
</p>
<h3 id="netbsd">Support for NetBSD</h3>
The overhead of this transfer operation amortizes well and eliminates the old "hot spot"
problem when a calculation repeatedly steps across a segment boundary.
Details including performance numbers are in this
-<a href="http://golang.org/s/contigstacks">design document</a>.
+<a href="//golang.org/s/contigstacks">design document</a>.
</p>
<h3 id="garbage_collector">Changes to the garbage collector</h3>
in integer-typed values are also illegal but more difficult to diagnose during execution.
Because the pointers are hidden from the runtime, a stack expansion or garbage collection
may reclaim the memory they point at, creating
-<a href="http://en.wikipedia.org/wiki/Dangling_pointer">dangling pointers</a>.
+<a href="//en.wikipedia.org/wiki/Dangling_pointer">dangling pointers</a>.
</p>
<p>
<p>
Iterations over small maps no longer happen in a consistent order.
-Go 1 defines that “<a href="http://golang.org/ref/spec#For_statements">The iteration order over maps
+Go 1 defines that “<a href="//golang.org/ref/spec#For_statements">The iteration order over maps
is not specified and is not guaranteed to be the same from one iteration to the next.</a>”
To keep code from depending on map iteration order,
Go 1.0 started each map iteration at a random index in the map.
<h3 id="liblink">The linker</h3>
<p>
-As part of the general <a href="http://golang.org/s/go13linker">overhaul</a> to
+As part of the general <a href="//golang.org/s/go13linker">overhaul</a> to
the Go linker, the compilers and linkers have been refactored.
The linker is still a C program, but now the instruction selection phase that
was part of the linker has been moved to the compiler through the creation of a new
<h3 id="godoc">Changes to godoc</h3>
<p>
When invoked with the <code>-analysis</code> flag,
-<a href="http://godoc.org/code.google.com/p/go.tools/cmd/godoc">godoc</a>
+<a href="//godoc.org/code.google.com/p/go.tools/cmd/godoc">godoc</a>
now performs sophisticated <a href="/lib/godoc/analysis/help.html">static
analysis</a> of the code it indexes.
The results of analysis are presented in both the source view and the
The program <code>misc/benchcmp</code> that compares
performance across benchmarking runs has been rewritten.
Once a shell and awk script in the main repository, it is now a Go program in the <code>go.tools</code> repo.
-Documentation is <a href="http://godoc.org/code.google.com/p/go.tools/cmd/benchcmp">here</a>.
+Documentation is <a href="//godoc.org/code.google.com/p/go.tools/cmd/benchcmp">here</a>.
</p>
<p>
<code>utf16</code> now occupy subdirectories of <code>unicode</code>.
Also, <a href="#subrepo">some packages</a> have moved into
subrepositories of
-<a href="http://code.google.com/p/go"><code>code.google.com/p/go</code></a>
+<a href="//code.google.com/p/go"><code>code.google.com/p/go</code></a>
while <a href="#deleted">others</a> have been deleted outright.
</p>
<p>
Because they are not standardized, the packages under the <code>exp</code> directory will not be available in the
standard Go 1 release distributions, although they will be available in source code form
-in <a href="http://code.google.com/p/go/">the repository</a> for
+in <a href="//code.google.com/p/go/">the repository</a> for
developers who wish to use them.
</p>
<em>Updating</em>:
Code that uses <code>container/vector</code> should be updated to use
slices directly. See
-<a href="http://code.google.com/p/go-wiki/wiki/SliceTricks">the Go
+<a href="//code.google.com/p/go-wiki/wiki/SliceTricks">the Go
Language Community Wiki</a> for some suggestions.
Code that uses the other packages (there should be almost zero) will need to be rethought.
</p>
<p>
Go 1 has moved a number of packages into other repositories, usually sub-repositories of
-<a href="http://code.google.com/p/go/">the main Go repository</a>.
+<a href="//code.google.com/p/go/">the main Go repository</a>.
This table lists the old and new import paths:
<table class="codetable" frame="border" summary="Sub-repositories">
The <a href="/pkg/regexp/"><code>regexp</code></a> package has been rewritten.
It has the same interface but the specification of the regular expressions
it supports has changed from the old "egrep" form to that of
-<a href="http://code.google.com/p/re2/">RE2</a>.
+<a href="//code.google.com/p/re2/">RE2</a>.
</p>
<p>
<em>Updating</em>:
Code using these functions must be rewritten to use
package <a href="/pkg/reflect/"><code>reflect</code></a>.
-The changes to <a href="http://code.google.com/p/go/source/detail?r=2646dc956207">encoding/gob</a> and the <a href="http://code.google.com/p/goprotobuf/source/detail?r=5340ad310031">protocol buffer library</a>
+The changes to <a href="//golang.org/change/2646dc956207">encoding/gob</a> and the <a href="//code.google.com/p/goprotobuf/source/detail?r=5340ad310031">protocol buffer library</a>
may be helpful as examples.
</p>
<p>
Code in sub-repositories of the main go tree, such as
-<a href="http://code.google.com/p/go.net">code.google.com/p/go.net</a>,
+<a href="//code.google.com/p/go.net">code.google.com/p/go.net</a>,
may be developed under
looser compatibility requirements. However, the sub-repositories
will be tagged as appropriate to identify versions that are compatible
<p>
A much more expansive answer to this question is available in the article,
-<a href="http://talks.golang.org/2012/splash.article">Go at Google:
+<a href="//talks.golang.org/2012/splash.article">Go at Google:
Language Design in the Service of Software Engineering</a>.
<h3 id="What_is_the_status_of_the_project">
<p>
Go became a public open source project on November 10, 2009.
After a couple of years of very active design and development, stability was called for and
-Go 1 was <a href="http://blog.golang.org/2012/03/go-version-1-is-released.html">released</a>
+Go 1 was <a href="//blog.golang.org/2012/03/go-version-1-is-released.html">released</a>
on March 28, 2012.
Go 1, which includes a <a href="/ref/spec">language specification</a>,
<a href="/pkg/">standard libraries</a>,
</p>
<p>
-The article <a href="http://talks.golang.org/2012/splash.article">Go at Google</a>
+The article <a href="//talks.golang.org/2012/splash.article">Go at Google</a>
discusses the background and motivation behind the design of the Go language,
as well as providing more detail about many of the answers presented in this FAQ.
</p>
<p>
Yes. There are now several Go programs deployed in
production inside Google. A public example is the server behind
-<a href="http://golang.org">http://golang.org</a>.
+<a href="//golang.org">golang.org</a>.
It's just the <a href="/cmd/godoc"><code>godoc</code></a>
document server running in a production configuration on
<a href="https://developers.google.com/appengine/">Google App Engine</a>.
<p>
A separate open source project provides the necessary compiler plugin and library.
It is available at
-<a href="http://code.google.com/p/goprotobuf/">http://code.google.com/p/goprotobuf/</a>
+<a href="//code.google.com/p/goprotobuf/">code.google.com/p/goprotobuf/</a>
</p>
<p>
Absolutely. We encourage developers to make Go Language sites in their own languages.
However, if you choose to add the Google logo or branding to your site
-(it does not appear on <a href="http://golang.org/">golang.org</a>),
+(it does not appear on <a href="//golang.org/">golang.org</a>),
you will need to abide by the guidelines at
-<a href="http://www.google.com/permissions/guidelines.html">http://www.google.com/permissions/guidelines.html</a>
+<a href="//www.google.com/permissions/guidelines.html">www.google.com/permissions/guidelines.html</a>
</p>
<h2 id="Design">Design</h2>
<p>
People often suggest improvements to the language—the
-<a href="http://groups.google.com/group/golang-nuts">mailing list</a>
+<a href="//groups.google.com/group/golang-nuts">mailing list</a>
contains a rich history of such discussions—but very few of these changes have
been accepted.
</p>
<p>
Even if your proposal is compatible with the Go 1 spec, it might
not be in the spirit of Go's design goals.
-The article <i><a href="http://talks.golang.org/2012/splash.article">Go
+The article <i><a href="//talks.golang.org/2012/splash.article">Go
at Google: Language Design in the Service of Software Engineering</a></i>
explains Go's origins and the motivation behind its design.
</p>
There is a program, <code>godoc</code>, written in Go, that extracts
package documentation from the source code. It can be used on the
command line or on the web. An instance is running at
-<a href="/pkg/">http://golang.org/pkg/</a>.
+<a href="/pkg/">golang.org/pkg/</a>.
In fact, <code>godoc</code> implements the full site at
-<a href="/">http://golang.org/</a>.
+<a href="/">golang.org/</a>.
</p>
<h3 id="Is_there_a_Go_programming_style_guide">
<p>
The document titled
-<a href="http://golang.org/s/comments">Go Code Review Comments</a>
+<a href="//golang.org/s/comments">Go Code Review Comments</a>
is a collection of very short essays about details of Go idiom that are often
missed by programmers.
It is a handy reference for people doing code reviews for Go projects.
<p>
The Go project, hosted by Google Code at
-<a href="http://code.google.com/p/go">code.google.com/p/go</a>,
+<a href="//code.google.com/p/go">code.google.com/p/go</a>,
uses Mercurial as its version control system.
When the project launched,
Google Code supported only Subversion and Mercurial.
Mercurial was a better choice because of its plugin mechanism
that allowed us to create the "codereview" plugin to connect
the project to the excellent code review tools at
-<a href="http://codereview.appspot.com">codereview.appspot.com</a>.
+<a href="//codereview.appspot.com">codereview.appspot.com</a>.
</p>
<p>
</p>
<p>
-See the <a href="/doc/codewalk/sharemem/">Share Memory By Communicating</a> code walk and its <a href="http://blog.golang.org/2010/07/share-memory-by-communicating.html">associated article</a> for a detailed discussion of this concept.
+See the <a href="/doc/codewalk/sharemem/">Share Memory By Communicating</a> code walk and its <a href="//blog.golang.org/2010/07/share-memory-by-communicating.html">associated article</a> for a detailed discussion of this concept.
</p>
<h3 id="Why_no_multi_CPU">
Programs that perform parallel computation should benefit from an increase in
<code>GOMAXPROCS</code>.
However, be aware that
-<a href="http://blog.golang.org/2013/01/concurrency-is-not-parallelism.html">concurrency
+<a href="//blog.golang.org/2013/01/concurrency-is-not-parallelism.html">concurrency
is not parallelism</a>.
</p>
<p>
For more detail on this topic see the talk entitled,
-<a href="http://blog.golang.org/2013/01/concurrency-is-not-parallelism.html">Concurrency
+<a href="//blog.golang.org/2013/01/concurrency-is-not-parallelism.html">Concurrency
is not Parallelism</a>.
<h2 id="Functions_methods">Functions and Methods</h2>
There has been significant improvement in the performance of many programs
as the language and tools have developed.
See the blog post about
-<a href="http://blog.golang.org/2011/06/profiling-go-programs.html">profiling
+<a href="//blog.golang.org/2011/06/profiling-go-programs.html">profiling
Go programs</a> for an informative example.
<h2 id="change_from_c">Changes from C</h2>
is typical in garbage-collected languages. A careful programmer can reduce
the garbage collection overhead dramatically by using the language well;
see the article about
-<a href="http://blog.golang.org/2011/06/profiling-go-programs.html">profiling
+<a href="//blog.golang.org/2011/06/profiling-go-programs.html">profiling
Go programs</a> for a worked example, including a demonstration of Go's
profiling tools.
</p>
<p>
This is a reference manual for the Go programming language. For
-more information and other documents, see <a href="/">http://golang.org</a>.
+more information and other documents, see <a href="/">golang.org</a>.
</p>
<p>
<h3 id="wiki"><a href="/wiki">The Go Wiki</a></h3>
<p>A wiki maintained by the Go community.</p>
-<h3 id="mailinglist"><a href="http://groups.google.com/group/golang-nuts">Go Nuts Mailing List</a></h3>
+<h3 id="mailinglist"><a href="//groups.google.com/group/golang-nuts">Go Nuts Mailing List</a></h3>
<p>
-Search the <a href="http://groups.google.com/group/golang-nuts">golang-nuts</a>
+Search the <a href="//groups.google.com/group/golang-nuts">golang-nuts</a>
archives and consult the <a href="/doc/go_faq.html">FAQ</a> and
-<a href="http://code.google.com/p/go-wiki/wiki">wiki</a> before posting.
+<a href="//code.google.com/p/go-wiki/wiki">wiki</a> before posting.
</p>
<h3 id="irc"><a href="irc:irc.freenode.net/go-nuts">Go IRC Channel</a></h3>
<h3 id="plus"><a href="https://plus.google.com/101406623878176903605/posts">The Go Programming Language at Google+</a></h3>
<p>The Go project's Google+ page.</p>
-<h3 id="twitter"><a href="http://twitter.com/golang">@golang at Twitter</a></h3>
+<h3 id="twitter"><a href="//twitter.com/golang">@golang at Twitter</a></h3>
<p>The Go project's official Twitter account.</p>
<p>Tweeting about your problem with the <code>#golang</code> hashtag usually
generates some helpful responses.</p>
<p>
The Go tool chain is written in C. To build it, you need a C compiler installed.
-Please refer to the <a href="http://code.google.com/p/go-wiki/wiki/InstallFromSource#Install_C_tools">InstallFromSource</a>
+Please refer to the <a href="//golang.org/wiki/InstallFromSource#Install_C_tools">InstallFromSource</a>
page on the Go community Wiki for operating system specific instructions.
</p>
The usual community resources such as
<code>#go-nuts</code> on the <a href="http://freenode.net/">Freenode</a> IRC server
and the
-<a href="http://groups.google.com/group/golang-nuts">Go Nuts</a>
+<a href="//groups.google.com/group/golang-nuts">Go Nuts</a>
mailing list have active developers that can help you with problems
with your installation or your development work.
For those who wish to keep up to date,
-there is another mailing list, <a href="http://groups.google.com/group/golang-checkins">golang-checkins</a>,
+there is another mailing list, <a href="//groups.google.com/group/golang-checkins">golang-checkins</a>,
that receives a message summarizing each checkin to the Go repository.
</p>
<p>
-Bugs can be reported using the <a href="http://code.google.com/p/go/issues/list">Go issue tracker</a>.
+Bugs can be reported using the <a href="//code.google.com/p/go/issues/list">Go issue tracker</a>.
</p>
<p>
The <code>release</code> tag refers to the current stable release of Go.
Most Go users should use this version. New releases are announced on the
-<a href="http://groups.google.com/group/golang-announce">golang-announce</a>
+<a href="//groups.google.com/group/golang-announce">golang-announce</a>
mailing list.
</p>
<p>
If in doubt, leave this variable unset, and adjust it if required
when you first run the Go executable.
-The <a href="http://code.google.com/p/go-wiki/wiki/GoArm">GoARM</a> page
-on the <a href="http://code.google.com/p/go-wiki/w/list">Go community wiki</a>
+The <a href="//golang.org/wiki/GoArm">GoARM</a> page
+on the <a href="//golang.org/wiki">Go community wiki</a>
contains further details regarding Go's ARM support.
</p>
<p>
The official mailing list for discussion of the Go language is
-<a href="http://groups.google.com/group/golang-nuts">Go Nuts</a>.
+<a href="//groups.google.com/group/golang-nuts">Go Nuts</a>.
</p>
<p>
Report bugs using the
-<a href="http://code.google.com/p/go/issues/list">Go issue tracker</a>.
+<a href="//golang.org/issue">Go issue tracker</a>.
</p>
<div class="buttons">
<a class="run" href="#" title="Run this code [shift-enter]">Run</a>
<a class="share" href="#" title="Share this code">Share</a>
-<a class="tour" href="http://tour.golang.org/" title="Learn Go from your browser">Tour</a>
+<a class="tour" href="//tour.golang.org/" title="Learn Go from your browser">Tour</a>
</div>
<div class="toys">
<select>
<div id="blog">
<div class="rootHeading">Featured articles</div>
-<div class="read"><a href="http://blog.golang.org/">Read more</a></div>
+<div class="read"><a href="//blog.golang.org/">Read more</a></div>
</div>
</div>
"outputEl": "#learn .output",
"runEl": "#learn .run",
"shareEl": "#learn .share",
- "shareRedirect": "http://play.golang.org/p/",
+ "shareRedirect": "//play.golang.org/p/",
"toysEl": "#learn .toys select"
});
} else {
// Load blog feed.
$('<script/>').attr('text', 'text/javascript')
- .attr('src', 'http://blog.golang.org/.json?jsonp=feedLoaded')
+ .attr('src', '//blog.golang.org/.json?jsonp=feedLoaded')
.appendTo('body');
// Set the video at random.
<p>
The Go website (the "Website") is hosted by Google.
By using and/or visiting the Website, you consent to be bound by Google's general
-<a href="http://www.google.com/intl/en/policies/terms/">Terms of Service</a>
+<a href="//www.google.com/intl/en/policies/terms/">Terms of Service</a>
and Google's general
-<a href="http://www.google.com/intl/en/privacy/privacy-policy.html">Privacy Policy</a>.
+<a href="//www.google.com/intl/en/privacy/privacy-policy.html">Privacy Policy</a>.
</p>