(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