とある事情にてw

ひさびさに Gauche のソースを掘削してみることに。リポジトリが Github にある模様。いざ入手。

$ git clone git://github.com/shirok/Gauche.git

で、以前読んでた 0.8.11 を取り出してみます。

$ git checkout release0_8_11

掘削着手。
とその前に gtags しとかなきゃ。って OSX にパケジ導入されていない。以下で良いのかな。

$ brew install global

なんか Xcode 4.6.3 入れれとか言うとるがスルー。で、

$ gtags -v

して Reading Gauche によれば repl.c の Scm_Repl から読み始めてらっしゃるのでここから確認開始か。
て、M-x gtags-mode できなかったので以下から gtags.el を取得して ~/.emacs.d に投入してます。果たしてその方法が正しいのかどうかは謎。

gauche.h

repl.c で #include してるヘッダです。ここにオブジェクトの管理の方法がアレです。つうか今更でアレですがオブジェクトはほとんど heap で云々だったな。
lisp/scheme 方式だと LSB な 2 bit だか 3 bit だかがステ扱いで、

  • Fixnum
  • Character
  • Misc (#t, #f, '(), eof, undef)

あたりも LSB な bit で用途を判断してますね。

むむ

何オブジェクトなのかの判断なあたり、マクロだらけでアレなのですが面白いので再確認がてら整理してみたいです。ただ、この方式を使って云々、ってことであれば GC が必要になってくるのか。ちょいむむむむ的。