|
| 1 | +=encoding utf8 |
| 2 | + |
| 3 | +=head1 NAME |
| 4 | + |
| 5 | +perl5418delta - what is new for perl v5.41.8 |
| 6 | + |
| 7 | +=head1 DESCRIPTION |
| 8 | + |
| 9 | +This document describes differences between the 5.41.7 release and the 5.41.8 |
| 10 | +release. |
| 11 | + |
| 12 | +If you are upgrading from an earlier release such as 5.41.6, first read |
| 13 | +L<perl5417delta>, which describes differences between 5.41.6 and 5.41.7. |
| 14 | + |
| 15 | +=head1 Incompatible Changes |
| 16 | + |
| 17 | +=head2 Removed containing function references for functions without eval |
| 18 | + |
| 19 | +Perl 5.40 reintroduced unconditional references from functions to their |
| 20 | +containing functions to fix a bug introduced in Perl 5.18 that broke the |
| 21 | +special behaviour of C<eval EXPR> in package C<DB> which is used by the |
| 22 | +debugger. |
| 23 | + |
| 24 | +In some cases this change led to circular reference chains between closures and |
| 25 | +other existing references, resulting in memory leaks. |
| 26 | + |
| 27 | +This change has been reverted, fixing |
| 28 | +[L<GH #22547|https://github.com/Perl/perl5/issues/22547>] but re-breaking |
| 29 | +[L<GH #19370|https://github.com/Perl/perl5/issues/19370>]. |
| 30 | + |
| 31 | +This means the reference loops won't occur, and that lexical variables and |
| 32 | +functions from enclosing functions may not be visible in the debugger. |
| 33 | + |
| 34 | +Note that calling C<eval EXPR> in a function unconditionally causes a function |
| 35 | +to reference its enclosing functions as it always has. |
| 36 | + |
| 37 | +=head1 Performance Enhancements |
| 38 | + |
| 39 | +=over 4 |
| 40 | + |
| 41 | +=item * |
| 42 | + |
| 43 | +The peephole optimizer recognises the following zero-offset C<substr> patterns |
| 44 | +and swaps in a new dedicated operator (C<OP_SUBSTR_LEFT>). |
| 45 | +[L<GH #22785|https://github.com/Perl/perl5/issues/22785>] |
| 46 | + |
| 47 | + substr($x, 0, ...) |
| 48 | + substr($x, 0, ..., '') |
| 49 | + |
| 50 | +=back |
| 51 | + |
| 52 | +=head1 Modules and Pragmata |
| 53 | + |
| 54 | +=head2 Updated Modules and Pragmata |
| 55 | + |
| 56 | +=over 4 |
| 57 | + |
| 58 | +=item * |
| 59 | + |
| 60 | +L<B::Deparse> has been upgraded from version 1.81 to 1.82. |
| 61 | + |
| 62 | +=item * |
| 63 | + |
| 64 | +L<Config::Perl::V> has been upgraded from version 0.36 to 0.38. |
| 65 | + |
| 66 | +=item * |
| 67 | + |
| 68 | +L<Data::Dumper> has been upgraded from version 2.190 to 2.191. |
| 69 | + |
| 70 | +=item * |
| 71 | + |
| 72 | +L<DBM_Filter> has been upgraded from version 0.06 to 0.07. |
| 73 | + |
| 74 | +=item * |
| 75 | + |
| 76 | +L<experimental> has been upgraded from version 0.032 to 0.034. |
| 77 | + |
| 78 | +=item * |
| 79 | + |
| 80 | +L<ExtUtils::ParseXS> has been upgraded from version 3.56 to 3.57. |
| 81 | + |
| 82 | +=item * |
| 83 | + |
| 84 | +L<ExtUtils::Typemaps> has been upgraded from version 3.56 to 3.57. |
| 85 | + |
| 86 | +=item * |
| 87 | + |
| 88 | +L<Module::CoreList> has been upgraded from version 5.20241220 to 5.20250120. |
| 89 | + |
| 90 | +=item * |
| 91 | + |
| 92 | +L<Opcode> has been upgraded from version 1.67 to 1.68. |
| 93 | + |
| 94 | +=item * |
| 95 | + |
| 96 | +L<Term::Table> has been upgraded from version 0.023 to 0.024. |
| 97 | + |
| 98 | +=item * |
| 99 | + |
| 100 | +L<Test::Simple> has been upgraded from version 1.302204 to 1.302207. |
| 101 | + |
| 102 | +=item * |
| 103 | + |
| 104 | +L<Time::Piece> has been upgraded from version 1.3401_01 to 1.35. |
| 105 | + |
| 106 | +=back |
| 107 | + |
| 108 | +=head1 Documentation |
| 109 | + |
| 110 | +=head2 Changes to Existing Documentation |
| 111 | + |
| 112 | +We have attempted to update the documentation to reflect the changes listed in |
| 113 | +this document. If you find any we have missed, open an issue at |
| 114 | +L<https://github.com/Perl/perl5/issues>. |
| 115 | + |
| 116 | +=head1 Testing |
| 117 | + |
| 118 | +Tests were added and changed to reflect the other additions and changes in this |
| 119 | +release. |
| 120 | + |
| 121 | +=head1 Selected Bug Fixes |
| 122 | + |
| 123 | +=over 4 |
| 124 | + |
| 125 | +=item * |
| 126 | + |
| 127 | +L<perlfunc/shmread> and L<perlfunc/shmwrite> are no longer limited to 31-bit |
| 128 | +values for their POS and SIZE arguments. |
| 129 | +[L<GH #22895|https://github.com/Perl/perl5/issues/22895>] |
| 130 | + |
| 131 | +=item * |
| 132 | + |
| 133 | +L<perlfunc/shmread> is now better behaved if VAR is not a plain string. If VAR |
| 134 | +is a tied variable, it calls C<STORE> once; previously, it would also call |
| 135 | +C<FETCH>, but without using the result. If VAR is a reference, the referenced |
| 136 | +entity has its refcount properly decremented when VAR is turned into a string; |
| 137 | +previously, it would leak memory. |
| 138 | +[L<GH #22898|https://github.com/Perl/perl5/issues/22898>] |
| 139 | + |
| 140 | +=back |
| 141 | + |
| 142 | +=head1 Acknowledgements |
| 143 | + |
| 144 | +Perl 5.41.8 represents approximately 4 weeks of development since Perl 5.41.7 |
| 145 | +and contains approximately 8,800 lines of changes across 370 files from 17 |
| 146 | +authors. |
| 147 | + |
| 148 | +Excluding auto-generated files, documentation and release tools, there were |
| 149 | +approximately 6,800 lines of changes to 320 .pm, .t, .c and .h files. |
| 150 | + |
| 151 | +Perl continues to flourish into its fourth decade thanks to a vibrant community |
| 152 | +of users and developers. The following people are known to have contributed |
| 153 | +the improvements that became Perl 5.41.8: |
| 154 | + |
| 155 | +Branislav Zahradník, Chad Granum, Dan Book, David Mitchell, Graham Knop, |
| 156 | +H.Merijn Brand, James E Keenan, Karl Williamson, Lukas Mai, Max Maischein, Paul |
| 157 | +Evans, Philippe Bruhat (BooK), Richard Leach, Sergei Zhmylev, Steve Hay, TAKAI |
| 158 | +Kousuke, Tony Cook. |
| 159 | + |
| 160 | +The list above is almost certainly incomplete as it is automatically generated |
| 161 | +from version control history. In particular, it does not include the names of |
| 162 | +the (very much appreciated) contributors who reported issues to the Perl bug |
| 163 | +tracker. |
| 164 | + |
| 165 | +Many of the changes included in this version originated in the CPAN modules |
| 166 | +included in Perl's core. We're grateful to the entire CPAN community for |
| 167 | +helping Perl to flourish. |
| 168 | + |
| 169 | +For a more complete list of all of Perl's historical contributors, please see |
| 170 | +the F<AUTHORS> file in the Perl source distribution. |
| 171 | + |
| 172 | +=head1 Reporting Bugs |
| 173 | + |
| 174 | +If you find what you think is a bug, you might check the perl bug database at |
| 175 | +L<https://github.com/Perl/perl5/issues>. There may also be information at |
| 176 | +L<https://www.perl.org/>, the Perl Home Page. |
| 177 | + |
| 178 | +If you believe you have an unreported bug, please open an issue at |
| 179 | +L<https://github.com/Perl/perl5/issues>. Be sure to trim your bug down to a |
| 180 | +tiny but sufficient test case. |
| 181 | + |
| 182 | +If the bug you are reporting has security implications which make it |
| 183 | +inappropriate to send to a public issue tracker, then see |
| 184 | +L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> for details of how to |
| 185 | +report the issue. |
| 186 | + |
| 187 | +=head1 Give Thanks |
| 188 | + |
| 189 | +If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, you |
| 190 | +can do so by running the C<perlthanks> program: |
| 191 | + |
| 192 | + perlthanks |
| 193 | + |
| 194 | +This will send an email to the Perl 5 Porters list with your show of thanks. |
| 195 | + |
| 196 | +=head1 SEE ALSO |
| 197 | + |
| 198 | +The F<Changes> file for an explanation of how to view exhaustive details on |
| 199 | +what changed. |
| 200 | + |
| 201 | +The F<INSTALL> file for how to build Perl. |
| 202 | + |
| 203 | +The F<README> file for general stuff. |
| 204 | + |
| 205 | +The F<Artistic> and F<Copying> files for copyright information. |
| 206 | + |
| 207 | +=cut |
0 commit comments