From: "たけ (tk)" Date: 2000-11-12T17:41:18+09:00 Subject: [ruby-dev:11485] Re: Proposal of "Array of CharCode" たけ(tk)です。 Yukihiro Matsumoto さん曰く。 》                        ・・・「処理 》モジュール」(いまだに古い用語に固執していますが、なかなか適 》切なのにめぐりあいません)・・・  これって、「処理モジュール」を、(a)C言語だけで定義可能/からだけ使 えるようなルーティン群にするか、(b)Ruby のクラスとして Ruby のスクリ プトで定義することも可能にするか、を決めかねているということでしょうか?。  クラスに出来ない理由はこれ(↓)?。 (1)「処理モジュール」は通常はC言語で作成される。 (2)String クラスのメソッドも通常はC言語で作成される。 (3)「処理モジュール」を Ruby のクラスにすると、C言語製の String クラ スのメソッドから、C言語製の処理モジュール= CharCodeType のメソッド=を 呼び出すときでも rb_funcall で呼び出さなければならなくなってしまう。 (4)rb_funcall だとC言語同士の呼び出しであれば存在しないはずのオーバー ヘッドが生じてしまう。  −−  「C言語で作ったクラスのメソッドをC言語から呼び出すときには Ruby を経 由せずに直接呼び出せるような仕組み」というのは出来ないのでしょうか?。 こんな感じ。 convert_to_mid = rb_intern("convert_to"); convert_to_cfunc = search_method_cfunc_pointer( ... ); if ( convert_to_cfunc != nil ){ convert_to_cfunc( ... ); } else { rb_funcall( convet_to_mid , ... ); } たけ(tk) ggb03124@nifty.ne.jp http://member.nifty.ne.jp/take_tk