Lisp Scheme Part35
■ このスレッドは過去ログ倉庫に格納されています
0447はちみつ餃子 ◆8X2XSCHEME
2013/01/28(月) 10:19:27.99http://gauche.git.sourceforge.net/git/gitweb.cgi?p=gauche/Gauche;a=blob;f=src/gauche.h;h=9ae7aa27b36e24165b9a6fa8cf8f3b066a00ba6d;hb=HEAD#l184
Gauche の場合はヒープオブジェクトは常に4バイト境界に配置することになっているので下位2ビットは常にゼロになる。
逆に言えば下位2ビットがゼロのときはポインタだってことだし、ゼロでないときはポインタではない。
具体的なレイアウトは処理系によって多少の工夫があるけど、基本的な考え方はどれも似たようなものだよ。
Ypsilon は8バイト境界に配置するようにしてるみたいだね。
R6RS では fixnum が24ビットと書いてる (実際にはちょっと書き方が違うが) のでタグに1バイトは取れる計算になる。
■ このスレッドは過去ログ倉庫に格納されています