From 79e5dfbf3b12d95f03d95ccc2674529714d94f84 Mon Sep 17 00:00:00 2001 From: Rob Pike Date: Tue, 28 Oct 2014 13:49:41 -0700 Subject: 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 --- doc/go1.4.html | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 50 insertions(+), 6 deletions(-) (limited to 'doc') 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 @@

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 for-range 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 nil.

+

Method calls on **T

+ +

+Given these declarations, +

+ +
+type T int
+func (T) M() {}
+var x **T
+
+ +

+both gc and gccgo accepted the method call +

+ +
+x.M()
+
+ +

+which is a double dereference of the pointer-to-pointer x. +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. +

+ +

+Updating: Code that depends on the old, erroneous behavior will no longer +compile but is easy to fix by adding an explicit dereference. +

+

Changes to the supported operating systems and architectures

Android

@@ -408,8 +442,20 @@ have been updated.

Miscellany

-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 misc 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. +

+ +

+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 wiki page.

Performance

@@ -445,7 +491,7 @@ Library changes that affect performance are documented below.

New packages

-TODO new packages +There are no new packages in this release.

Major changes to the library

@@ -456,7 +502,7 @@ TODO major changes
 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
 

Minor changes to the library

@@ -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 -- cgit v1.2.1