This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Module::CoreList for 5.23.5
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
b6af474d 5perldelta - what is new for perl v5.23.5
eabfc7bc 6
2cfe9b50 7=head1 DESCRIPTION
eabfc7bc 8
b6af474d 9This document describes differences between the 5.23.4 release and the 5.23.5
2cfe9b50 10release.
eabfc7bc 11
b6af474d
SH
12If you are upgrading from an earlier release such as 5.23.3, first read
13L<perl5234delta>, which describes differences between 5.23.3 and 5.23.4.
a43707ab 14
b6af474d 15=head1 Performance Enhancements
f83db990 16
83144be3 17=over 4
f83db990 18
83144be3 19=item *
f83db990 20
83144be3
A
21Faster addition, subtraction and multiplication.
22
23Since 5.8.0, arithmetic became slower due to the need to support
2464-bit integers. To deal with 64-bit integers, a lot more corner
25cases need to be checked, which adds time. We now detect common
26cases where there is no need to check for those corner cases,
27and special-case them.
f83db990
SH
28
29=item *
30
83144be3
A
31Faster preincrement, predecrement, postincrement, postdecrement.
32
33By internally splitting the functions which handled multiple
34cases into different functions.
f83db990 35
b6af474d 36=back
f83db990 37
b6af474d 38=head1 Modules and Pragmata
f83db990 39
b6af474d
SH
40XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
41go here. If Module::CoreList is updated, generate an initial draft of the
42following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
43for important changes should then be added by hand. In an ideal world,
44dual-life modules would have a F<Changes> file that could be cribbed.
f83db990 45
b6af474d 46[ Within each section, list entries as a =item entry ]
f83db990 47
b6af474d 48=head2 New Modules and Pragmata
f83db990 49
b6af474d 50=over 4
f83db990
SH
51
52=item *
53
b6af474d 54XXX
f83db990 55
b6af474d 56=back
f83db990 57
b6af474d 58=head2 Updated Modules and Pragmata
f83db990 59
b6af474d 60=over 4
f83db990
SH
61
62=item *
63
b6af474d 64L<XXX> has been upgraded from version A.xx to B.yy.
f83db990 65
b6af474d 66=back
f83db990 67
b6af474d 68=head2 Removed Modules and Pragmata
f83db990 69
b6af474d 70=over 4
f83db990
SH
71
72=item *
73
b6af474d 74XXX
f83db990 75
b6af474d 76=back
f83db990 77
b6af474d 78=head1 Diagnostics
f83db990 79
b6af474d
SH
80The following additions or changes have been made to diagnostic output,
81including warnings and fatal error messages. For the complete list of
82diagnostic messages, see L<perldiag>.
f83db990 83
b6af474d 84=head2 New Diagnostics
f83db990 85
b6af474d 86=head3 New Errors
b26bd9b0
PM
87
88=over 4
eabfc7bc 89
0dafb1ce 90=item *
eabfc7bc 91
702e1efd 92L<<< Sequence (?... not terminated in regex; marked by S<<-- HERE> in mE<sol>%sE<sol>|perldiag/"Sequence (?... not terminated in regex; marked by <-- HERE in mE<sol>%sE<sol>" >>>
5ea25977 93
b26bd9b0 94=back
5ea25977 95
b6af474d 96=head2 Changes to Existing Diagnostics
a43707ab 97
b26bd9b0 98=over 4
5ea25977
MH
99
100=item *
101
83144be3
A
102When running out of memory during an attempt the increase the stack
103size, previously, perl would die using the cryptic message
104C<< panic: av_extend_guts() negative count (-9223372036854775681) >>.
105This has been fixed to show the prettier message:
106L<< Out of memory during stack extend|perldiag/"Out of memory during %s extend" >>
f282dc56 107
b26bd9b0 108=back
f282dc56 109
33c85a9f 110=head1 Configuration and Compilation
b26bd9b0 111
b6af474d 112=over 4
cf73ceda 113
f282dc56
MH
114=item *
115
c2f55187
RS
116C<Configure> now acts as if the C<-O> option is always passed, allowing command
117line options to override saved configuration. This should eliminate confusion
118when command line options are ignored for no obvious reason. C<-O> is now
119permitted, but ignored.
cf73ceda 120
83144be3 121=item *
0b8e4842 122
83144be3
A
123Some filesystem stat symbols which were not used by the Perl core
124were removed in an earlier commit. However, since these symbols
125turned out to be used by at least one CPAN module, these symbols
126have been restored.
4b951711 127
83144be3 128=item *
f83db990 129
83144be3
A
130C<< PPPort.so/PPPort.dll >> no longer get installed, as they are
131not used by C<< PPPort.pm >>, only by its test files.
f83db990
SH
132
133=item *
134
83144be3
A
135It is now possible to specify which compilation date to show on
136C<< perl -V >> output, by setting the macro C<< PERL_BUILD_DATE >>.
f83db990
SH
137
138=back
139
b6af474d 140=head1 Platform Support
f83db990 141
83144be3 142=head2 Platform-Specific Notes
0517ed38 143
b6af474d 144=over 4
0517ed38 145
83144be3 146=item Win32
6937817d 147
83144be3 148Win32 does now a parallel build with C++.
0517ed38 149
83144be3 150=item Tru64
8ca2a5d6 151
83144be3
A
152Workaround where Tru64 balks when prototypes are listed as
153C<< PERL_STATIC_INLINE >>, but where the test is build with
154C<< -DPERL_NO_INLINE_FUNCTIONS >>.
0517ed38 155
b26bd9b0 156=back
f4240379 157
b26bd9b0 158=head1 Internal Changes
f4240379 159
b6af474d 160=over 4
d89ea360 161
0efe3111
DM
162=item *
163
83144be3 164C<< sv_ref() >> is now part of the API.
0efe3111 165
d89ea360
DD
166=back
167
b26bd9b0 168=head1 Selected Bug Fixes
eabfc7bc 169
b6af474d 170=over 4
8ca3d7d7
KW
171
172=item *
173
7195e5da
KW
174C<\b{sb}> works much better. In Perl v5.22.0, this new construct didn't
175seem to give the expected results, yet passed all the tests in the
176extensive suite furnished by Unicode. It turns out that it was because
177these were short input strings, and the failures had to do with longer
178inputs. This was fixed in Perl 5.23.4, but the improvement was not
179noticed until after that was released, so is included here now.
0efe3111 180
a82f4918
KW
181=item *
182
183Certain syntax errors in
184L<perlrecharclass/Extended Bracketed Character Classes> caused panics
185instead of the proper error message. This has now been fixed. [perl
186#126481]
187
83144be3 188=item *
f83db990 189
83144be3
A
190An earlier commit added a message when a quantifier in a regular
191expression was useless, but then caused the parser to skip it;
192this caused the surplus quantifier to be silently ignored, instead
c2e36526 193of throwing an error. This is now fixed. [perl #126253]
f83db990 194
83144be3 195=item *
f83db990 196
83144be3
A
197The switch to building non-XS modules last in win32/makefile.mk (introduced
198by design as part of the changes to enable parallel building) caused the
199build of POSIX to break due to problems with the version module. This
200is now fixed.
f83db990 201
133117f5
KW
202=item *
203
83144be3 204Improved parsing of hex float constants.
133117f5 205
83144be3 206=item *
9a7bb2f7 207
83144be3
A
208Fixed an issue with C<< pack >> where C<< pack "H" >> (and C<< pack "h" >>)
209could read past the source when given a non-utf8 source, and a utf8 target.
210[perl #126325]
5a74572e 211
b26bd9b0 212=item *
5a74572e 213
83144be3
A
214Fixed several cases where perl would abort due to a segmentation fault,
215or a C-level assert. [perl #126615], [perl #126602], [perl #126193].
5a74572e 216
b26bd9b0 217=back
5a74572e 218
b6af474d 219=head1 Acknowledgements
04924b39 220
b6af474d 221XXX Generate this with:
04924b39 222
b6af474d 223 perl Porting/acknowledgements.pl v5.23.4..HEAD
f5b73711 224
44691e6f
AB
225=head1 Reporting Bugs
226
e08634c5
SH
227If you find what you think is a bug, you might check the articles recently
228posted to the comp.lang.perl.misc newsgroup and the perl bug database at
fc4c3cec
RS
229L<https://rt.perl.org/> . There may also be information at
230L<http://www.perl.org/> , the Perl Home Page.
44691e6f 231
e08634c5
SH
232If you believe you have an unreported bug, please run the L<perlbug> program
233included with your release. Be sure to trim your bug down to a tiny but
234sufficient test case. Your bug report, along with the output of C<perl -V>,
235will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
236
237If the bug you are reporting has security implications, which make it
e08634c5
SH
238inappropriate to send to a publicly archived mailing list, then please send it
239to perl5-security-report@perl.org. This points to a closed subscription
240unarchived mailing list, which includes all the core committers, who will be
241able to help assess the impact of issues, figure out a resolution, and help
f9001595 242co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
243platforms on which Perl is supported. Please only use this address for
244security issues in the Perl core, not for modules independently distributed on
245CPAN.
44691e6f
AB
246
247=head1 SEE ALSO
248
e08634c5
SH
249The F<Changes> file for an explanation of how to view exhaustive details on
250what changed.
44691e6f
AB
251
252The F<INSTALL> file for how to build Perl.
253
254The F<README> file for general stuff.
255
256The F<Artistic> and F<Copying> files for copyright information.
257
258=cut