Skip to content
This repository was archived by the owner on Jun 1, 2023. It is now read-only.

Latest commit

 

History

History
398 lines (250 loc) · 11 KB

perlcdelta.pod

File metadata and controls

398 lines (250 loc) · 11 KB

NAME

perlcdelta - what is new for cperl v5.28.1

DESCRIPTION

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

Core Enhancements

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]

This is a bugfix, but a major compatibility change.

Performance Enhancements

Improve newSVpvn_share

Don't downgrade twice, the is_utf8 flags can be taken from the returned hek, which does the downgrading to bytes already.

Deprecations

Undeprecate "Unescaped left brace in regex" warnings and errors

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]

Modules and Pragmata

Updated Modules and Pragmata

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() and from_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 corresponding from_(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

Documentation

Changes to Existing Documentation

perlfaq 5.20180915

  • prepend "./" to local require calls. Mojolicious ands Dancer2 are not called young anymore.

Configuration and Compilation

  • Configure: fix doubleinfbytes=undef ... #define DOUBLEINFBYTES undef is illegal Backported from 5.29.0c

Testing

  • 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.

Platform Support

Platform-Specific Notes

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.

Internal Changes

  • Fixed getcwd_sv to add abs_path when using the fast and preferred glibc call get_current_dir_name(). Until 5.28.1c get_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.

Selected Bug Fixes

  • 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. Improve newSVpvn_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 subroutine don't, but the call print 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.

Acknowledgements

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

Reporting Bugs

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.

SEE ALSO

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.