perldelta - what is new for perl v5.43.9
This document describes differences between the 5.43.8 release and the 5.43.9 release.
If you are upgrading from an earlier release such as 5.43.7, first read perl5438delta, which describes differences between 5.43.7 and 5.43.8.
Experimentally, the /xx pattern modifier can allow bracketed character classes (e.g., [a-zA-Z] to extend across multiple lines and to contain comments, and to warn you of potential cases where a portion of a pattern inadvertently has been treated as a comment instead of what you intended. This behavior is enabled by use feature "enhanced_xx". See "/x and /xx" in perlre.
Populating a hash from a list of key/value pairs, when the keys are constant string operands known at compile time, is commonly now faster. [GH #24228]
B has been upgraded from version 1.91 to 1.92.
Compress::Raw::Bzip2 has been upgraded from version 2.217 to 2.218.
Compress::Raw::Zlib has been upgraded from version 2.218 to 2.222.
CPAN::Meta has been upgraded from version 2.150012 to 2.150013.
CPAN::Meta::Requirements has been upgraded from version 2.143 to 2.145.
ExtUtils::CBuilder has been upgraded from version 0.280242 to 0.280243.
ExtUtils::MakeMaker has been upgraded from version 7.76 to 7.78.
feature has been upgraded from version 2.01 to 2.02.
File::Glob has been upgraded from version 1.42 to 1.43.
File::Spec has been upgraded from version 3.94 to 3.95.
IO has been upgraded from version 1.55 to 1.56.
IO::Compress has been upgraded from version 2.217 to 2.219.
Module::CoreList has been upgraded from version 5.20260220 to 5.20260320.
Opcode has been upgraded from version 1.70 to 1.71.
POSIX has been upgraded from version 2.25 to 2.26.
Storable has been upgraded from version 3.39 to 3.40.
threads has been upgraded from version 2.44 to 2.45.
threads::shared has been upgraded from version 1.72 to 1.73.
warnings has been upgraded from version 1.77 to 1.78.
XS::APItest has been upgraded from version 1.49 to 1.50.
Dedicated check functions Perl_ck_anonhash and Perl_ck_aassign have been added and are used to hekify some OP_CONST hash keys at compile time. [GH #24228]
Perl_check_hash_fields_and_hekify, partly called as a compile-time optimization, no longer preemptively converts an NV to a HEK if the compile time and run time locales could differ. [GH #24252]
Perl_check_hash_fields_and_hekify, partly called as a compile-time optimization, no longer preemptively converts a UTF-8 string to a HEK when this will downgrade the string to a single byte representation.
At present, multiple functions inadequately handle the flag used to denote when a key originally had UTF-8 encoding, making it impossible to restore the encoding when keys are extracted from a hash (using keys for example).
Tracking of UTF-8 origins can hopefully be improved in the next development cycle, allowing for preemptive conversion of all UTF-8 strings once again. [GH #24266] [GH #24287]
The macro "fromCTRL" in perlapi has been added to be the inverse of the existing "toCTRL" in perlapi. toCTRL('A') yields 1 (the control character SOH on all platforms Perl works on); fromCTRL(1) yields 'A'.
On debugging perls, instantiating a class with an array field with an empty initializer list would abort with an error:
class Foo {
field @bar = ();
}
Foo->new();
Error message: perl: inline.h:194: Perl_av_new_alloc: Assertion `size > 0' failed.
This has been fixed. [GH #24246]
Refassigning to a class field in a method could result in the SV for that field being released when the method exited. The next access to that field could result in a crash or an assertion, or if the freed SV had been re-used, random data. Discussed in [GH #24187]
Perl 5.43.9 represents approximately 4 weeks of development since Perl 5.43.8 and contains approximately 14,000 lines of changes across 310 files from 22 authors.
Excluding auto-generated files, documentation and release tools, there were approximately 9,500 lines of changes to 230 .pm, .t, .c and .h files.
Perl continues to flourish into its fourth decade thanks to a vibrant community of users and developers. The following people are known to have contributed the improvements that became Perl 5.43.9:
Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari Mannsåker, David Mitchell, Ed J, Eric Herman, Graham Knop, Harald Jörg, James E Keenan, Karl Williamson, Leon Timmermans, Lukas Mai, Olaf Alders, Paul Evans, Paul Marquess, Ricardo Signes, Richard Leach, Scott Baker, Sevan Janiyan, Steve Hay, Toby Inkster, Tony Cook.
The list above is almost certainly incomplete as it is automatically generated from version control history. In particular, it does not include the names of the (very much appreciated) contributors who reported issues to the Perl bug tracker.
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.
If you find what you think is a bug, you might check the perl bug database at https://github.com/Perl/perl5/issues. There may also be information at https://www.perl.org/, the Perl Home Page.
If you believe you have an unreported bug, please open an issue at https://github.com/Perl/perl5/issues. Be sure to trim your bug down to a tiny but sufficient test case.
If the bug you are reporting has security implications which make it inappropriate to send to a public issue tracker, then see "SECURITY VULNERABILITY CONTACT INFORMATION" in perlsec for details of how to report the issue.
If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, you can do so by running the perlthanks program:
perlthanks
This will send an email to the Perl 5 Porters list with your show of thanks.
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.