[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: RFC: Bump minimum Perl to 5.18.0 for next major release of both Auto
Re: RFC: Bump minimum Perl to 5.18.0 for next major release of both Autoconf and Automake
Thu, 18 Feb 2021 14:12:30 -0500
On 2021-02-17, Zack Weinberg <firstname.lastname@example.org> wrote:
> On Fri, Jan 29, 2021 at 5:54 PM Karl Berry <email@example.com> wrote:
>> But, I think it would be wise to give users a way to override the
>> requirement, of course with the caveat "don't blame us if it doesn't
>> work", unless there are true requirements such that nothing at all would
>> work without 5.18.0 -- which seems unlikely (and undesirable, IMHO).
>> 2013 is not that long ago, in autotime.
> This is a reasonable suggestion but Perl makes it difficult.
> What we could do is something like this instead:
> use 5.008; # absolute minimum requirement
> use if $] >= 5.016, feature => ':5.16'; # enable a number of
> desirable features from newer perls
> + documentation that we're only _testing_ with the newer perls.
FWIW, I just checked and I do currently build an Autotest testsuite
on a system where "perl" is perl 5.8.3, which works on autoconf-2.69.
So I suppose if Autoconf required a newer version, and I required a
newer version of Autoconf, then this is a problem. But due to the
nature of Autoconf this is exclusively my problem and does not impact
downstream users at all. So I'd just solve the problem (perhaps by
running autom4te on an updated setup) and wouldn't be bothered if
things are broken for a reason.
Only testing with new(ish) perl versions is not at all a problem IMO.
Interoperability is always "best effort": nobody can test every possible
system configuration. As long as we don't claim to support systems
that are never ever tested, people who care about particular systems
just have to speak up when things stop working.
> I did some more research on perl's version history (notes at end) and
> I think the right thresholds are 5.10 for absolute minimum and 5.16
> for 'we aren't going to test with anything older than this'. 5.10 is
> the oldest perl that shipped Digest::SHA, which I have a specific need
> for in autom4te;
... on the topic of of reasons to break things, the perl 5.8 installation
in question does seem to have Digest::SHA available to it. So for this
dependency I would suggest Autoconf should be following the Autoconf
philosophy and "you must have the Digest::SHA perl module" is different
from "you must have perl version 5.10 or newer".
> it is also the oldest perl to support `state` variables and the `//`
> operator, both of which could be quite useful.
However these new syntactic constructs are obviously unavailable.
I think "//" is not a great reason (by itself) to break compatibility
but "state" could be.