Front page | perl.perl5.changes |
Postings from March 2023
[Perl/perl5] 933bd1: hard stricture enablement from "use v5.37" andup
From:
Yves Orton via perl5-changes
Date:
March 10, 2023 14:11
Subject:
[Perl/perl5] 933bd1: hard stricture enablement from "use v5.37" andup
Message ID:
Perl/perl5/push/refs/heads/zefram/remove_version_downgrade_deprecation/000000-5f99d1@github.com
Branch: refs/heads/zefram/remove_version_downgrade_deprecation
Home: https://github.com/Perl/perl5
Commit: 933bd12fdee89615d3e66d98ca038ae3d3f76704
https://github.com/Perl/perl5/commit/933bd12fdee89615d3e66d98ca038ae3d3f76704
Author: Zefram <zefram@fysh.org>
Date: 2023-03-10 (Fri, 10 Mar 2023)
Changed paths:
M lib/strict.t
M op.c
M pod/perldeprecation.pod
M pod/perlfunc.pod
Log Message:
-----------
hard stricture enablement from "use v5.37" and up
Until now, "use VERSION" has only set stricture bits that were not
already set explicitly. That's unlike the treatment of feature flags
and warnings. This changes it so that for new versions, v5.37 and above,
"use VERSION" will enable the stricture bits unconditionally, as if there
had been an explicit "use strict". The meanings of "use v5.36" and below
remain unchanged: they still won't override explicitly-set stricture
status. "use v5.37" and above counts as explicitly enabling stricture.
Commit: 73d2cfd1216769dd70696357c3dcc42e135286aa
https://github.com/Perl/perl5/commit/73d2cfd1216769dd70696357c3dcc42e135286aa
Author: Zefram <zefram@fysh.org>
Date: 2023-03-10 (Fri, 10 Mar 2023)
Changed paths:
M pod/perldeprecation.pod
M pod/perldiag.pod
M pod/perlfunc.pod
Log Message:
-----------
abandon future "use VERSION" stricture change
Documentation was threatening that "use VERSION" for versions below 5.37
would in the future change to hard stricture setting (turning off for
<5.11, on for >=5.11) that takes precedence over prior explicit stricture
declarations. Now that we've determined that we're not going to make that
change in the future, remove the mentions of it from the documentation.
We've determined not to make that change because it would be an
incompatible change that we have no need to make. The stricture setting
is already hard for versions >=5.37. All that removing soft stricture
setting would achieve is to free up the HINT_EXPLICIT_STRICT_* bits
from $^H. With the cop_features mechanism there's no longer any pressure
to free up bits there, because flags in %^H can now have performance
equivalent to $^H. Even if there were pressure on $^H bits then those
flags could have moved into %^H rather than disappearing altogether;
because they're only touched when pragmata are processed, the performance
of %^H wouldn't be an issue even without cop_features.
Commit: 8c166aaa3d1d2f9d3b945cbd848183f32fc35e5f
https://github.com/Perl/perl5/commit/8c166aaa3d1d2f9d3b945cbd848183f32fc35e5f
Author: Zefram <zefram@fysh.org>
Date: 2023-03-10 (Fri, 10 Mar 2023)
Changed paths:
M embedvar.h
M intrpvar.h
M lib/strict.t
M op.c
M pod/perldeprecation.pod
M pod/perldiag.pod
M pp_ctl.c
M scope.c
M t/comp/use.t
M t/lib/feature/implicit
Log Message:
-----------
remove deprecation of downgrading version decls
There isn't actually any problem with version declarations shadowing
each other, including in cases where the inner declaration may disable
strictures. Therefore no longer deprecate the latter.
Commit: 5f99d1f217aaa5f2fc3eed6ef443754e30d389ab
https://github.com/Perl/perl5/commit/5f99d1f217aaa5f2fc3eed6ef443754e30d389ab
Author: Zefram <zefram@fysh.org>
Date: 2023-03-10 (Fri, 10 Mar 2023)
Changed paths:
M lib/strict.pm
M lib/strict.t
M pod/perlfunc.pod
Log Message:
-----------
explicit soft stricture control via strict.pm
The concept of soft stricture control has existed since Perl 5.15.6,
which made version declarations perform it. Until now the concept hasn't
had a name, nor a supported way to perform it on its own. This change
adds adverbs to strict.pm, which support explicit manipulation of soft
stricture status.
Compare: https://github.com/Perl/perl5/compare/933bd12fdee8%5E...5f99d1f217aa
-
[Perl/perl5] 933bd1: hard stricture enablement from "use v5.37" andup
by Yves Orton via perl5-changes