|
| 1 | +=encoding utf8 |
| 2 | + |
| 3 | +=head1 NAME |
| 4 | + |
| 5 | +perl54113delta - what is new for perl v5.41.13 |
| 6 | + |
| 7 | +=head1 DESCRIPTION |
| 8 | + |
| 9 | +This document describes differences between the 5.41.12 release and the 5.41.13 |
| 10 | +release. |
| 11 | + |
| 12 | +If you are upgrading from an earlier release such as 5.41.11, first read |
| 13 | +L<perl54112delta>, which describes differences between 5.41.11 and 5.41.12. |
| 14 | + |
| 15 | +=head1 Core Enhancements |
| 16 | + |
| 17 | +=head2 Assigning logical xor C<^^=> operator |
| 18 | + |
| 19 | +Perl 5.40.0 introduced the logical medium-precedence exclusive-or operator |
| 20 | +C<^^>. It was not noticed at the time that the assigning variant C<^^=> was |
| 21 | +also missing. This is now added. |
| 22 | + |
| 23 | +=head1 Modules and Pragmata |
| 24 | + |
| 25 | +=head2 Updated Modules and Pragmata |
| 26 | + |
| 27 | +=over 4 |
| 28 | + |
| 29 | +=item * |
| 30 | + |
| 31 | +L<B::Deparse> has been upgraded from version 1.83 to 1.85. |
| 32 | + |
| 33 | +=item * |
| 34 | + |
| 35 | +L<builtin> has been upgraded from version 0.018 to 0.019. |
| 36 | + |
| 37 | +=item * |
| 38 | + |
| 39 | +L<experimental> has been upgraded from version 0.034 to 0.035. |
| 40 | + |
| 41 | +=item * |
| 42 | + |
| 43 | +L<ExtUtils::CBuilder> has been upgraded from version 0.280240 to 0.280241. |
| 44 | + |
| 45 | +=item * |
| 46 | + |
| 47 | +L<ExtUtils::MakeMaker> has been upgraded from version 7.74 to 7.76. |
| 48 | + |
| 49 | +=item * |
| 50 | + |
| 51 | +L<feature> has been upgraded from version 1.95 to 1.96. |
| 52 | + |
| 53 | +=item * |
| 54 | + |
| 55 | +L<Module::CoreList> has been upgraded from version 5.20250420 to 5.20250528. |
| 56 | + |
| 57 | +=item * |
| 58 | + |
| 59 | +L<re> has been upgraded from version 0.47 to 0.48. |
| 60 | + |
| 61 | +=item * |
| 62 | + |
| 63 | +L<SelfLoader> has been upgraded from version 1.27 to 1.28. |
| 64 | + |
| 65 | +=item * |
| 66 | + |
| 67 | +L<strict> has been upgraded from version 1.13 to 1.14. |
| 68 | + |
| 69 | +=item * |
| 70 | + |
| 71 | +L<Thread> has been upgraded from version 3.05 to 3.06. |
| 72 | + |
| 73 | +=item * |
| 74 | + |
| 75 | +L<Tie::File> has been upgraded from version 1.09 to 1.10. |
| 76 | + |
| 77 | +=item * |
| 78 | + |
| 79 | +L<Unicode::UCD> has been upgraded from version 0.80 to 0.81. |
| 80 | + |
| 81 | +=back |
| 82 | + |
| 83 | +=head1 Platform Support |
| 84 | + |
| 85 | +=head2 Platform-Specific Notes |
| 86 | + |
| 87 | +=over 4 |
| 88 | + |
| 89 | +=item Cygwin |
| 90 | + |
| 91 | +Supply an explicit base address for C<cygperl*.dll> that cannot |
| 92 | +conflict with those generated by C<--enable-auto-image-base>. [L<GH #22695|https://github.com/Perl/perl5/issues/22695>][L<GH #22104|https://github.com/Perl/perl5/issues/22104>] |
| 93 | + |
| 94 | +=back |
| 95 | + |
| 96 | +=head1 Selected Bug Fixes |
| 97 | + |
| 98 | +=over 4 |
| 99 | + |
| 100 | +=item * |
| 101 | + |
| 102 | +Exceptions thrown and caught entirely within a C<defer {}> or C<finally {}> |
| 103 | +block no longer stop the outer run-loop. |
| 104 | + |
| 105 | +Code such as the following would stop running the contents of the C<defer> |
| 106 | +block once the inner exception in the inner C<try>/C<catch> block was caught. |
| 107 | +This has now been fixed, and runs as expected. ([L<GH #23064|https://github.com/Perl/perl5/issues/23064>]). |
| 108 | + |
| 109 | + defer { |
| 110 | + try { die "It breaks\n"; } |
| 111 | + catch ($e) { warn $e } |
| 112 | + |
| 113 | + say "This line would never run"; |
| 114 | + } |
| 115 | + |
| 116 | +=item * |
| 117 | + |
| 118 | +L<perlfunc/readline> now clears the error flag if an error occurs when |
| 119 | +reading and that error is C<EAGAIN> or C<EWOULDBLOCK>. This allows |
| 120 | +old code that depended on C<readline> to clear all errors to ignore |
| 121 | +these relatively harmless errors. [L<GH #22883|https://github.com/Perl/perl5/issues/22883>] |
| 122 | + |
| 123 | +=item * |
| 124 | + |
| 125 | +L<C<open>|perlfunc/open> automatically creates an anonymous temporary file |
| 126 | +when passed C<undef> as a filename: |
| 127 | + |
| 128 | + open(my $fh, "+>", undef) or die ... |
| 129 | + |
| 130 | +This is supposed to work only when the undefined value is the one returned by |
| 131 | +the C<undef> function. |
| 132 | + |
| 133 | +In perls before 5.41.3, this caused a problem due to the fact that the same |
| 134 | +undefined value can be generated by lookups of non-existent hash keys or array |
| 135 | +elements, which can lead to bugs in user-level code (reported as [L<GH #22385|https://github.com/Perl/perl5/issues/22385>]). |
| 136 | + |
| 137 | +In 5.41.3, additional checks based on the syntax tree of the call site were |
| 138 | +added, which fixed this issue for some number of common cases, though not all |
| 139 | +of them, at the cost of breaking the ability of APIs that wrap C<open> to |
| 140 | +expose its anonymous file mode. A notable example of such an API is autodie. |
| 141 | + |
| 142 | +This release reverts to the old problem in preference to the new one for the |
| 143 | +time being. |
| 144 | + |
| 145 | +=back |
| 146 | + |
| 147 | +=head1 Acknowledgements |
| 148 | + |
| 149 | +Perl 5.41.13 represents approximately 5 weeks of development since Perl |
| 150 | +5.41.12 and contains approximately 5,200 lines of changes across 180 files |
| 151 | +from 20 authors. |
| 152 | + |
| 153 | +Excluding auto-generated files, documentation and release tools, there were |
| 154 | +approximately 1,200 lines of changes to 92 .pm, .t, .c and .h files. |
| 155 | + |
| 156 | +Perl continues to flourish into its fourth decade thanks to a vibrant |
| 157 | +community of users and developers. The following people are known to have |
| 158 | +contributed the improvements that became Perl 5.41.13: |
| 159 | + |
| 160 | +Aristotle Pagaltzis, Chris 'BinGOs' Williams, Dagfinn Ilmari Mannsåker, Dan |
| 161 | +Book, David Mitchell, Graham Knop, H.Merijn Brand, James E Keenan, Karen |
| 162 | +Etheridge, Karl Williamson, Leon Timmermans, Lukas Mai, Paul Evans, Paul |
| 163 | +Johnson, Philippe Bruhat (BooK), Richard Leach, Sisyphus, Thibault |
| 164 | +Duponchelle, Todd Rinaldo, Tony Cook. |
| 165 | + |
| 166 | +The list above is almost certainly incomplete as it is automatically |
| 167 | +generated from version control history. In particular, it does not include |
| 168 | +the names of the (very much appreciated) contributors who reported issues to |
| 169 | +the Perl bug tracker. |
| 170 | + |
| 171 | +Many of the changes included in this version originated in the CPAN modules |
| 172 | +included in Perl's core. We're grateful to the entire CPAN community for |
| 173 | +helping Perl to flourish. |
| 174 | + |
| 175 | +For a more complete list of all of Perl's historical contributors, please |
| 176 | +see the F<AUTHORS> file in the Perl source distribution. |
| 177 | + |
| 178 | +=head1 Reporting Bugs |
| 179 | + |
| 180 | +If you find what you think is a bug, you might check the perl bug database |
| 181 | +at L<https://github.com/Perl/perl5/issues>. There may also be information at |
| 182 | +L<https://www.perl.org/>, the Perl Home Page. |
| 183 | + |
| 184 | +If you believe you have an unreported bug, please open an issue at |
| 185 | +L<https://github.com/Perl/perl5/issues>. Be sure to trim your bug down to a |
| 186 | +tiny but sufficient test case. |
| 187 | + |
| 188 | +If the bug you are reporting has security implications which make it |
| 189 | +inappropriate to send to a public issue tracker, then see |
| 190 | +L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> |
| 191 | +for details of how to report the issue. |
| 192 | + |
| 193 | +=head1 Give Thanks |
| 194 | + |
| 195 | +If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, |
| 196 | +you can do so by running the C<perlthanks> program: |
| 197 | + |
| 198 | + perlthanks |
| 199 | + |
| 200 | +This will send an email to the Perl 5 Porters list with your show of thanks. |
| 201 | + |
| 202 | +=head1 SEE ALSO |
| 203 | + |
| 204 | +The F<Changes> file for an explanation of how to view exhaustive details on |
| 205 | +what changed. |
| 206 | + |
| 207 | +The F<INSTALL> file for how to build Perl. |
| 208 | + |
| 209 | +The F<README> file for general stuff. |
| 210 | + |
| 211 | +The F<Artistic> and F<Copying> files for copyright information. |
| 212 | + |
| 213 | +=cut |
0 commit comments