Thank you very much, Matz... as always, we are 
indebted to you.

> 
> In 1.4, multiple assignment
> 
>   a, b = c
> 
> invokes c.to_a internally if a is not an array.  

I guess you mean if c is not an array.

>1.6 multiple
> assignment does not call to_a, but if c has to_ary method, invoke it
> to convert c into an array.
> 

So there was some kind of problem with calling to_a... has this been
discussed on ruby-talk?

>  rescue clause for method body
> 
>   def foo
>     ...
>   rescue LoadError
>     STDERR.print "can't load\n"
>   end

Ahh! I assume (I will verify this later) that it honors the else, the =>
notation, the ensure, and the retry?

> 
> |> * syntax enhanced, e.g.
> |>
> |>   a,b = File::split "foo/bar"
> |
> |I see that this doesn't work in my 1.4.3 -- I thought this would have
> |worked long ago.
> 
> Have you tried?  I found it was not working.  So I fixed it in 1.6.

Yes, I did try this and found it broken in 1.4, but not until you had
already fixed it.  :)

> No, yield has the evaluated value of the block, which is the value
> from last evaluated expression in the block.

I see. So a block always returns a value? I will check this also.


>   def nil.foo
>     print "foo\n"
>   end
>   nil.foo

I did not know this was a new feature.

>   def 1.foo
>     print "1\n"
>   end
>   1.foo
> 
> is not possible (yet).  

Good heavens. Of course, this could be useful for Pentium Mode,
so we can make 2 + 2 = 3.9 while all other addition works fine. :)
Sorry, that is an obsolete reference to the old Pentium bug from '96
or so.

> 
> |> * regex option /p renamed to /m
> |
> |Why?
> 
> I chose /p to stand for POSIX, but I was misinformed.  /p behavior was
> not related to POSIX at all.  So I changed that to /m (multiline).

Well, I was fooled also. :)

Thanks very much, Matz...

Hal Fulton