develooper Front page | perl.perl5.porters | Postings from March 2023

Re: Deprecation doesn't mean we have two release cycles beforethings break.

Thread Previous | Thread Next
From:
Dave Mitchell
Date:
March 31, 2023 12:07
Subject:
Re: Deprecation doesn't mean we have two release cycles beforethings break.
Message ID:
ZCbM/E65oJPii8WC@iabyn.com
On Fri, Mar 31, 2023 at 11:28:29AM +0200, demerphq wrote:
> On Fri, 31 Mar 2023 at 01:24, Tony Cook <tony@develop-help.com> wrote:
> > Another option would be to completely undeprecate ' in symbols, and
> > make it a default on feature like indirect or multidimensional, and
> > disable it for 5.40, since I don't think some of the problem CPAN
> > distributions will ever be updated by their authors.
> >
> 
> Ah, that does make some sense, would it also work ok with smartmatch you
> think?

I think smartmatch is is different.

Removing foo'bar is is kind of a style decision. There's really no good
reason why an old script written in perl 4 style shouldn't continue to
run, and breaking it just for the sake of breaking it seems wrong.
So putting a version guard on foo'bar removal seems like a good idea to
me.

On the other hand, we think smartmatch is broken, and we want to
discourage its use so that we can eventually introduce a 'fixed'
smartmatch/given etc which is not backwards compatible. To avoid code
silently breaking when we change smartmatch's behaviour, having a
deprecated/removed gap between the old and new behaviour sounds like a
good idea.

But another approach would be that we could support *two* smartmatch
behaviours in core simultaneously: if you have 'use v5.40' or 'use
feature "smartmatch2"' say, then you get the new behaviour.  This would
avoid breaking the apparently large amount of code out there which already
uses this retrospectively experimental feature. So it's better for users,
at the price that perl core has to support both options.

I know I was the one who originally pushed for smartmatch to have a
deprecation warning, but I'm not so sure now.

But all of this strengthens my belief that perl 5.38.0 should not emit
deprecation warnings for smartmatch and foo'bar, until we have a more firm
consensus on the way forward.

-- 
No man treats a motor car as foolishly as he treats another human being.
When the car will not go, he does not attribute its annoying behaviour to
sin, he does not say, You are a wicked motorcar, and I shall not give you
any more petrol until you go. He attempts to find out what is wrong and
set it right.
    -- Bertrand Russell,
       Has Religion Made Useful Contributions to Civilization?

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About