1
0
mirror of https://github.com/golang/go synced 2024-11-26 18:06:55 -07:00

doc/go1.4.html: breaking compiler change, no plugins in misc

LGTM=rsc
R=golang-codereviews, rsc
CC=golang-codereviews
https://golang.org/cl/166850043
This commit is contained in:
Rob Pike 2014-10-28 13:49:41 -07:00
parent 202bf8d94d
commit 982dcb249d

View File

@ -9,6 +9,7 @@
<p>
The latest Go release, version 1.4, arrives as scheduled six months after 1.3
and contains only one tiny language change,
a possibly breaking change to the compiler,
a backwards-compatible simple form of <code>for</code>-<code>range</code> loop.
The release focuses primarily on implementation work, improving the garbage collector
and preparing the ground for a fully concurrent collector to be rolled out in the
@ -80,6 +81,39 @@ this new form as the
may now be <code>nil</code>.
</p>
<h3 id="methodonpointertopointer">Method calls on **T</h3>
<p>
Given these declarations,
</p>
<pre>
type T int
func (T) M() {}
var x **T
</pre>
<p>
both <code>gc</code> and <code>gccgo</code> accepted the method call
</p>
<pre>
x.M()
</pre>
<p>
which is a double dereference of the pointer-to-pointer <code>x</code>.
The Go specification allows a single dereference to be inserted automatically,
but not two, so this call is erroneous according to the language definition.
It has therefore been disallowed in Go 1.4, which is a breaking change,
although very few programs will be affected.
</p>
<p>
<em>Updating</em>: Code that depends on the old, erroneous behavior will no longer
compile but is easy to fix by adding an explicit dereference.
</p>
<h2 id="os">Changes to the supported operating systems and architectures</h2>
<h3 id="android">Android</h3>
@ -408,8 +442,20 @@ have been updated.
<h3 id="misc">Miscellany</h3>
<p>
TODO misc news
misc: deleted editor support; refer to https://code.google.com/p/go-wiki/wiki/IDEsAndTextEditorPlugins instead (CL 105470043)
The standard repository's top-level <code>misc</code> directory used to contain
Go support for editors and IDEs: plugins, initialization scripts and so on.
Maintaining these was becoming time-consuming
and needed external help because many of the editors listed were not used by
members of the core team.
It also required us to make decisions about which plugin was best for a given
editor, even for editors we do not use.
</p>
<p>
The Go community at large is much better suited to managing this information.
In Go 1.4, therefore, this support has been removed from the repository.
Instead, there is a curated, informative list of what's available on
a <a href="https://code.google.com/p/go-wiki/wiki/IDEsAndTextEditorPlugins">wiki page</a>.
</p>
<h2 id="performance">Performance</h2>
@ -445,7 +491,7 @@ Library changes that affect performance are documented below.
<h3 id="new_packages">New packages</h3>
<p>
TODO new packages
There are no new packages in this release.
</p>
<h3 id="major_library_changes">Major changes to the library</h3>
@ -456,7 +502,7 @@ TODO major changes
<pre>
encoding/gob: remove unsafe (CL 102680045)
syscall: now frozen (CL 129820043)
syscall: now frozen (CL 129820043); go.sys subrepo created: http://golang.org/s/go1.4-syscall
</pre>
<h3 id="minor_library_changes">Minor changes to the library</h3>
@ -502,6 +548,4 @@ testing: add TestMain support (CL 148770043)
text/scanner: add IsIdentRune field of Scanner. (CL 108030044)
text/template: allow comparison of signed and unsigned integers (CL 149780043)
time: use the micro symbol (µ (U+00B5)) to print microsecond duration (CL 105030046)
go.sys subrepo created: http://golang.org/s/go1.4-syscall
</pre>