えぐち です。

> まつもと ゆきひろです
> 
> In message "[ruby-list:4589] Re: Object#freeze"
>     on 97/09/24, MAEDA Shugo <shugo / po.aianet.ne.jp> writes:
> 
> |前田です。
> 
> ||この方法は  こ す と が大きな問題になりそうです。
> |
> |ですね、ちょっと大袈裟すぎる気がします。
> 
> ええと,変数などに型のないrubyではテンプレートメソッド(この
> 用語って一般的なんですか?)は必要ないと思います.
> 
> |クラスライブラリの変更だけで済むような方法の方がよいのでは
> |ないでしょうか。
> 
> 実は$SAFE=5のためにほとんどの変更には既にフックが仕掛けてあ
> ります.配列とかハッシュとか.これを利用すればfreezeもできな
> いことは無いんです.ただ,全部のオブジェクトとなるとIOとか
> Dirとかfreezeの意味があるのかないのか良く分からないものとか
> ModuleやClassのようなものまで考えないといけなくなってと頭痛
> いので,いまんとこ現状のようになっているわけです.

全部のオブジェクトの freeze に意味付けするのが大変なのは
だいぶわかってきました。

	+ 変数とオブジェクトの関係の変化
	+ オブジェクトの内容の変化

この違いが、やっとこ理解できかけてきました。
 それぞれにスクリプトから hook を掛けられるんでしょうか?
 それともインタプリタの内部の事情ですか?

大袈裟なメカニズムを考えてしまったのは結局、
他の言語の変数(定数)=>オブジェクトの意味モデルを強引に
表現しようとしていたのが原因だったと思います。

ライブラリで hook を掛けるとして、そのロードが明示的に必要なのですが、

 + 定数としての特徴をもつオブジェクトに必要なフックを掛ける
 + ダンプする

ってのがスマートなのではないでしょうか?
ロード時間も早くなりそうだし(結構 ruby のロードって時間かかっています)、
TRUE=0 の問題も解決できそうな気がします。

ダンプの仕方思い付かないですけど、だれか考えたことありませんか?

ダンプでなくても、Cの文字列に必要な rubyの コードを書いて
main() の中でコンパイルしてしまうのも結果は同じでですが、、
、、あまりにもカッコ悪いです。