[#950] ruby 1.1b0 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

33 messages 1997/12/05

[#998] ruby 1.1b1 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

48 messages 1997/12/09
[#1011] Re: ruby 1.1b1 released — Kazuhisa Yanagawa <katze@...> 1997/12/10

in message-id: <199712090833.RAA31727@picachu.netlab.co.jp>

[#1013] Re: ruby 1.1b1 released — matz@... (Yukihiro Matsumoto) 1997/12/10

まつもと ゆきひろです

[#1028] Regexp#operators (Re: ruby 1.1b1 released) — Shin-ichiro HARA <sinara@...> 1997/12/10

原です。

[#1030] Re: Regexp#operators (Re: ruby 1.1b1 released) — matz@... (Yukihiro Matsumoto) 1997/12/10

まつもと ゆきひろです

[#1033] Re: Regexp#operators (Re: ruby 1.1b1 released) — Shin-ichiro HARA <sinara@...> 1997/12/10

原です。

[#1049] Re: Regexp#operators (Re: ruby 1.1b1 released) — Shin-ichiro HARA <sinara@...> 1997/12/11

原です。

[#1064] Re: Regexp#operators (Re: ruby 1.1b1 released) — matz@... (Yukihiro Matsumoto) 1997/12/12

まつもと ゆきひろです

[#1097] Re: Regexp#operators (Re: ruby 1.1b1 released) — Shin-ichiro HARA <sinara@...> 1997/12/15

原です。

[#1002] Object#bind — shugo@... (Shugo Maeda)

前田です。

39 messages 1997/12/09
[#1008] Re: Object#bind — matz@... (Yukihiro Matsumoto) 1997/12/10

まつもと ゆきひろです

[#1023] Re: Object#bind — shugo@... (Shugo Maeda) 1997/12/10

前田です。

[#1026] Re: Object#bind — matz@... (Yukihiro Matsumoto) 1997/12/10

まつもと ゆきひろです

[#1044] Re: Object#bind — keiju@... (石塚圭樹 ) 1997/12/11

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

[#1051] Re: Object#bind — shugo@... (Shugo Maeda) 1997/12/11

前田です。

[#1063] Re: Object#bind — matz@... (Yukihiro Matsumoto) 1997/12/12

まつもと ゆきひろです

[#1079] Re: Object#bind — keiju@... (石塚圭樹 ) 1997/12/14

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

[#1084] Re: Object#bind — matz@... (Yukihiro Matsumoto) 1997/12/15

まつもと ゆきひろです

[#1087] Re: Object#bind — keiju@... (石塚圭樹 ) 1997/12/15

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

[#1088] Re: Object#bind — matz@... (Yukihiro Matsumoto) 1997/12/15

まつもと ゆきひろです

[#1085] [Req] object refference — keiju@... (Keiju ISHITSUKA)

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

12 messages 1997/12/15

[ruby-dev:1166] Re: Object#bind

From: keiju@... (石塚圭樹 )
Date: 1997-12-24 12:58:46 UTC
List: ruby-dev #1166
けいじゅ@日本ラショナルソフトウェアです.

In [ruby-dev :01155 ] the message: "[ruby-dev:1155] Re: Object#bind ",
on Dec/19 10:19(JST) Yukihiro Matsumoto writes:

>まつもと ゆきひろです

>|UnboundMethodにそのメソッドが定義されていたクラスも持たせれば
>|よいのではないでしょうか?
>
>そうか.どうもこれでよさそうですね.
>
>でも,selfのクラスとメソッドが仮定しているselfのクラスが食い
>違っちゃうので,selfに対するメソッド呼出とかがうまくいかない
>可能性は高いですね.とはいえ,これは自分の責任だということに
>なると思いますが.

superはうまく行くのにselfは駄目なのですか? selfもメソッドが覚えている
クラスとすれば良いんじゃないかしら? そういう実装は難しい?

>それと,やはりメソッドの仮定しているオブジェクト構造と実際の
>オブジェクト構造の食い違いの問題は残りますね.

そうですねえ... 

>もし,仮にUnboundMethodを採用するにしても,上のふたつの問題
>からある程度の制限がつくと思いますが,それはどの程度のものな
>ら許容できるのか,あるいはそもそもUnboundMethodは必要なのか,
>という点についてもう少し考察する必要がありそうです.


In [ruby-dev :01158 ] the message: "[ruby-dev:1158] Re: Object#bind ",
on Dec/19 17:50(JST) Yukihiro Matsumoto writes:

>まつもと ゆきひろです
>
>|BoundMethod/UnboundMethodと分けるのは止めて,石塚さんのイ
>|メージするBoundMethodのようなものをMethodという名前で用意
>|しておけば,十分かもしれません。
>
>前田さんの提案は実装するぶんからは現実的なのですが(更にレシー
>バとバインドしたオブジェクトを作っても構いませんし),使う方
>としてはどうなんでしょうか.先程リリースした1.1b2には
>
>  Module#alias_method
>  Module#undef_method
>
>が追加されてますので,その辺も考慮して下さい.

BoundMethod/UnboundMethodの区別がないってなればそれはそれで良いかも知
れません.

ただ, UnboundMethodの用途は, 

* Methodのクラス間移動(他のモジュールへの束縛)
* レシーバのクラスを限定しないapply

にあると思うのですが,

UnboundMethodをModuleにbindする時に, 前田さんが提案された(add_method)
の様なものではなくて, 普通にdefしたのと変わらない実行効率が望ましいで
すよね. それができないとなると, applyだけが価値あることになると思いま
すが, このようなapplyが許されるとなるとrubyの実行モデルがだいぶ変わっ
てくるように思えますね...

rubyで書かれたクラスのデータ構造はメソッドの呼び出しによって決まるもの
であり, クラス継承とは関係ない(メソッドの呼び出しがクラス継承を用いてい
るので間接的には関係ありますが)ですよね.

ですので, どうせそこまでするのなら, メソッドのsuperの呼びだし関係(メソッ
ド結合と呼びましょう)はデフォルトでは, そのメソッドの所属するクラス継
承と同じになるが, メソッド結合をメソッド単位に独自に定義できてしまうよ
うなモデルにしちゃうのも面白いかも知れませんね.

そうすれば, このようなUnboundMethodも違和感なく使えるのですが...

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

In This Thread