[Ruby 1.9 - Bug #4886][Open] autoload in instance_eval doesn't work

Issue #4886 has been reported by Yui NARUSE.


Bug #4886: autoload in instance_eval doesn’t work

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 <main>': uninitialized constant R (NameError) from -e:1:in instance_eval’
from -e:1:in `’

Issue #4886 has been updated by Kouji T…

=begin

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
=end


Bug #4886: autoload in instance_eval doesn’t work

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 <main>': uninitialized constant R (NameError) from -e:1:in instance_eval’
from -e:1:in `’

Issue #4886 has been updated by Yui NARUSE.

Kouji T. 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

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 <main>': uninitialized constant R (NameError) from -e:1:in instance_eval’
from -e:1:in `’

Issue #4886 has been updated by Yui NARUSE.

Target version set to 1.9.3


Bug #4886: autoload in instance_eval doesn’t work

Author: Yui NARUSE
Status: Open
Priority: Normal
Assignee:
Category:
Target version: 1.9.3
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 <main>': uninitialized constant R (NameError) from -e:1:in instance_eval’
from -e:1:in `’

Issue #4886 has been updated by Motohiro KOSAKI.

Category set to core
Status changed from Open to Assigned
Assignee set to Yui NARUSE

1.9.3を狙うなら Assigned
に変更されるべき。報告の雰囲気からしてなるせさんは自分で直すつもりだと勝手にみなしてなるせさんにアサインします

Bug #4886: autoload in instance_eval doesn’t work

Author: Yui NARUSE
Status: Assigned
Priority: Normal
Assignee: Yui NARUSE
Category: core
Target version: 1.9.3
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 <main>': uninitialized constant R (NameError) from -e:1:in instance_eval’
from -e:1:in `’