id:io_oiさんにもコメント

http://d.hatena.ne.jp/io_oi/20041124

リテラル数の上限は昔(99年ごろ)はもっと小さかったのですが、Danが自分の書いたコードがその上限に引っかかったときにようやく引き上げられました。僕もときどき引っかかってましたが、最近は無事ですね。

ハッシュは12ビットですが、辞書に入れない限りはあまり必要はない、という説はあるんですよね。Ole Agesenが昔(違うシステムで)やっていたやり方は、#hashが送られる前までは何もしないけど、送られた時点で自分自身の32ビットアドレス値をhash値として返し(そのままではなくなんか演算していたんでしょうね、きっと)、以降はそれを別の領域にしまっておく、というものでした。こっちのほうが複雑だけど大きな範囲の値が使えるしその割にはlazyにやるので良いのですが、Squeakのsimplicityを追求する美学にはちょっとあわないです。

12ビットはいかんせん狭い、というのは確かではあります。