http://golang.org/
Go はコンパイル時間がきわめて短く、GC (ガベージコレクタ) 機能を持つ、といった特長があるそうだ。
生粋のプログラマというわけではないので開発言語としてどうなのか評価することはできないが、インストールメモとして書いておきたい。
今回試した環境は Fedora Core 10。
Mac OS X (10.5 または 10.6) でも使えるようなので、いずれやってみたい。
インストール手順は以下のとおり。
(1) Mercurial というソース管理ツールをインストール
# yum install mercurial(2) 以下の環境変数を設定。
$GOROOT- Go ソースのダウンロード先
$GOOS- OS名。今回は linux。Mac OS X なら darwin
$GOARCH- アーキテクチャ。amd64、386、arm のいずれか
$GOBIN- バイナリのインストール先。デフォルトは
$HOME/bin
$ hg clone -r release https://go.googlecode.com/hg/ $GOROOT(4) コンパイル&インストール
# cd $GOROOT/src
# ./all.bash※インストールには、bison、gcc、ed、make などが必要。
最後に、
--- cd ../test
N known bugs; 0 unexpected bugsと表示されれば正常終了 (
N のところにはバージョン番号が表示される)。インストール中に
$GOBIN/quietgcc というシェルスクリプトが作られ、それを使ってコンパイルされたりしていて興味深い。なお、Mercurial は Linux カーネルの開発の中で産み出された分散型バージョン管理システムだそうである (実際に Linux カーネル開発に採用されたのは Linus 氏が開発した Git)。
Git は聞いたことがあったが、Mercurial というのもあったのか。
いろいろと勉強になる。
※ @IT に機能比較の記事があった。
分散バージョン管理Git/Mercurial/Bazaar徹底比較
http://www.atmarkit.co.jp/fjava/rensai4/devtool03/devtool03_1.html
さて、インストールされるコンパイラ、リンカーのコマンド名はそれぞれ
Ag、Al、中間ファイルは *.A、最終生成物は A.out だ。A のところは、アーキテクチャによって異なる。
amd64 なら 6、386 なら 8 となる。
※ インストール手順に arm の場合は 8 および 5 と書かれているが、試していないのでどういうことかよくわからない。
提供されているサンプルソースをコンパイル/リンクし、正常に動作することが確認できた。
package mainimport "fmt"func main() { fmt.Printf("hello, world\n")}
これを test.go として保存し、コンパイル&リンク。
$ 8g test.go
$ 8l test.8
$ ./8.out
hello, world
とりあえず、今回はここまで。


