kiyokaのブログアーカイブ

Archive of old blog posts

7月27時点のGauche trunkをビルドした

目的はparse.pegを動かすため。 以下に、手順をメモしておく。 (7月27時点のGauche trunk は 0.8.14 としてリリースされるハズのバージョンです)

Gauche-0.8.12をアンインストール

  • アンインストールでやられる MacOS X leopardで Gauche 0.8.12が入っている状態からスタート。 Gauche trunkのビルドには最新のリリースバージョン(0.8.13)が必要なので、まずはアンインストール。 Gaucheに限らないけど、システムに2バージョン以上の処理系が上書きインストールされた状態で使うと正しいバージョンのライブラリがロードされないとかいろいろ問題が起きると思われる。 そんなのでハマりたくないので、ちゃんとアンインストールする。 で、別の問題でハマる。 Gauche-0.8.12のmake uninstallを実行すると、Boehm GCのダイナミックリンクライブラリが消えた。 やられた。 Gaucheのリリースノートを見ると0.8.13で直っていると書いてある。 だからといって、今回の件は0.8.12をアンインストールする段にはどうしようもない。 同じBoehm GCを使うw3m-0.5.2が動かなくなって気がついた。

  • 気を取りなおして、Boehm GC 7.1をインストール 前は、Boehm GC 7.0をインストールしていたが、この際最新にしてみた。 ちなみに、Gaucheのディストリビューションにはgcが内蔵してあるので、後で上書きされるかも。 Gauche trunkもBoehm GC 7.1になっているのでまあどちらでも良しとしよう。 w3m-0.5.2が動くようになった。 w3mとの相性としては、後方互換性が有るようだ。

Gauche-0.8.13をインストール

Gaucheのtrunkをビルドするにあたって、なるべく新しい方ものをベースにするほうが良さそうなので0.8.13をビルドする。 問題なくビルド・インストールできた。

Gauche trunkをインストール

autoconfが必要な以外は、configure && make && make installできた。 ちなみに、ポイントだけ書いておくと、0.8.13アンインストールもちゃんとやるほうが良いだろう。 私の実施した手順は

  • Gauche trunk – Subversionから取得 – ./DIST gen – configure – make
  • Gauche 0.8.13 – make uninstall
  • Gauche trunk – make install

ちなみに、この時点でのGauche trunkはバージョン表示が0.8.13のままなのでtrunkをインストールしたことを忘れてしまわないこと。

 $ gosh -V
 Gauche scheme interpreter, version 0.8.13 *utf-8,pthreads*

trunkなのに勘違いして0.8.13の積もりでバグ報告すると、shiroさんが混乱されるので注意。

parse.pegが動くかテスト

testに全てパスしたよ。めでたしめでたし。

 bash-3.2$ cd Gauche-trunk-20080727/Gauche/ext/peg
 bash-3.2$ gosh ./test.scm 
 Testing parser.peg ...                                           
 <peg>--------------------------------------------------------------------------
 testing bindings in #<module parser.peg> ... ok
 test rope->string, expects "abc" ==> ok
 test rope->string, expects "012abcX" ==> ok
 test rope->string, expects #<error> ==> ok
 <primitives>-------------------------------------------------------------------
 test $return (success), expects "xyz" ==> ok
 test $fail (failure), expects (0 "error") ==> ok
 test $expect (failure), expects (0 "character") ==> ok
 <string>-----------------------------------------------------------------------
 test $string (success), expects "abc" ==> ok
   .
  ()
   .
 test calculator (success), expects 36 ==> ok
 test calculator (success), expects -1 ==> ok
 passed.
 bash-3.2$ 

参考URL