add information comparing the compiler implementations to the installation document

R=rsc
CC=go-dev
http://go/go-review/1018063
diff --git a/doc/install.html b/doc/install.html
index 1ab7b14..5478a4a 100644
--- a/doc/install.html
+++ b/doc/install.html
@@ -4,10 +4,10 @@
 
 <p>
 There are two distinct ways to experiment with Go.
-This document explains how to check out, build, and use the <code>6g</code> Go
-compiler and tools.
+This document explains how to check out, build, and use the <code>gc</code> Go
+compiler and tools (<code>6g</code>, <code>8g</code> etc.).
 For information on how to use <code>gccgo</code>, a more traditional
-compiler using the gcc back end, see
+compiler using the GCC back end, see
 <a href="go_gccgo_setup.html">Setting up and using gccgo</a>.
 </p>
 
@@ -18,31 +18,43 @@
 plus one optional variable:</p>
 
 <dl>
-<dt><code>$GOROOT</code></dt>
+<dt>
+	<code>$GOROOT</code>
+</dt>
 <dd>The root of the Go tree.  Typically this is <code>$HOME/go</code>
-but it can be any directory.</dd>
-<dt><code>$GOOS</code> and <code>$GOARCH</code></dt>
-<dd>The name of the target operating system and compilation architecture.
-Choices for <code>$GOOS</code> are <code>darwin</code> (OS X), <code>linux</code>,
-and <code>nacl</code> (Native Client, an incomplete port).
-Choices for <code>$GOARCH</code> are <code>amd64</code> (64-bit x86, the most stable port),
-<code>386</code> (32-bit x86, an unoptimized but stable port), and
-<code>arm</code> (32-bit ARM, an incomplete port).
-The valid combinations are 
-<code>linux</code>/<code>amd64</code>,
-<code>linux</code>/<code>arm</code>,
-<code>linux</code>/<code>386</code>,
-<code>darwin</code>/<code>amd64</code>,
-<code>darwin</code>/<code>386</code>,
-and
-<code>nacl</code>/<code>386</code>.
+	but it can be any directory.
 </dd>
-<dt><code>$GOBIN</code> (optional)</dt>
-<dd>The location where binaries will be installed.
-If you set <code>$GOBIN</code>, you need to ensure that it 
-is in your <code>$PATH</code> so that newly built Go-specific
-command such as the compiler can be found during the build.
-The default, <code>$HOME/bin</code>, may already be in your <code>$PATH</code>.
+
+<dt>
+<code>$GOOS</code> and <code>$GOARCH</code>
+</dt>
+<dd>
+	The name of the target operating system and compilation architecture.
+	Choices for <code>$GOOS</code> are <code>linux</code>,
+	<code>darwin</code> (Mac OS X 10.5 or 10.6), 
+	and <code>nacl</code> (Native Client, an incomplete port).
+	Choices for <code>$GOARCH</code> are <code>amd64</code> (64-bit x86, the most stable port),
+	<code>386</code> (32-bit x86, an unoptimized but stable port), and
+	<code>arm</code> (32-bit ARM, an incomplete port).
+	The valid combinations are 
+	<code>linux</code>/<code>amd64</code>,
+	<code>linux</code>/<code>arm</code>,
+	<code>linux</code>/<code>386</code>,
+	<code>darwin</code>/<code>amd64</code>,
+	<code>darwin</code>/<code>386</code>,
+	and
+	<code>nacl</code>/<code>386</code>.
+</dd>
+
+<dt>
+<code>$GOBIN</code> (optional)
+</dt>
+<dd>
+	The location where binaries will be installed.
+	If you set <code>$GOBIN</code>, you need to ensure that it 
+	is in your <code>$PATH</code> so that newly built Go-specific
+	command such as the compiler can be found during the build.
+	The default, <code>$HOME/bin</code>, may already be in your <code>$PATH</code>.
 </dd>
 </dl>
 
@@ -61,6 +73,57 @@
 $ env | grep '^GO'
 </pre>
 
+<h2>Ports</h2>
+
+<p>
+Go compilers support two operating systems (Linux, Mac OS X) and
+three instruction sets.
+The versions for Linux and Mac are equally capable except that the ARM port
+does not run on OS X (yet).
+</p>
+<p>
+There are important differences in the quality of the compilers for the different
+architectures.
+</p>
+
+<dl>
+<dt>
+	<code>amd64</code> (a.k.a. <code>x86-64</code>); <code>6g,6l,6c,6a</code>
+</dt>
+<dd>
+	The strongest implementation.  The compiler has an effective optimizer
+	(registerizer) and generates good code (although <code>gccgo</code>
+	can do noticeably better sometimes).
+</dd>
+<dt>
+	<code>386</code> (a.k.a. <code>x86</code> or <code>x86-32</code>); <code>8g,8l,8c,8a</code>
+</dt>
+<dd>	
+	Comparable to the <code>amd64</code> port, but there is no
+	optimizer.  Work is underway.
+</dd>
+<dt>
+	<code>arm</code> (a.k.a. <code>ARM</code>); <code>5g,5l,5c,5a</code>
+</dt>
+<dd>
+	Developed under the QEMU emulation environment, this is the
+	newest implementation.  It's got a couple of outstanding bugs
+	but is improving.
+</dd>
+</dl>
+
+<p>
+Except for things like low-level operating system interface code, the runtime
+support is the same in all ports and includes a mark-and-sweep garbage collector
+(a fancier one is in the works), efficient array and string slicing,
+support for segmented stacks, and a strong goroutine implementation.
+</p>
+
+<p>
+See the separate <a href="go_gccgo_setup.html"><code>gccgo</code> document</a>
+for details about that compiler and environment.
+</p>
+
 <h2>Fetch the repository</h2>
 
 <p>
@@ -189,9 +252,12 @@
 To build more complicated programs, you will probably
 want to use a 
 <code>Makefile</code>.
-There are examples in <code>$GOROOT/src/cmd/godoc/Makefile</code>
+There are examples in places like
+<code>$GOROOT/src/cmd/godoc/Makefile</code>
 and <code>$GOROOT/src/pkg/*/Makefile</code>.
-<a href="">XXX other document XXX</a> gives more detail about
+The
+<a href="contribute.html">document</a>
+about contributing to the Go project
+gives more detail about
 the process of building and testing Go programs.
 </p>
-