(1) A top-level method gets appended to the Object class and made private, then? ... whereas it seems to me more natural that it should be appended to self as a singleton method. That yields the same function-like behavior, and an error message that makes more sense if it's called other than as a function. Are there other implications I'm missing? ~:>eval.rb ruby> def foo | 5 | end nil ruby> foo 5 ruby> Array.new.foo /home/slagell/bin/eval.rb:89: (eval):1: private method `foo' called for []:Array (NameError) ~:>eval.rb ruby> def self.bar | 6 | end nil ruby>bar 6 ruby> Array.new.bar /home/slagell/bin/eval.rb:89: (eval):1: undefined method `bar' for []:Array (NameError) (2) Which leads to the second observation: ver. 1.6 bails out on some errors that in 1.4.6 would be caught by a rescue clause. This isn't necessarily a bad thing (at first glance it seems to honor a distinction between what in a compiled language would be compile-time and run-time errors), but might it be possible to optionally evoke the old behavior? Mark ts wrote: > >>>>> "M" == Mark Slagell <ms / iastate.edu> writes: > > M> anyway (just to make sense to me!), and there is an open question on the > M> "top level methods" page. > > If you look at "Getting started", you'll see : > > % ruby -v > ruby 1.1b5(98/01/19) [i486-linux] > > the description is true for this version. Apparently there was a > modification made between 1.1b9 and 1.1c which make this description > false. > > The new 1.6.0 has the same behaviour than 1.1b5 > > Guy Decoux