人気ブログランキングへ

2009年11月21日

Go を試してみた

Google の Go を試してみた。
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
(3) Mercurial を使ってソースをチェックアウト
$ 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

さて、インストールされるコンパイラ、リンカーのコマンド名はそれぞれ AgAl、中間ファイルは *.A、最終生成物は A.out だ。
A のところは、アーキテクチャによって異なる。
amd64 なら 6、386 なら 8 となる。
※ インストール手順に arm の場合は 8 および 5 と書かれているが、試していないのでどういうことかよくわからない。

提供されているサンプルソースをコンパイル/リンクし、正常に動作することが確認できた。

package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}

これを test.go として保存し、コンパイル&リンク。

$ 8g test.go
$ 8l test.8
$ ./8.out
hello, world


とりあえず、今回はここまで。
タグ:Googe Go
posted by K/I at 21:18 | 東京 ☀ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。