masak (>):
> <masak> rakudo: say (my @a).end
> <p6eval> rakudo 142d22: OUTPUT«-1␤»
> <masak> S32 says: "Returns the final subscript of the first dimension;
> for a one-dimensional array this simply the index of the final
> element."
> * masak submits rakudobug
> <masak> huh. I didn't even see the missing "is" in that second
> sentence before :)
> <jnthn> masak: huh. If there's nothing in there, what do you want it
> to return?
> <jnthn> 0 would be wrong because that'd imply there's one thing in
> there.
> <masak> jnthn: I don't know. but it's not to spec right now.
> <masak> jnthn: maybe Failure.
> <lue> but -1 could be in a list as well.
> <masak> lue: if you say that, you've misunderstood the purpose of .end
> (just like I did first time I saw it)
> <jnthn> masak: I think you maybe need to explain it then. :)
> <jnthn> masak: 'cus I suspect I'm missing something also...
> <masak> well, first off, let's agree on what S32 actually *says*.
> <masak> it says "returns the final *subscript*.
> <masak> an empty array has no final subscript.
> <masak> hence -1 is *wrong*.
> <jnthn> Hm
> <jnthn> True
> <jnthn> It may be a handy sentinel if you planeed to do some math on
> it.
> <masak> if S32 said "returns less than the length of the array", -1
> would have been fine.
> <jnthn> But yeah, I can see flagging it up as a Failure is probably
> better.
> <masak> but it doesn't.
> <masak> so it isn't.
> <masak> this is why we have a spec, for precision and clarity.
> <masak> in this case, it's precise and clear. hence, bug.
> <masak> if you want -1, please use C<+...@a - 1> :)
> <jnthn> fairy nuff.

Spec has now been changed to explicitly mention -1, which means Rakudo's 
behavior is right. 
Rejecting ticket.

Reply via email to