develooper Front page | perl.perl5.porters | Postings from June 2019

Re: [perl #134156] use feature ':all'

Thread Previous
From:
Diab Jerius
Date:
June 5, 2019 14:55
Subject:
Re: [perl #134156] use feature ':all'
Message ID:
CADpyd5Bz35Vnnn2fp3iENYyJSN1FX0NDa47XwP23G45XCSO+MQ@mail.gmail.com
On Mon, Jun 3, 2019 at 4:52 AM Dave Mitchell via RT
<perlbug-followup@perl.org> wrote:
>
> On Fri, May 31, 2019 at 11:55:15AM -0700, Diab Jerius (via RT) wrote:
> > The documentation describes its use only in the negative, e.g. when explaining
> > how
> >
> >   use v5.10.0;
> >
> > works via
> >
> >   no feature ':all';
> >   use feature ':5.10';
> >
> > Is there a reason that one should not use ':all' positively? As in
> >
> >   use feature ':all';
>
> It defeats the whole purpose of feature.pm - which is to allow us to
> add new features to perl which are not backwards compatible.
>
> If people start adding "use feature ':all'" to their programs, then their
> programs may break on future releases of perl. If lots of people start
> adding it, then we'll be told that we can't add a new feature to perl
> because it would break too many existing modules that people reply on.  So
> we'd have to introduce "reluctant" features which aren't enabled by
> ':all'; then we'd have to add ':really_all', then that would be abused,
> and so the cycle continues.


Thanks.  I didn't appreciate that perspective.

While the documentation doesn't explicitly indicate that ':all' may be
used on import, it is relatively uncommon to come across an export tag
that shouldn't be used on import, so for those who don't grasp the
intricacies of its use (i.e., apparently me) it creates a bit of a
grey area.

Perhaps it might help to put in an explicit statement indicating that
':all' should never be used to turn features on, and additionally, to
have import() complain if it is used in that context?


Diab

Thread Previous


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