From: Yui NARUSE Date: 2011-06-15T14:57:10+09:00 Subject: [ruby-dev:43819] [Ruby 1.9 - Bug #4886] autoload in instance_eval doesn't work Issue #4886 has been updated by Yui NARUSE. Kouji Takao wrote: > 1.8系ではどうなっていたかと思って確認してみました。 > 以下のようにRを参照したときに"a"をロードしようとして例外が発生するのですね。 > > $ ruby -v -e 'instance_eval { autoload :R, "a"; p R }' > ruby 1.8.7 (2009-11-09 patchlevel 202) [i686-darwin9.8.0] > -e:1: no such file to load -- a (LoadError) > from -e:1:in `instance_eval' > from -e:1 はい、正確には a.rb または a.so (環境依存) ですが。 で、例えば a.rb が読み込みパスのどこかにあり、そこに R=1 とか書かれていた場合 1 が p で表示されます。 1.9.2 でもこの動作です。 現在の 1.9 だとそもそも読もうとすらしてませんね。 ---------------------------------------- Bug #4886: autoload in instance_eval doesn't work http://redmine.ruby-lang.org/issues/4886 Author: Yui NARUSE Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: ruby 1.9.3dev (2011-06-15 trunk 32096) [x86_64-freebsd8.2] autoload を instance_eval の中で使うとうまく動きません。 % ./ruby -e'instance_eval{autoload :R,"a";p R}' -e:1:in `block in
': uninitialized constant R (NameError) from -e:1:in `instance_eval' from -e:1:in `
' -- http://redmine.ruby-lang.org