aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2013-09-16 13:03:00 +1000
committerRob Pike <r@golang.org>2013-09-16 13:03:00 +1000
commit83da0fd989d7e5c981bde26a8a9cc0d0f88fe9ed (patch)
tree0fb6a19c3df1cc03e4de81c2db7d3d1d67d9dbbe
parent49eeef5927b37a96d1bb733197cff7ea974aad2c (diff)
downloadgo-83da0fd989d7e5c981bde26a8a9cc0d0f88fe9ed.tar.xz
doc/go1.2.html: compiler changes
Document the semantic changes within the gc toolchain. Also delete the mention of unbalanced right delims in template That change was rolled back. Absent typos, things we've forgotten, and new things that happen, the release notes are ready. R=golang-dev, adg, dominik.honnef CC=golang-dev https://golang.org/cl/13368052
-rw-r--r--doc/go1.2.html59
1 files changed, 36 insertions, 23 deletions
diff --git a/doc/go1.2.html b/doc/go1.2.html
index e8a2b86a97..ce54850c19 100644
--- a/doc/go1.2.html
+++ b/doc/go1.2.html
@@ -180,28 +180,50 @@ support for Go 1.2.
In the current (4.8.2) release of GCC, gccgo implements Go 1.1.2.
</p>
-<h3 id="gc_changes">TODO</h3>
+<h3 id="gc_changes">Changes to the gc compiler and linker</h3>
<p>
-TODO: write prose
+Go 1.2 has several semantic changes to the workings of the gc compiler suite.
+Most users will be unaffected by them.
</p>
-<ul>
-<li>cmd/5a: removed support for R9/R10 (use m/g instead) (CL 9840043).
-</li>
+<p>
+The <a href="/cmd/cgo/"><code>cgo</code></a> command now
+works when C++ is included in the library being linked against.
+See the <a href="/cmd/cgo/"><code>cgo</code></a> documentation
+for details.
+</p>
-<li>cmd/5l: add MOVBS, MOVHS etc for sub-word moves (CL 12682043).
-</li>
+<p>
+The gc compiler displayed a vestigial detail of its origins when
+a program had no <code>package</code> clause: it assumed
+the file was in package <code>main</code>.
+The past has been erased, and a missing <code>package</code> clause
+is now an error.
+</p>
-<li>cmd/5l: support for external linking for linux/arm (CL 12871044).
-</li>
+<p>
+On the ARM, the toolchain supports "external linking", which
+is a step towards being able to build shared libraries with the gc
+tool chain and to provide dynamic linking support for environments
+in which that is necessary.
+</p>
-<li>cmd/cgo, cmd/go: support including C++ code with cgo (CL 8248043).
-</li>
+<p>
+In the runtime for the ARM, with <code>5a</code>, it used to be possible to refer
+to the runtime-internal <code>m</code> (machine) and <code>g</code>
+(goroutine) variables using <code>R9</code> and <code>R10</code> directly.
+It is now necessary to refer to them by their proper names.
+</p>
-<li>cmd/gc: make missing package error fatal (CL 12677043).
-</li>
-</ul>
+<p>
+Also on the ARM, the <code>5l</code> linker (sic) now defines the
+<code>MOVBS</code> and <code>MOVHS</code> instructions
+as synonyms of <code>MOVB</code> and <code>MOVH</code>,
+to make clearer the separation between signed and unsigned
+sub-word moves; the unsigned versions already existed with a
+<code>U</code> suffix.
+</p>
<h3 id="cover">Test coverage</h3>
@@ -501,20 +523,11 @@ The two forms are identical in effect; the difference is just in the syntax.
</p>
<p>
-Finally, the package
-now correctly diagnoses unmatched right delimiters.
-They were accepted without complaint before, and templates that had them
-will now fail to parse.
-</p>
-
-<p>
<em>Updating</em>: Neither the "else if" change nor the comparison functions
affect existing programs. Those that
already define functions called <code>eq</code> and so on through a function
map are unaffected because the associated function map will override the new
default function definitions.
-Templates with unmatched right delimiters will now fail to parse and will need
-to be fixed by hand.
</p>
<h3 id="minor_library_changes">Minor changes to the library</h3>