From: Dave Thomas Date: 2003-05-29T22:15:14+09:00 Subject: Re: [ruby-cvs] ruby, ruby/lib: * eval.c (ev_const_defined, ev_const_get), variable.c nobu.nokada@softhome.net wrote: > Hi, > > module X > autoload :XXX, "xxx.rb" > end > $ ruby -v -e 'module X;autoload :XXX, "xxx.rb";end; p XXX' > ruby 1.8.0 (2003-05-29) [i686-linux] > -e:1: uninitialized constant ::XXX (NameError) > $ ruby -v -e 'module X;autoload :XXX, "xxx.rb";end; p X::XXX' > ruby 1.8.0 (2003-05-29) [i686-linux] > 2 I have to say that this behavior is somewhat surprising. From its name, you'd expect 'autoload' to be an automatic form of 'load', and yet: x.rb: XXX = 1 [~/tmp] ruby -ve 'module X; load "x.rb";end; p X::XXX' ruby 1.8.0 (2003-05-29) [powerpc-darwin6.6] 1 [~/tmp] ruby -ve 'module X; autoload :XXX, "x.rb";end; p X::XXX' ruby 1.8.0 (2003-05-29) [powerpc-darwin6.6] -e:1: uninitialized constant X::XXX (NameError) Shouldn't they have the same semantics? Cheers Dave