summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2014-10-28 13:49:41 -0700
committerRob Pike <r@golang.org>2014-10-28 13:49:41 -0700
commit79e5dfbf3b12d95f03d95ccc2674529714d94f84 (patch)
tree09bd311b3775e5d304aabc0750344c78b0850003 /doc
parente38fe504cd90a621bac61485e5c166170bee44a1 (diff)
downloadgo-79e5dfbf3b12d95f03d95ccc2674529714d94f84.tar.gz
doc/go1.4.html: breaking compiler change, no plugins in misc
LGTM=rsc R=golang-codereviews, rsc CC=golang-codereviews https://codereview.appspot.com/166850043
Diffstat (limited to 'doc')
-rw-r--r--doc/go1.4.html56
1 files changed, 50 insertions, 6 deletions
diff --git a/doc/go1.4.html b/doc/go1.4.html
index 35a0015a7..c5a918adc 100644
--- a/doc/go1.4.html
+++ b/doc/go1.4.html
@@ -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>