2009/11/12

Ubuntu 9.10 に新言語 Go を入れてみた

まさかのGoogle が突然のオープンソースで新言語Goを公開。
C言語の血を色濃く引く新しい言語で特徴となるのは

Goのオフィシャルサイトの記述によれば、シンプルで高速、安全、そして並列処理が可能な点が特徴として挙げられている。C言語風の記述形式ながら異なる文法体系を持ち、ポインタが利用可能なものの、バッファオーバーフローの遠因となる複雑なポインタ演算を排除。

文法体系はシンプルで、ガベージコレクションが用意されているほか、並列実行を考慮して軽量なプロセス間通信を行う手段が提供され、簡易なプログラミングで大規模処理が可能なシステムが構築できるという。
シンプルで高速、Googleの新プログラミング言語「Go」 | エンタープライズ | マイコミジャーナル

へー。
と言うことなので入れてみたくなったので、Ubuntu 9.10に入れてみました。
入れてみたくなりましたが、さすがにインストーラーで簡単にとはいかず…

 

今回自分の試した環境は32bit Mac OS X 上で動くVirtualBox 3 の中に入れたUbuntu 9.10となりますので、32bit版です。Python等と違って厳密にコンパイル時に32/64bitの指定をする必要があるみたいです。

 

手順はほぼUbuntu9.04でGoを動かす! - 4403 is writtenにあったのと同じ。
違う部分は太字にしてあります。

$ cd ~
$ mkdir bin
$ export GOROOT=$HOME/go
$ export GOOS=linux
$ export GOARCH=386
$ export PATH=$PATH:$HOME/bin
$ source .bashrc
$ sudo apt-get install python-setuptools
$ sudo apt-get install mercurial
$ hg clone -r release https://go.googlecode.com/hg/ $GOROOT
$ sudo apt-get install bison gcc libc6-dev ed
$ cd $GOROOT/src
$ ./all.bash
$ cat >hello.go <<EOF
package main
import "fmt"
func main() {
  fmt.Printf("Hello, Go!\n")
}
EOF
$ 8g hello.go
$ 8l hello.8
$ ./8.out
Hello, Go!
$

まずはGOARCHの部分。
32bitCPUの場合は386、64bitCPUの場合はamd64と変更して下さい。

引っかかったのは実行の部分。
32bitCPUの場合は8g/8l/.8等 とにかく8。64bitCPUの場合は6g/6l/.6等とにかく6。

 

CやObjectiv-Cより分かりやすいけどCらしいCじゃない言語的な感じ。
後はがんばり次第でいかようにでも;p

 

The Go Programming Language