From: Shugo Maeda Date: 2000-06-23T15:19:03+09:00 Subject: [ruby-list:23479] Re: mod_ruby での __FILE__ 前田です。(激遅) At Tue, 23 May 2000 17:15:50 +0900, Yukihiro Matsumoto wrote: > |> rb_loadの内容の大部分をコピって、rb_load_fileの代わりに、 > |> rb_compile_file()を使うってので実現できますかね。 > | > |rb_load()の中身ってたぶんeval.cの中でないと動きませんよね。 > > rb_load()の中身でeval.cでないと駄目なのは大きく分けて > > (a) PUSH_xxx(VARS, CLASS, FRAME, SCOPE) > (b) PUSH_TAG > (c) TMP_ALLOC > > の3種類ですが、トップレベルだとcは不要です。wrapされることが > 分かってて、同時に動かないなら、aも不要のような気がするけど、 > 要検証。bはrb_protectやrb_rescueなどで代用できます。 ruby_wrapperがstaticなので変更できないですよね。 # 何か関数があるのかな。 あと、 self = rb_obj_clone(ruby_top_self); rb_extend_object(self, ruby_class); ... ruby_frame->self = ruby_top_self; のようになっていますが、 ruby_frame->self = self; の間違いではないでしょうか? -- 前田 修吾