Trouble on "requrie 'tk'"

$B1J0f!wCNG=!%6e9)Bg$G$9!%(B

rev.31169 $B$NJQ99$G!$(Btk
$B$,<!$N$h$&$J%(%i!<$r@8$8$k$h$&$K$J$j$^$7$?!%(B

$ ./ruby19 -e “p RUBY_REVISION; require ‘tk’”
31169
/usr/local/lib/ruby/1.9.1/tk/label.rb:6:in <top (required)>': uninitialized constant TkWindow (NameError) from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:42:inrequire’
from
/usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:42:in
require' from /usr/local/lib/ruby/1.9.1/tk/button.rb:5:in<top
(required)>’
from /usr/local/lib/ruby/1.9.1/tk/autoload.rb:373:in
const_get' from /usr/local/lib/ruby/1.9.1/tk/autoload.rb:373:intopobj_defined?’
from /usr/local/lib/ruby/1.9.1/tk/autoload.rb:417:in
replace_topobj' from /usr/local/lib/ruby/1.9.1/tk/autoload.rb:658:inblock in _replace_toplevel_aliases’
from /usr/local/lib/ruby/1.9.1/tk/autoload.rb:648:in
each_key' from /usr/local/lib/ruby/1.9.1/tk/autoload.rb:648:in_replace_toplevel_aliases’
from /usr/local/lib/ruby/1.9.1/tk/autoload.rb:352:in
default_widget_set=' from /usr/local/lib/ruby/1.9.1/tk/autoload.rb:738:in<top (required)>’
from
/usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:42:in
require' from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:42:inrequire’
from /usr/local/lib/ruby/1.9.1/tk.rb:10:in <top (required)>' from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:42:inrequire’
from
/usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:42:in
require' from -e:1:in

$B$3$l$O$I$N$h$&$KBP1~$9$Y$-$G$7$g$&$+!%(B
$B;EMMJQ99$H$7$FBP1~$7$J$1$l$P$J$i$J$$$H$9$k$H!$(B
$BHs>o$KBg5,LO$JJQ99$,I,MW$K$J$j$=$&$G:$$C$F$$$^$9!%(B

$B:G?7%j%S%8%g%s$@$H$I$&$G$7$g$&!#(B
ruby 1.9.3dev (2011-04-01 trunk 31229) [x86_64-darwin10.6.0]
$B$,:G?7$J$h$&$G$9!#(B

2011/4/2 Hidetoshi NAGAI [email protected]:

$B1J0f!wCNG=!%6e9)Bg$G$9!%(B

From: “Shota F. (sora_h)” [email protected]
Subject: [ruby-dev:43379] Re: trouble on “requrie ‘tk’”
Date: Sat, 2 Apr 2011 15:50:20 +0900
Message-ID:
[email protected]

$B:G?7%j%S%8%g%s$@$H$I$&$G$7$g$&!#(B
ruby 1.9.3dev (2011-04-01 trunk 31229) [x86_64-darwin10.6.0]
$B$,:G?7$J$h$&$G$9!#(B

$B$b$A$m$s(B rev.31229 $B$,(B NG $B$G$"$k$3$H$O%A%'%C%/:Q$_$G$9!%(B
$B$$$D$+$i%@%a$K$J$C$?$+$rDI$C$?7k2L$H$7$F!$(Brev.31169 $B$N(B

Thu Mar 24 23:05:42 2011 Nobuyoshi N. [email protected]

    * variable.c (rb_const_defined_0): fix autoloading base.
      [ruby-core:35509]

$B$,860x$G$"$m$&$H$$$&OC$G$9!%(B

autoload $B$N!V(Bfix$B!W$H$$$&$3$H$K$J$C$F$$$^$9$,!$(B
$B$3$l$K$h$C$F=>Mh$H$NHs8_49$,@8$8$F$$$k$h$&$K8+$($^$9!%(B
$B$3$NHs8_49$,0U?^$;$L$b$N$J$N$+!$;EMMJQ99$J$N$+!$(B
$B$O$?$^$?=>Mh$N>uBV$,0[>o$@$C$?$N$+$,H=CG$G$-$:$K$$$^$9!%(B

HEAD $B$N>uBV$3$=$,@5$7$$$b$N$G$"$k$H$9$k$J$i!$(B
$B5lMh$N;EMM$K0MB8$7$F$$$?%9%/%j%W%H$O$I$N$h$&$K=$@5$9$Y$-$+$r(B
$B;XFn$$$?$@$1$k$H=u$+$j$^$9!%(B> $B$J$+$@$5$s(B

$B@>;3OB9-$G$9!#(B

At Sat, 2 Apr 2011 21:44:59 +0900,
Hidetoshi NAGAI wrote:

autoload $B$N!V(Bfix$B!W$H$$$&$3$H$K$J$C$F$$$^$9$,!$(B
$B$3$l$K$h$C$F=>Mh$H$NHs8_49$,@8$8$F$$$k$h$&$K8+$($^$9!%(B
$B$3$NHs8_49$,0U?^$;$L$b$N$J$N$+!$;EMMJQ99$J$N$+!$(B
$B$O$?$^$?=>Mh$N>uBV$,0[>o$@$C$?$N$+$,H=CG$G$-$:$K$$$^$9!%(B

$B$I$&$$$&%3!<%I$G$I$&$$$&5sF0$r$7$F$$$?$N$,(B
$B$I$&$$$&5sF0$KJQ$o$C$?$H$$$&OC$J$N$G$7$g$&$+(B?

$B1J0f!wCNG=!%6e9)Bg$G$9!%(B

From: Kazuhiro NISHIYAMA [email protected]
Subject: [ruby-dev:43381] Re: trouble on “requrie ‘tk’”
Date: Sun, 3 Apr 2011 21:06:55 +0900
Message-ID: [email protected]

$B$I$&$$$&%3!<%I$G$I$&$$$&5sF0$r$7$F$$$?$N$,(B
$B$I$&$$$&5sF0$KJQ$o$C$?$H$$$&OC$J$N$G$7$g$&$+(B?

$B>pJsIT==J,$G$4$a$s$J$5$$!%LdBj$H$J$C$?5sF0$rD4::$7$^$7$?!%(B
$B>/$7D9$/$J$j$^$9$,8fMF<O$/$@$5$$!%(B

$B$^$:$O<!$N%5%s%W%k$r8+$F$/$@$5$$!%(B

module A
module X; end
autoload :Hoge, “./x-hoge.rb”
end
module B
include A
end
class Object
include A
end

p [Object, Object.const_defined?(:X), Object.const_defined?(:Hoge),
Object.const_defined?(:Fuga)]
p [B, B.const_defined?(:X), B.const_defined?(:Hoge), B.const_defined?(:Fuga)]

puts ‘> call A.autoload(:Fuga, “./x-fuga.rb”)’
A.autoload(:Fuga, “./x-fuga.rb”)

p [Object, Object.const_defined?(:X), Object.const_defined?(:Hoge),
Object.const_defined?(:Fuga)]
p [B, B.const_defined?(:X), B.const_defined?(:Hoge), B.const_defined?(:Fuga)]

puts ‘> access A::Hoge’
A::Hoge

p [Object, Object.const_defined?(:X), Object.const_defined?(:Hoge),
Object.const_defined?(:Fuga)]
p [B, B.const_defined?(:X), B.const_defined?(:Hoge), B.const_defined?(:Fuga)]

#module B

class Fuga

p ‘*** class Fuga’

end

#end

puts “A.autoload?(:Fuga) => #{A.autoload?(:Fuga).inspect}”
puts “B.autoload?(:Fuga) => #{B.autoload?(:Fuga).inspect}”
puts ‘> access B::Fuga’
B::Fuga
puts “A.autoload?(:Fuga) => #{A.autoload?(:Fuga).inspect}”
puts “B.autoload?(:Fuga) => #{B.autoload?(:Fuga).inspect}”
p [Object, Object.const_defined?(:X), Object.const_defined?(:Hoge),
Object.const_defined?(:Fuga)]
p [B, B.const_defined?(:X), B.const_defined?(:Hoge), B.const_defined?(:Fuga)]

$B$3$l$r<B9T$7$?$H$-$N=PNO$N0c$$$rHf3S$7$^$9!%(B
$B$?$@$7!$(B./x-hoge.rb $B$NCf?H$O(B “module A::Hoge; puts ‘***
x-hoge.rb’; end”$B!$(B
./x-fuga.rb $B$NCf?H$O(B “module A::Fuga; puts ‘*** x-fuga.rb’; end”
$B$H$7$^$9!%(B

– ruby 1.8.7 p.174 -------------------------------------
$ ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux]
$ ruby ./x-autoload.rb
[Object, true, false, false]
[B, false, false, false]

call A.autoload(:Fuga, “./x-fuga.rb”)
[Object, true, false, false]
[B, false, false, false]
access A::Hoge
*** load x-hoge.rb
[Object, true, true, false]
[B, false, false, false]
A.autoload?(:Fuga) => “./x-fuga.rb”
B.autoload?(:Fuga) => nil
access B::Fuga
*** load x-fuga.rb
A.autoload?(:Fuga) => nil
B.autoload?(:Fuga) => nil
[Object, true, true, true]
[B, false, false, false]


– ruby 1.9 rev.31168 ------------------------------------
$ ./ruby19 -v
ruby 1.9.3dev (2011-03-24 trunk 31168) [x86_64-linux]
$ ./ruby19 ./x-autoload.rb
[Object, true, false, false]
[B, true, false, false]

call A.autoload(:Fuga, “./x-fuga.rb”)
[Object, true, false, false]
[B, true, false, false]
access A::Hoge
*** load x-hoge.rb
[Object, true, true, false]
[B, true, true, false]
A.autoload?(:Fuga) => “./x-fuga.rb”
B.autoload?(:Fuga) => nil
access B::Fuga
*** load x-fuga.rb
A.autoload?(:Fuga) => nil
B.autoload?(:Fuga) => nil
[Object, true, true, true]
[B, true, true, true]


– ruby 1.9 rev.31169 ------------------------------------
$ ruby19 -v
ruby 1.9.3dev (2011-03-24 trunk 31169) [x86_64-linux]
$ ruby19 ./x-autoload.rb
[Object, true, true, false]
[B, true, true, false]

call A.autoload(:Fuga, “./x-fuga.rb”)
[Object, true, true, true]
[B, true, true, true]
access A::Hoge
*** load x-hoge.rb
[Object, true, true, true]
[B, true, true, true]
A.autoload?(:Fuga) => “./x-fuga.rb”
B.autoload?(:Fuga) => nil
access B::Fuga
*** load x-fuga.rb
A.autoload?(:Fuga) => nil
B.autoload?(:Fuga) => nil
[Object, true, true, true]
[B, true, true, true]


$B$3$l$i$N7k2L$O!$(Bmodule B $B$r(B class B $B$H$7$F$bF1$8$G$9!%(B

1.8.7 $B$G$O(B Object
$B%/%i%9$HB>$N%/%i%9(B/$B%b%8%e!<%k$H$G5sF0$,0c$C$F$$$^$9!%(B
Object $B%/%i%9$G$O!$(Binclude $B$7$?%b%8%e!<%k$NDj?t$,(B
$BDj5A$5$l$F$$$k$b$N$H$7$F07$o$l$F$$$k$N$KBP$7!$(B
$BB>$N%/%i%9(B/$B%b%8%e!<%k(B (module B) $B$+$i$O8+$($F$$$^$;$s!%(B
autoload $BDj5A$OL$Dj5A07$$$G!$(BB.autoload?(:Fuga) $B$b(B nil
$B$rJV$7$^$9$,!$(B
B::Fuga $B$N%"%/%;%9$O2DG=$G(B autoload $B$,F/$-$^$9!%(B
autoload $B8e$N(B B.const_defined?(:Fuga) $B$O(B false $B$N$^$^$G$9!%(B

ruby 1.9 $B$G$O(B Object
$B%/%i%9$HB>$N%/%i%9(B/$B%b%8%e!<%k$H$G$N5sF0$O(B
$BE}0l$5$l$F$$$^$9$,!$(Bautoload $BDj5A$5$l$?Dj?t$KBP$7$F$N5sF0$O!$(B
ruby 1.9 rev.31168 (ruby1.8$B$r4^$`(B)
$B$^$G$OL$Dj5A07$$$G$"$k$N$KBP$7!$(B
ruby 1.9 rev.31169 $B$+$i(B ($B>/$J$/$H$b(B rev.31229 $B$b(B)
$B$ODj5A07$$$G$9!%(B
B.autoload?(:Fuga) $B$O$$$:$l$N>l9g$b(B nil $B$rJV$7$^$9!%(B
autoload $B8e$N(B const_defind? $B$O$$$:$l$N>l9g$b(B true $B$G$9!%(B

$B7k2L$H$7$F(B ruby 1.9 rev.31169 $B0J9_$G$O!$(B
$B$“$kDj?t$,FH<+$KDj5A$5$l$?$b$N$+(B autoload $BM=Dj$N$b$N$+$r(B
module B $B$d(B Object $B%/%i%9$+$iH=CG$9$k$3$H$,$G$-$J$/$J$j$^$7$?!%(B
$B$D$^$j!$%5%s%W%k%=!<%9$NCf$[$I$G%3%a%s%H%”%&%H$7$F$$$k$h$&$J(B
$B%/%i%9Dj5A$,$J$5$l$F$$$?>l9g$H$N<1JL$G$9!%(B
$B$3$&$7$?Dj5A$O2DG=$G$9$7!$$=$N>l9g$O$b$A$m$s(B
B::Fuga $B$G(B A.autoload() $BDj5A$7$?(B autoload
$B$,F/$/$3$H$O$"$j$^$;$s!%(B

Ruby/Tk $B$G$O!$(BTkButton $B$J$I$G%"%/%;%9$5$l$?>l9g$KMQ$$$k(B
$B%G%U%)%k%H$N%&%#%8%'%C%H%;%C%H$r!$%9%?%s%@!<%I(B Tk
$B$N$b$N$K$9$k$+!$(B
Ttk $B3HD%$N$b$N$K$9$k$+$r@ZBX$(2DG=$H$9$k;E3]$1$rAH$9~$s$G$$$^$9!%(B
$B$9$Y$F$rFI$9~$s$G$7$^$&$H%a%b%jEy$NL5BL$,$H$s$G$b$J$$$3$H$K$J$k$N$G!$(B
$B%f!<%6$,FH<+$KDj5A$7$?$b$N$+!$(Bautoload $B:Q$
$N$b$N$+!$(B
autoload $BA0$N$b$N$+$rH=CG$7$J$,$i@ZBX$(@)8f$r9T$&$h$&$K$7$F$$$^$9!%(B
rev.31169
$B0J9
$N$h$&$KH=CG$N=Q$,$J$/$J$k$H!$$3$&$7$?<BAu$,$G$-$J$/$J$j$^$9!%(B
$B>/$J$/$H$b:#$O!$(Brev.31169
$B0J9_$NF0:n$KBP1~$9$kBeBX:v$r;W$$IU$$$F$$$^$;$s!%(B

$B!V(Bautoload $B2DG=$G$"$k$N$G(B const_defined? $B$b(B true
$B$K!W$H$$$&9M$(J}$O(B
$BM}2r$G$-$J$/$b$J$$$N$G$9$,!$$=$N>l9g$O>e5-$N$h$&$JH=CG$r2DG=$H$9$k<jCJ$r(B
$BMQ0U$7$F$$$?$@$1$k$H=u$+$j$^$9!%(B