第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 gauche-gl.c:421: error: 'GLUtriangulatorObj' undeclared (first use in this function) &be() :(以下いろいろなエラー) |
いろいろと調べてみたところ、Gauche-devel-jpで次の2つの記事を見つけた。
- ./configure.inの71 行めで"powerpc-apple-darwin*)"を"*-apple-darwin*)"に変更(リンク)
- ./configure後にMakefileでCFLAGS,LIBS,glut_LIBS設定を変更(リンク)
実施してみたところ、無事にインストール成功。これ、将来のリリースでは修正されるのだろうか。
スタックトレースを出力する方法
バックトレースを出力する方法でいつも悩んでいたので、ググって調べてみた。そうしたら結城浩氏のSICPサイトで説明があって、僕も簡単に利用できるようになったので紹介。
- まず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つの手続きしかトレースできないみたい。なぜだろう?