develooper Front page | perl.perl5.porters | Postings from May 2022

PSC #066 2022-05-20

Thread Next
From:
Paul "LeoNerd" Evans
Date:
May 20, 2022 18:45
Subject:
PSC #066 2022-05-20
Message ID:
20220520194515.5a232f77@shy.leonerd.org.uk
PSC #066 2022-05-20

Present: Neil, Paul, Rik

## Perl 5.36 Blockers

Just one remains: 19738
  https://github.com/Perl/perl5/issues/19738

In summary: This appears to be something of a quantum entanglement of
behaviours between JSON encoders and decoders, relating to how they
encode boolean values. While it's not technically a bug in perl itself,
it nevertheless results in a coïncident change of behaviour of
important CPAN modules, including one shipped by core perl itself, so
may give the appearance of being "perl 5.36's fault". We therefore want
to consider it a release-blocking issue anyway, and would prefer to
have it fixed before we make the 5.36.0 release.

The CPAN module `Cpanel::JSON::XS` expects that `JSON::PP` will use the
`true` and `false` notation for core booleans on any perl version
5.35.10 or later (by testing the perl version itself, rather than by
inspecting the $VERSION variable of JSON::PP). The latest CPAN release
of `JSON::PP` (version 4.08) does this, but the version shipped with
blead perl (4.07) does not. There are two consequences of these facts:

  * JSON::PP version 4.08 will unconditionally use `true`/`false`
    notation to encode core booleans on supported perl versions. This
    may surprise users who unwittingly update their module.

  * Cpanel::JSON::XS fails its install-time tests on 5.36.0-RC0 with
    its JSON::PP 4.07. This is also noted on an issue directly on that
    module:
      https://github.com/rurban/Cpanel-JSON-XS/issues/194

We don't want to suggest fixing this by updating blead to JSON::PP
4.08, because its unconditional use of booleans may surprise users, and
making such a change in the code freeze, and this close to 5.36, would
be a bad, bad idea. A better fix is to address these two issues
independently:

  * JSON::PP should not use this notation unconditionally. Either it
    should add an option (default off), or if that is not possible in
    time for 5.36 release, just revert the current boolean changes. This
    will result in a 4.09 we can sync to blead.

  * Cpanel::JSON::XS's tests should be updated to be dependent on the
    JSON::PP options or version to decide what boolean encoding to
    expect, rather than simply on the perl version.

Rik has (or will soon have) sent issue comments and emails about these
two parts.


## Reverting `no feature 'indirect'` from `use v5.35`

Previously we had discussed reverting the `no feature 'indirect'` part
of the :5.35 feature bundle, along similar reasons as the reversion of
bareword_filehandles. This was raised on p5p@. Subsequent discussion
has given us extra confidence that this particular (anti-)feature seems
to be working as advertised, so we no longer feel it necessary to
revert it as earlier planned.


## Neil's Perl 7 Statement

Neil has drafted an updated statement on the overall direction of that
which will be called "Perl 7". This will be posted to p5p@ for further
discussion ahead of a wider plan to publish it along with the 5.36
release.

-- 
Paul "LeoNerd" Evans

leonerd@leonerd.org.uk      |  https://metacpan.org/author/PEVANS
http://www.leonerd.org.uk/  |  https://www.tindie.com/stores/leonerd/

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