Hi,

Thanks for the quick response!
My comments below.

On Tue, Jul 1, 2008 at 3:07 PM, Tanaka Akira <akr / fsij.org> wrote:
> In article <3454c9680807010555i7bb90075h5b0665dcff69e0a9 / mail.gmail.com>,
> I think the inconsistency is just a bug of
> ruby-1.8.5p113,
> ruby-1.8.5p115,
> ruby-1.8.5p231,
> ruby-1.8.5p231,
> ruby-1.8.6p110,
> ruby-1.8.6p111,
> ruby-1.8.6p114,
> ruby-1.8.6p230,
> ruby-1.8.7p0,
> ruby-1.8.7p17 and
> ruby-1.8.7p22.
>
> ruby-1.8.5p52 or prior,
> ruby-1.8.6p36 or prior,
> ruby-1.8.6head,
> ruby-1.8.7head,
> ruby-1.8.7head,
> ruby-1.8 and
> ruby-1.9 has consistent behavior.
>
> It seems
> ruby-1.8.5p113,
> ruby-1.8.6p110 and
> ruby-1.8.7p0
> introduces a bug.
>
> The bug is fixed at
> ruby-1.8.6head and
> ruby-1.8.7head.
>
> And the behavior is changed to exception at
> ruby-1.8.8 and
> ruby-1.9.

Ah, good. So, to double-check, MRI 1.8.6 proper behavior is considered
for the case when no exceptions thrown. I actually agree with that.
Currently, for index argument that is out of bounds, MRI silently
ignores that, so the same is probably should be done for the length
argument, for consistency's sake.

> I think ruby-1.8.8 and ruby-1.9 decision can be changed.

It would be great if all the major versions of MRI would behave
consistently here,
and not throwing the exceptions seems to be the most consistent behavior.

I'm not 100% sure about 1.9, since it had already released versions,
but definitely for 1.8.8 and further 1.8-line releases, they should
behave as 1.8.6, 1.8.7 heads.

Thanks,
  --Vladimir