On Mon, Oct 18, 2004 at 01:05:06PM -0400, Michael G Schwern <[EMAIL PROTECTED]> wrote:
> On Mon, Oct 18, 2004 at 04:43:12PM +0200, H.Merijn Brand wrote:
> > > Please consider 0.50 very soon, in which you fix 'err' calls that are an
> > > obvious mistake given defined-or functionality in blead and 5.8.x-dor:
> >
> > That would be too easy to call. here's a patch ...
>
> Thank you. Patch provisionally rejected. Here's why.
>
> By adding a new keyword dor has broken backwards compatibility. Test::More
> is doing nothing wrong by current standards. main::err() is fully declared
> before its use. There is no ambiguity.
>
> Now with dor its suddenly a keyword and code breaks at no fault to the
> programmer. Its not just a warning, its a syntax error. Upgrading from 5.8
> to 5.10 will break code. This is a problem. Its a problem every time we
> add a new keyword.
FWIW, "err" is a second-class keyword. This means that an imported function
( or even *err = sub { ... } ) will take precedence over the keyword.
Does anyone know the history of other keywords that have been added? Seems
like there haven't been any in a long while except for "lock", which *was*
done in a backward-compatible the way M. Schwern suggests for err, but IIRC
not in an extensible way that could easily be applied to other new keywords.