Squeak 続き

なんだか Socket とか、そういう基本的なクラスでも普通に↑の基本を破ってるわけで、
けっこう疲れてしまうわけですが、信頼していた Time class>>milliseconds:since: も豪快に間違っているではないか。
もう嫌だ。


手元にインタープリタのソースが無いから知らないけど、
私が使っているVMの interp.c では、
#define MillisecondClockMask 536870911
となっていて、システムクロックの値は必ずこれでマスクされることになっているらしい。
Time class>>millisecondClockValue が SmallInteger maxVal // 2 以下の値しか返さない最終的な理由はこれ。


で、そうであれば、Time>>milliseconds:since: は SmallInteger maxVal // 2 を使わなくてはならないのに、
豪快に SmallInteger maxVal となっている。


まぁ、こうして気付いたわけだし、単に直せば良いわけですが、
こういうVM依存な値をどう書くのが正解なのでしょうか。


因みに、新しい日本語のやつで確認ね。