けいじゅ@日本ラショナルソフトウェアです.

In [ruby-list :30344 ] the message: "[ruby-list:30344] Re: TMarshal ",
on Jun/21 02:02(JST) Yukihiro Matsumoto writes: >まつもと ゆきひろです

>|うーん. basic_newがデフォルトの動作ではいけないのはPrimitiveのクラスの場
>|合だけ問題あるわけですよね.
>
>PrimitiveってのはT_OBJECT以外ってことですよね。それならそう
>いうことです。

です.

>|そういえば思い出しました. [ruby-dev:1553]からのスレッド. 
>|## 懐かしいなあ... あの頃はパワーがあったなあ... 同時に幾つもスレッドが
>|## 走っている... 
>
>年寄り。;-)

というか, 最近と言うかズートなんですがMLに集中している暇はないんですね...
それをやるなら他をやんなくてはって感じで...

>|で, その時と同様の案ですが.
>|
>|  rb_define_singleton_method(cArray, "new", ary_s_new, -1)
>|
>|の様にCレベルでメソッドnewが定義されたら, basic_newをundefする。というの
>|は?
>
>これって結局
>
>|>|いわんとしているのは、newを定義したとき、basic_newがそのクラスで定義され
>|>|ていなかったらbasic_new を undef するってことです.
>
>とおんなじですよね。それでいいんですかねえ。

同じと言えば同じなのかもしれないですが、スクリプト上でnewを再定義しても
basic_newはundefされないと強調したかったんですが.

>basic_newを先に用意して、newをそちらを使うって慣習を作っとけ
>ばよかったですかね。

うーん. でも, 問題になるのが組み込みクラスとextなクラスだけですし、
basic_newしても落ちはしない(ないですから)ので, あとは, 気付いた人が徐々
にバージョンアップしてbasic_newを作っていけばいいので, それほど問題ない
のでは?

ただ, すべてのクラスにbasic_newがあるとすると... たとえば,

  File.basic_new

でできたオブジェクトって何? とかってなってきますけどね(^^;;

もしかしたら, basic_newは、privateかprotectedのほうがよいかもしれないで
すね.

__
..............................石塚 圭樹@日本ラショナルソフトウェア...
----------------------------------->> e-mail: keiju / rational.com <<---