From: Rob Pike Date: Thu, 5 Nov 2009 23:07:42 +0000 (-0800) Subject: add information comparing the compiler implementations to the installation document X-Git-Tag: weekly.2009-11-06~34 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=5f50a8186360837aa23e338b35a0576b680decce;p=gostls13.git 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 1ab7b1422b..5478a4adc2 100644 --- a/doc/install.html +++ b/doc/install.html @@ -4,10 +4,10 @@

There are two distinct ways to experiment with Go. -This document explains how to check out, build, and use the 6g Go -compiler and tools. +This document explains how to check out, build, and use the gc Go +compiler and tools (6g, 8g etc.). For information on how to use gccgo, a more traditional -compiler using the gcc back end, see +compiler using the GCC back end, see Setting up and using gccgo.

@@ -18,31 +18,43 @@ variables that you should set in your .bashrc or equivalent, plus one optional variable:

-
$GOROOT
+
+ $GOROOT +
The root of the Go tree. Typically this is $HOME/go -but it can be any directory.
-
$GOOS and $GOARCH
-
The name of the target operating system and compilation architecture. -Choices for $GOOS are darwin (OS X), linux, -and nacl (Native Client, an incomplete port). -Choices for $GOARCH are amd64 (64-bit x86, the most stable port), -386 (32-bit x86, an unoptimized but stable port), and -arm (32-bit ARM, an incomplete port). -The valid combinations are -linux/amd64, -linux/arm, -linux/386, -darwin/amd64, -darwin/386, -and -nacl/386. + but it can be any directory.
-
$GOBIN (optional)
-
The location where binaries will be installed. -If you set $GOBIN, you need to ensure that it -is in your $PATH so that newly built Go-specific -command such as the compiler can be found during the build. -The default, $HOME/bin, may already be in your $PATH. + +
+$GOOS and $GOARCH +
+
+ The name of the target operating system and compilation architecture. + Choices for $GOOS are linux, + darwin (Mac OS X 10.5 or 10.6), + and nacl (Native Client, an incomplete port). + Choices for $GOARCH are amd64 (64-bit x86, the most stable port), + 386 (32-bit x86, an unoptimized but stable port), and + arm (32-bit ARM, an incomplete port). + The valid combinations are + linux/amd64, + linux/arm, + linux/386, + darwin/amd64, + darwin/386, + and + nacl/386. +
+ +
+$GOBIN (optional) +
+
+ The location where binaries will be installed. + If you set $GOBIN, you need to ensure that it + is in your $PATH so that newly built Go-specific + command such as the compiler can be found during the build. + The default, $HOME/bin, may already be in your $PATH.
@@ -61,6 +73,57 @@ listing your environment. $ env | grep '^GO' +

Ports

+ +

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

+

+There are important differences in the quality of the compilers for the different +architectures. +

+ +
+
+ amd64 (a.k.a. x86-64); 6g,6l,6c,6a +
+
+ The strongest implementation. The compiler has an effective optimizer + (registerizer) and generates good code (although gccgo + can do noticeably better sometimes). +
+
+ 386 (a.k.a. x86 or x86-32); 8g,8l,8c,8a +
+
+ Comparable to the amd64 port, but there is no + optimizer. Work is underway. +
+
+ arm (a.k.a. ARM); 5g,5l,5c,5a +
+
+ Developed under the QEMU emulation environment, this is the + newest implementation. It's got a couple of outstanding bugs + but is improving. +
+
+ +

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

+ +

+See the separate gccgo document +for details about that compiler and environment. +

+

Fetch the repository

@@ -189,9 +252,12 @@ The linker learns about them by reading hello.6. To build more complicated programs, you will probably want to use a Makefile. -There are examples in $GOROOT/src/cmd/godoc/Makefile +There are examples in places like +$GOROOT/src/cmd/godoc/Makefile and $GOROOT/src/pkg/*/Makefile. -XXX other document XXX gives more detail about +The +document +about contributing to the Go project +gives more detail about the process of building and testing Go programs.

-