「メモ(第2章)」の編集履歴(バックアップ)一覧に戻る

メモ(第2章) - (2007/08/22 (水) 23:56:39) のソース

第2章で気付いた点・残しておきたい内容をここに書いています。

----
** Gaucheでのnil(2007/1/27)
本書で空のリストを表す'nil'は、Gaucheでは'()'になっている。

** intelMacでGauche-gl 0.4.1をインストールするには(2007/5/13)
Gauche-gl 0.4.1をintelMacでインストールしようとしても、次のようなエラーが出て失敗してしまう。

|$ sudo port install gauche-gl&br()gauche-gl.c:421: error: 'GLUtriangulatorObj' undeclared (first use in this function)&br()&be() :(以下いろいろなエラー)|

いろいろと調べてみたところ、Gauche-devel-jpで次の2つの記事を見つけた。

-./configure.inの71 行めで"powerpc-apple-darwin*)"を"*-apple-darwin*)"に変更([[リンク>http://lists.sourceforge.jp/mailman/archives/gauche-devel-jp/2006-March/001540.html]])
-./configure後にMakefileでCFLAGS,LIBS,glut_LIBS設定を変更([[リンク>http://lists.sourceforge.jp/mailman/archives/gauche-devel-jp/2006-May/001605.html]])

実施してみたところ、無事にインストール成功。これ、将来のリリースでは修正されるのだろうか。

** スタックトレースを出力する方法
バックトレースを出力する方法でいつも悩んでいたので、ググって調べてみた。そうしたら[[結城浩氏のSICPサイト>http://sicp.g.hatena.ne.jp/hyuki/20060507/trace]]で説明があって、僕も簡単に利用できるようになったので紹介。

+まずhttp://homepage.mac.com/skimu/ggc/からggc-rel-0-17.tgzをダウンロード
+展開したファイルに「trace」というフォルダがあるので移動
+ここでmake。Macだとsudoを付けないとインストール先フォルダ(/opt/local/share/gauche/site。なければ自動的に作成されます)へのアクセス権がなくて駄目だった

これだけです。使うときは
> gosh> (use ggc.debug.trace)
> #<undef>
> gosh> (untrace)
> ()
> gosh> (trace partial-tree)
> #<closure #f>
> gosh> (list->tree '(1 2 3))
> 0:(partial-tree (1 2 3) 3)
> 1:  (partial-tree (1 2 3) 1)
> 2:    (partial-tree (1 2 3) 0)
>       ->(() 1 2 3)
> 2:    (partial-tree (2 3) 0)
>       ->(() 2 3)
>     ->((1 () ()) 2 3)
> 1:  (partial-tree (3) 1)
> 2:    (partial-tree (3) 0)
>       ->(() 3)
> 2:    (partial-tree () 0)
>       ->(())
>     ->((3 () ()))
>   ->((2 (1 () ()) (3 () ())))
> ; trace: partial-tree has been called 7 times.
> (2 (1 () ()) (3 () ()))
> gosh> 
とすればオーケー。ちなみにggcの他のファイルは必要ありません。traceフォルダもインストール後はコピーされているので削除可です。

ただ、この手続きは同時に1つの手続きしかトレースできないみたい。なぜだろう?
ウィキ募集バナー