perlcdelta - what is new for cperl v5.28.1
This document describes the differences between the cperl 5.28.0 and the cperl 5.28.1 release.
If you are upgrading from an earlier release such as v5.26.0c, first read the perl526*cdelta documentation, which describes differences between v5.26.0c and v5.26.3c
The second argument to bless, the new classname, is now checked to be a valid package name identifier when strict names is in effect, and the name is now normalized. [cperl #376]
This is a bugfix, but a major compatibility change.
-
Don't downgrade twice, the is_utf8 flags can be taken from the returned hek, which does the downgrading to bytes already.
In cperl only the following special unicode groups within regexes are reserved:
Name: \N{
Property: \p{ \P{
Break: \b{ \B{
Code: \x{ \o{
Group: \g{
All other /{}/
sequences are allowed in cperl and not deprecated anymore. There's no need to quote the literal \{
and \}
, only if it's ambiguous and can be mixed up with those reserved unicode groups.
automake and more widespread utils does not need to be plagued by spurious "Unescaped left brace in regex" warnings, when they dont need to be quoted. We undeprecated those new warnings and errors, there's nothing more to reserve (yet). [cperl #362]
- Archive::Tar 2.32
-
Fix absolute path handling on VMS
- bignum 0.51c
-
Better way to catch warnings (CPAN RT #126900).
- CPAN 2.21_01
-
Update to 2.21 upstream with our cperl fixes. Some of our fixes were accepted upstream.
Fixed critical rmtree bug with a symlink crossing mountpoints previous directory ~/.cpan/build changed before entering tmp-32186, expected dev=47 ino=244719549, actual dev=47 ino=33303, aborting at CPAN/Distribution.pm line 591
Add many upstream tests.
Add the distroprefs from CPAN and cperl. Install them by copying them to your ~/.cpan/prefs/ or see https://github.com./rurban/distroprefs/.
- Cwd 4.75c
-
Fixed long pathnames test for getcwd() on older systems, like debian-7.11 i386, which still returns ENAMETOOLONG on large enough buffers.
Fix the HAS_GET_CURRENT_DIR_NAME check, and the is_ENAMETOOLONG macro.
For getcwd with
get_current_dir_name()
- i.e. fastcwd - add abs_path. See also http://perl11.org/blog/fastcwd.html - Data::Dumper 2.172
-
Restore deparsing support in the XS dumper, on Perl 5.18 and earlier.
Fix bug when dumping globs with quoting (which now happens for all Unicode glob names)
Behavior change:
$dumper-
Useqq(undef)> is now treated as setting the "useqq" option, not getting it (and similarly for other options) [perl #113090]Quote glob names better; notably, Unicode globs are now handled correctly. [perl #119831]
- Devel::PPPort 3.43_04
-
Fix test with Visual Studio (space in paths) by quoting $0. Note: This fix is not in the public CPAN release.
- DynaLoader 2.09c
-
dl_load_file: set NULL xs (bootstrap). When we find the bootname via dl_find_symbol early, we still need to set xs from dl_install_xsub(). Coverity CID #165325
- ExtUtils::Manifest 1.71
-
Only pod formatting
- Errno 1.29_01
-
Protect from including some avx512 intrinsics directly on mingw.
- File::Path 3.16_02c
-
Fix symlink abort crossing mountpoint with CPAN::Distribution previous directory ~/.cpan/build changed before entering tmp-32186, expected dev=47 ino=244719549, actual dev=47 ino=33303, aborting at CPAN/Distribution.pm line 591
Fix method of generating names for dummy users and groups during testing (i.e. under docker) [cpan #121967].
- Math::BigInt 1.999814
-
Add
to_base()
andfrom_base()
to Math::BigInt and corresponding library methods_to_base()
and_from_base()
to Math::BigInt::Lib. This was inspired by CPAN RT #122681.In the documentation for each of the
to_(bin|hex|oct|bytes)
methods, add a reference to the correspondingfrom_(bin|hex|oct|bytes)
method. - Math::BigInt::FastCalc 0.5008
-
No code nor test changes.
- perlfaq 5.20180915
- Storable 3.12_02
-
Enable >2GB AvFILL check on store_hook (64bit) Too many references returned by STORABLE_freeze. It wrapped around previously. Fixes Coverity CID #187854. Move __Storable__.pm into Storable_pm.PL [cperl #374]
- version 0.9924_02
-
more test fixes for 5.6
Document the perl4-style single-quote
'
behaviour in identifiers. See also http://perl11.org/blog/quote-identifiers.html
perlfaq 5.20180915
prepend "./" to local require calls. Mojolicious ands Dancer2 are not called young anymore.
Configure: fix doubleinfbytes=undef ... #define DOUBLEINFBYTES undef is illegal Backported from 5.29.0c
Skip
==\d+==WARNING: LeakSanitizer is disabled in forked process
STDERR messages in some tests.Fixed t/op/chdir.t when pwd is a symlink and thus
abs_path
returns the real path. Also fix the inclusion of test.pl and some more minitests.The early requirement of test.pl, when not in t/ would lead go a
fresh_perl
tempfile of t/tmpXXXX, which is then later when we chdir'd into t/ illegal.Check for dtrace locking everywhere. Not only on darwin. Mostly also on solaris, but also on oraclelinux and Windows 10 now.
- mingw
-
- Fixed Errno from processing some protected intrinsics directly
-
which fail with #error "Never use <avx512vpopcntdqintrin.h>, <avx512ifmaintrin.h> directly; include <immintrin.h> instead.", #error "Never use <fmaintrin.h> directly; include <immintrin.h> instead.", #error "Never use <xsavesintrin.h> directly; include <x86intrin.h> instead."
- Undefine i_dlfcn
-
on mingw and new architectures. See https://sourceforge.net/p/mingw-w64/bugs/25/
- MSVC 11.0
-
Enable HAS_BOOL, fixes xkeycheck.h redefinition errors.
Fixed
getcwd_sv
to addabs_path
when using the fast and preferred glibc callget_current_dir_name()
. Until 5.28.1cget_current_dir_name()
was never used. This affected several CPAN modules: DBD::File, CPAN::Distribution, File::Path.Fix Unicode methods with -> syntax: keep WAS_UTF8 flag.
See [cperl #377] A direct method call with
::
stays utf8, but a method call with->
stripped the utf8 flag. In cperl this lead to an invalid identifier error under strict names.Føø::Bær::nèw() keeps the METHOP/ENTERSUB utf8 flag in the GV SVOP. But with Føø::Bær->nèw() the nèw is stored interim as shared pvn, which strips off the utf8 to be stored in the strtab - newSVpvn_share: bytes_from_utf8 &is_utf8 - which leads to the conversion to the entersub gv without the utf8 flag. The WAS_UTF8 flag is not stored.
Fix
valid_ident()
for 128-255 chars not to use isIDFIRST_A nor isIDCONT_A, _A does not match them. Fixes t/uni/method.t for chars like oslash. See [cperl #377]Fix
newSVpvn_share
to store the HEK_WASUTF8 flag if downgraded. ImprovenewSVpvn_share
to downgrade only once, not twice.A shared string and a GV with chars in the range 128-255 are downgraded to bytes without the UTF8 flag. Store at least the HEK_WASUTF8 flag then.
Check bless name under use strict names.
The second argument to bless, the new classname, is now checked to be a valid package name identifier when strict names is in effect, and the name is now normalized. [cperl #376]
Fix cperl 5.28.0c regression disallowing calling subnames with a quote in a package qualifier position. [cperl #371]
This is now valid again:
sub don't { 0 } print don't;
With v5.28.0c only the declaration
sub don't { 0 }
was valid, it accepted the subroutinedon't
, but the callprint don't;
was invalid, it was looking for a second single-quote string delimiter. Note that in cperl since 5.28c'
is no perl4-style package seperator anymore.
cperl 5.28.1 represents approximately 5 weeks of development since cperl 5.28.0c and contains approximately 40,000 lines of changes across 940 files from 2 authors.
Excluding auto-generated files, documentation and release tools, there were approximately 5,300 lines of changes to 110 .pm, .t, .c and .h files.
The following people are known to have contributed the improvements that became cperl 5.28.1:
Reini Urban, Andreas König.
Many of the changes included in this version originated in the CPAN modules included in Perl's core. We're grateful to the entire CPAN community for helping Perl to flourish.
For a more complete list of all of Perl's historical contributors, please see the AUTHORS file in the Perl source distribution.
Generated with:
cperl Porting/acknowledgements.pl cperl-5.28.0..HEAD -c
If you find what you think is a bug, you might check the articles recently posted to the comp.lang.perl.misc newsgroup and the perl bug database at https://rt.perl.org/ . There may also be information at http://www.perl.org/ , the Perl Home Page.
If you believe you have an unreported bug, please run the cperlbug program included with your release. Be sure to trim your bug down to a tiny but sufficient test case. Your bug report, along with the output of perl -V
, will be sent off to [email protected] to be analysed by the Perl porting team.
If you think it's a cperl specific bug or trust the cperl developers more please file an issue at https://github.com./perl11/cperl/issues.
If the bug you are reporting has security implications which make it inappropriate to send to a publicly archived mailing list, then see "SECURITY VULNERABILITY CONTACT INFORMATION" in perlsec For details of how to report the issue.
The Changes file for an explanation of how to view exhaustive details on what changed.
The INSTALL file for how to build Perl.
The README file for general stuff.
The Artistic and Copying files for copyright information.