From: matz@... (Yukihiro Matsumoto) Date: 1999-09-24T01:02:26+09:00 Subject: [ruby-dev:7909] Re: What is rb_eval_string_wrap まつもと ゆきひろです In message "[ruby-dev:7905] What is rb_eval_string_wrap" on 99/09/23, Masaki Suketa writes: |eval.c にある rb_eval_string_wrap は |どのように使うのでしょうか? |第二引数の使い方が良くわかりません. |もう使われなくなった関数でしょうか? rb_eval_string_wrap()は、無名モジュールを生成してそのコンテ キストで文字列を評価します。ですから、グローバルネームスペー スを汚染しません。 第2引数はevalの結果を得るためのintへのポインタを渡すようになっ ていますが、現状ではこの引数にはあまり意味は無いので常に0を 渡してください。 あ、でもそれだとまずいことがあるな。がーん、バグだ。以下の修 正が必要そうです。現状のままお使いの場合には、かならずダミー 変数へのポインタを渡してください。 --- /tmp/eval.c Wed Sep 22 00:00:48 1999 +++ eval.c Fri Sep 24 00:01:48 1999 @@ -1181,9 +1185,9 @@ POP_CLASS(); if (state) { *state = status; - if (status) { - JUMP_TAG(status); - } + } + else if (status) { + JUMP_TAG(status); } return val; } |後,別件ですが,README.EXT(.jp) に書いてある |void ruby_init(int argc, char **argv, char **envp) |は |void ruby_init() |ですよね? そうですね。以前はこのような引数だったような気もしますが、ド キュメントが現状に合わなくなってますね。修正します。 まつもと ゆきひろ /:|)