>>>>> "J" == John Kaurin <jkaurin / home.com> writes:

J> <     alias __eval _eval
J> <     alias __invoke _invoke
J> <     private :__eval
J> <     private :__invoke

 What you see is the interaction between tk.rb (more precisely
 tkencoding.rb) and tk.rb which define the same alias.

 You see it because, for your configuration this test is true

   if /^8\.[1-9]/ =~ Tk::TCL_VERSION && !Tk::JAPANIZED_TK
   end

 Another example

pigeon% cat aa.rb
class AA < Array
   alias __size size
   def size
      __size
   end
end
pigeon% 

pigeon% cat b.rb
#!/usr/bin/ruby
require 'aa'
a = AA.new
p a.size
# reload aa.rb just to make an infinite loop
load 'aa.rb'
p a.size
pigeon% 

pigeon% b.rb
0
./aa.rb:4:in `size': stack level too deep (SystemStackError)
        from ./aa.rb:4:in `size'
        from ./aa.rb:4:in `size'
        from ./aa.rb:4:in `size'
        from ./aa.rb:4:in `size'
        from ./aa.rb:4:in `size'
        from ./aa.rb:4:in `size'
        from ./aa.rb:4:in `size'
        from ./aa.rb:4:in `size'
         ... 4655 levels...
        from ./aa.rb:4:in `size'
        from ./aa.rb:4:in `size'
        from ./aa.rb:4:in `size'
        from ./b.rb:7
pigeon% 



Guy Decoux