yarv-dev:453
From: shudo computer.org
Date: Sun, 6 Mar 2005 22:41:28 +0900
Subject: [yarv-dev:453] Re: Ruby.NET Compiler
淺川さん、皆様、首藤です。 > Ruby との違いについて、.NET クラスライブラリとの連携について、 > パフォーマンスについて加筆しました。 > http://www.asakawa.net/ruby/rubynet_memo.html 楽しく読ませて頂いてます。 以下、書いていたら自己解決してしまったので、お暇な方だけ読んで下さい。 ■組み込み関数とトップレベルのメソッド の内容を読んで、疑問が湧きました。 誤解していたら、すみません。 この章に現れる各クラスの継承関係はこうなっていて、 Test -> Object -> RubyLibrary.Object Array -> RubyLibrary.Array -> RubyLibrary.Object 組み込み関数が再定義された場合には、 Object や Array クラスで、RubyLibrary.◯◯での定義を override する、 と理解してます。 で、このままだと、 Object#puts が (RubyLibrary.Object#puts を override して) 定義された場合、 Test クラスからはその puts が呼び出されるけれど、 Array クラスからは既定の RubyLibrary.Object#puts が呼び出されてしまう。 だから、Object#puts の定義を Array#puts としてもコピーしておく。 それによって、Array からも Object#puts と同じ内容が呼び出される。 と理解しました。 継承関係を、下記のようにすれば済む話ではないのでしょうか。 Array -> RubyLibrary.Array -> Object -> RubyLibrary.Object …と書いていたのですが、 Object クラスは Ruby.NET コンパイラが各 Ruby プログラムに対して 生成するので、RubyLibrary.Array が Object を継承しておくことは できないのですね。 むぅ。 Kazuyuki Shudo/首藤一幸 私をたばねないで あらせいとうの花のように shudo computer.org http://www.shudo.net/ -- ML: yarv-dev quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
427 2005-02-23 15:12 [ko1 atdot.net ] Ruby.NET Compiler 428 2005-02-24 00:41 ┗[ko1 atdot.net ] 429 2005-02-26 16:35 ┗[ml asakawa.net ] 430 2005-02-27 16:13 ┗[ml asakawa.net ] 431 2005-02-28 23:43 ┗[ml asakawa.net ] 436 2005-03-05 19:36 ┣[ko1 atdot.net ] 438 2005-03-05 21:18 ┃┣[ml asakawa.net ] 440 2005-03-06 01:03 ┃┃┣[ko1 atdot.net ] 444 2005-03-06 14:23 ┃┃┃┗[ml asakawa.net ] 445 2005-03-06 16:45 ┃┃┃ ┣[ko1 atdot.net ] 452 2005-03-06 22:26 ┃┃┃ ┗[shudo computer.org ] 454 2005-03-06 23:28 ┃┃┃ ┗[ko1 atdot.net ] 447 2005-03-06 17:33 ┃┃┗[zn mbf.nifty.com ] 439 2005-03-06 00:27 ┃┗[matz ruby-lang.org ] 441 2005-03-06 01:11 ┃ ┗[ko1 atdot.net ] -> 453 2005-03-06 22:41 ┗[shudo computer.org ]