初めての Google V8
積ん読ソースコードだった Google V8 をそろそろ読もうと思い,まずは使ってみることにした.インストール環境は,Fedora 14 (32bit).64bit 版だと必要なライブラリなどで若干のハマりどころがあるみたい (というよりも自分がハマった) だけど,32bit 版ではすんなりいった.
コンパイル
まずソースコードを入手する.
$ git clone git://github.com/v8/v8.git v8
$ cd v8
コンパイルには SCons という Python ベースのビルドツールが必要になる.Make の場合は Makefile を書くけれど,SCons では SConstruct という名前の Python スクリプトでビルド手順を記述することになる.細かいことはよく知らないので今度調べるとして,とりあえずインストールする.
$ sudo yum install scons
あとは clone した V8 のディレクトリ内で scons コマンドを叩くだけ.
$ scons
これで V8 本体のコンパイルは終了.とても簡単.
次にサンプルプログラムを動かしてみる.V8 にはサンプルとして JavaScript の Interactive Shell のコードが含まれているので,これをコンパイルして使ってみる.
$ scons sample=shell
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
g++ -o obj/sample/shell/release/shell.o -c -fno-rtti -fno-exceptions -m32 -O2
-Iinclude samples/shell.cc
g++ -o shell -m32 -O2 -m32 obj/sample/shell/release/shell.o -L. -lv8 -lpthread
scons: done building targets.
$ ./shell
V8 version 3.4.13 (candidate)
> var str = "Hello, world!";
> print(str);
Hello, world!
“Hello, world!” と出力されるのが確認できた.
追記 (2011/07/16)
shell よりもちょっとリッチな d8 という shell もある.readline を使うので,まずはこれをインストールしておく.
$ sudo yum install readline-devel
そして,scons コマンドを使って次のようにビルドする.
$ scons d8 console=readline
これで,./shell の代わりに ./d8 が使えるようになる.readline を指定していれば,上下でコマンド履歴が見れる分,shell よりも使い勝手がいい.
$ ./d8
V8 version 3.4.13 (candidate) [console: readline]
d8> var str = "Hello, new world!";
d8> print(str);
Hello, new world!
まとめ
- V8 をビルドしてみた
- Interactive Shell で “Hello, world!” してみた