Commit | Line | Data |
---|---|---|
44691e6f AB |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
b6af474d | 5 | perldelta - what is new for perl v5.23.5 |
eabfc7bc | 6 | |
2cfe9b50 | 7 | =head1 DESCRIPTION |
eabfc7bc | 8 | |
b6af474d | 9 | This document describes differences between the 5.23.4 release and the 5.23.5 |
2cfe9b50 | 10 | release. |
eabfc7bc | 11 | |
b6af474d SH |
12 | If you are upgrading from an earlier release such as 5.23.3, first read |
13 | L<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 |
21 | Faster addition, subtraction and multiplication. |
22 | ||
23 | Since 5.8.0, arithmetic became slower due to the need to support | |
24 | 64-bit integers. To deal with 64-bit integers, a lot more corner | |
25 | cases need to be checked, which adds time. We now detect common | |
26 | cases where there is no need to check for those corner cases, | |
27 | and special-case them. | |
f83db990 SH |
28 | |
29 | =item * | |
30 | ||
83144be3 A |
31 | Faster preincrement, predecrement, postincrement, postdecrement. |
32 | ||
33 | By internally splitting the functions which handled multiple | |
34 | cases into different functions. | |
f83db990 | 35 | |
b6af474d | 36 | =back |
f83db990 | 37 | |
b6af474d | 38 | =head1 Modules and Pragmata |
f83db990 | 39 | |
a8c28920 | 40 | =head2 Updated Modules and Pragmata |
f83db990 | 41 | |
a8c28920 | 42 | =over 4 |
f83db990 | 43 | |
a8c28920 | 44 | =item * |
f83db990 | 45 | |
a8c28920 | 46 | L<arybase> has been upgraded from version 0.10 to 0.11. |
f83db990 SH |
47 | |
48 | =item * | |
49 | ||
a8c28920 | 50 | L<B> has been upgraded from version 1.60 to 1.61. |
f83db990 | 51 | |
a8c28920 | 52 | =item * |
f83db990 | 53 | |
a8c28920 | 54 | L<base> has been upgraded from version 2.22 to 2.22_01. |
f83db990 | 55 | |
a8c28920 A |
56 | Better handling of attempts to load non-existent modules. |
57 | Improvements to fields.pm documentation. L<base> now requires v5.8.0. | |
f83db990 SH |
58 | |
59 | =item * | |
60 | ||
a8c28920 | 61 | L<Carp> has been upgraded from version 1.37 to 1.38. |
f83db990 | 62 | |
a8c28920 A |
63 | Improvements when working with older perls. |
64 | ||
65 | =item * | |
f83db990 | 66 | |
a8c28920 | 67 | L<Config::Perl::V> has been upgraded from version 0.24 to 0.25. |
f83db990 | 68 | |
a8c28920 A |
69 | =item * |
70 | ||
71 | L<Devel::Peek> has been upgraded from version 1.22 to 1.23. | |
72 | ||
73 | =item * | |
74 | ||
75 | L<Dumpvalue> has been upgraded from version 1.17 to 1.18. | |
76 | ||
77 | =item * | |
78 | ||
79 | L<DynaLoader> has been upgraded from version 1.35 to 1.36. | |
80 | ||
81 | =item * | |
82 | ||
83 | L<fields> has been upgraded from version 2.17 to 2.22_01. | |
84 | ||
85 | =item * | |
86 | ||
87 | L<File::Find> has been upgraded from version 1.31 to 1.32. | |
88 | ||
89 | Handles empty directory lists. | |
90 | ||
91 | =item * | |
92 | ||
93 | L<File::Spec> has been upgraded from version 3.58 to 3.59. | |
94 | ||
95 | =item * | |
96 | ||
97 | L<Getopt::Long> has been upgraded from version 2.47 to 2.48. | |
98 | ||
99 | Fixes an issue with C<< gnu_compat >> | |
100 | ||
101 | =item * | |
102 | ||
103 | L<Hash::Util::FieldHash> has been upgraded from version 1.17 to 1.18. | |
104 | ||
105 | =item * | |
106 | ||
107 | L<IPC::Open3> has been upgraded from version 1.19 to 1.20. | |
108 | ||
109 | Include the error message on C<< exec() >> failure. | |
110 | ||
111 | =item * | |
112 | ||
113 | L<Math::BigInt> has been upgraded from version 1.999704 to 1.999710. | |
114 | ||
115 | =item * | |
116 | ||
117 | L<Math::BigInt::FastCalc> has been upgraded from version 0.34 to 0.37. | |
118 | ||
119 | =item * | |
120 | ||
121 | L<Module::CoreList> has been upgraded from version 5.20151020 to 5.20151120. | |
122 | ||
123 | =item * | |
124 | ||
125 | L<Module::Metadata> has been upgraded from version 1.000029 to 1.000030. | |
126 | ||
127 | Temp dirs cleaned up during tests. More accurately mark tests as TODO, so as to have a quieter and less confusing test run without passing TODO tests. | |
128 | ||
129 | =item * | |
130 | ||
131 | L<PerlIO::encoding> has been upgraded from version 0.22 to 0.23. | |
132 | ||
133 | =item * | |
134 | ||
135 | L<PerlIO::mmap> has been upgraded from version 0.014 to 0.015. | |
136 | ||
137 | =item * | |
138 | ||
139 | L<PerlIO::scalar> has been upgraded from version 0.23 to 0.24. | |
140 | ||
141 | =item * | |
142 | ||
143 | L<PerlIO::via> has been upgraded from version 0.15 to 0.16. | |
144 | ||
145 | =item * | |
146 | ||
147 | L<Pod::Simple> has been upgraded from version 3.30 to 3.32. | |
148 | ||
149 | Switched debugging output from C<< STDOUT >> to C<< STDERR >>. | |
150 | ||
151 | Added C<< errata_seen() >> to make POD errors easily accessible. | |
152 | ||
153 | Simplified the detection of case-insensitivity in Pod::Simple::Search. | |
154 | ||
155 | Fixed C<< Use of uninitialized value $1 in lc >> warning in | |
156 | Pod::Simple::Search. | |
157 | ||
158 | If C<< @INC >> includes the current directory symbol, C<.>, the | |
159 | C<< survey() >> method of C<< Pod::Simple::Search >> no longer excludes | |
160 | it from its list of directories to search. Instead, The C<< survey() >> and | |
161 | C<< find() >> methods now both exclude duplicate directories from C<< @INC >> | |
162 | (RT #102344). | |
163 | ||
164 | Moved source repository and updated links to new perl-pod GitHub | |
165 | organization: L<https://github.com/perl-pod/pod-simple>. | |
166 | ||
167 | Improved repository links and added GitHub issue tracking link to | |
168 | the distribution metadata. | |
169 | ||
170 | Switched from C<< File::Spec >>'s C<< catdir >> to C<< catfile >> | |
171 | for path names, to fix failures on VMS. Also now use Unix path semantics | |
172 | where they're not required to be platform-specific. (RT #105511). | |
173 | ||
174 | Improved the example use of the C<< html_encode_chars() >> method in | |
175 | the C<< Pod::Simple::XHTML >> documentation. | |
176 | ||
177 | =item * | |
178 | ||
179 | L<POSIX> has been upgraded from version 1.58 to 1.59. | |
180 | ||
181 | =item * | |
182 | ||
183 | L<Thread::Queue> has been upgraded from version 3.06 to 3.07. | |
184 | ||
185 | =item * | |
186 | ||
187 | L<threads> has been upgraded from version 2.03 to 2.04. | |
188 | ||
189 | =item * | |
190 | ||
191 | L<threads::shared> has been upgraded from version 1.48 to 1.49. | |
192 | ||
193 | =item * | |
194 | ||
195 | L<Tie::Scalar> has been upgraded from version 1.03 to 1.04. | |
196 | ||
197 | =item * | |
198 | ||
199 | L<Time::HiRes> has been upgraded from version 1.9727_02 to 1.9728. | |
200 | ||
201 | =item * | |
202 | ||
203 | L<Time::Piece> has been upgraded from version 1.30 to 1.31. | |
204 | ||
205 | =item * | |
206 | ||
207 | L<Unicode::Normalize> has been upgraded from version 1.21 to 1.23. | |
f83db990 SH |
208 | |
209 | =item * | |
210 | ||
a8c28920 | 211 | L<XSLoader> has been upgraded from version 0.20 to 0.21. |
f83db990 | 212 | |
b6af474d | 213 | =back |
f83db990 | 214 | |
b6af474d | 215 | =head1 Diagnostics |
f83db990 | 216 | |
b6af474d SH |
217 | The following additions or changes have been made to diagnostic output, |
218 | including warnings and fatal error messages. For the complete list of | |
219 | diagnostic messages, see L<perldiag>. | |
f83db990 | 220 | |
b6af474d | 221 | =head2 New Diagnostics |
f83db990 | 222 | |
b6af474d | 223 | =head3 New Errors |
b26bd9b0 PM |
224 | |
225 | =over 4 | |
eabfc7bc | 226 | |
0dafb1ce | 227 | =item * |
eabfc7bc | 228 | |
702e1efd | 229 | L<<< 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 | 230 | |
b26bd9b0 | 231 | =back |
5ea25977 | 232 | |
b6af474d | 233 | =head2 Changes to Existing Diagnostics |
a43707ab | 234 | |
b26bd9b0 | 235 | =over 4 |
5ea25977 MH |
236 | |
237 | =item * | |
238 | ||
83144be3 A |
239 | When running out of memory during an attempt the increase the stack |
240 | size, previously, perl would die using the cryptic message | |
241 | C<< panic: av_extend_guts() negative count (-9223372036854775681) >>. | |
242 | This has been fixed to show the prettier message: | |
243 | L<< Out of memory during stack extend|perldiag/"Out of memory during %s extend" >> | |
f282dc56 | 244 | |
b26bd9b0 | 245 | =back |
f282dc56 | 246 | |
33c85a9f | 247 | =head1 Configuration and Compilation |
b26bd9b0 | 248 | |
b6af474d | 249 | =over 4 |
cf73ceda | 250 | |
f282dc56 MH |
251 | =item * |
252 | ||
c2f55187 RS |
253 | C<Configure> now acts as if the C<-O> option is always passed, allowing command |
254 | line options to override saved configuration. This should eliminate confusion | |
255 | when command line options are ignored for no obvious reason. C<-O> is now | |
256 | permitted, but ignored. | |
cf73ceda | 257 | |
83144be3 | 258 | =item * |
0b8e4842 | 259 | |
83144be3 A |
260 | Some filesystem stat symbols which were not used by the Perl core |
261 | were removed in an earlier commit. However, since these symbols | |
262 | turned out to be used by at least one CPAN module, these symbols | |
263 | have been restored. | |
4b951711 | 264 | |
83144be3 | 265 | =item * |
f83db990 | 266 | |
83144be3 A |
267 | C<< PPPort.so/PPPort.dll >> no longer get installed, as they are |
268 | not used by C<< PPPort.pm >>, only by its test files. | |
f83db990 SH |
269 | |
270 | =item * | |
271 | ||
83144be3 A |
272 | It is now possible to specify which compilation date to show on |
273 | C<< perl -V >> output, by setting the macro C<< PERL_BUILD_DATE >>. | |
f83db990 SH |
274 | |
275 | =back | |
276 | ||
b6af474d | 277 | =head1 Platform Support |
f83db990 | 278 | |
83144be3 | 279 | =head2 Platform-Specific Notes |
0517ed38 | 280 | |
b6af474d | 281 | =over 4 |
0517ed38 | 282 | |
83144be3 | 283 | =item Win32 |
6937817d | 284 | |
83144be3 | 285 | Win32 does now a parallel build with C++. |
0517ed38 | 286 | |
83144be3 | 287 | =item Tru64 |
8ca2a5d6 | 288 | |
83144be3 A |
289 | Workaround where Tru64 balks when prototypes are listed as |
290 | C<< PERL_STATIC_INLINE >>, but where the test is build with | |
291 | C<< -DPERL_NO_INLINE_FUNCTIONS >>. | |
0517ed38 | 292 | |
b26bd9b0 | 293 | =back |
f4240379 | 294 | |
b26bd9b0 | 295 | =head1 Internal Changes |
f4240379 | 296 | |
b6af474d | 297 | =over 4 |
d89ea360 | 298 | |
0efe3111 DM |
299 | =item * |
300 | ||
83144be3 | 301 | C<< sv_ref() >> is now part of the API. |
0efe3111 | 302 | |
d89ea360 DD |
303 | =back |
304 | ||
b26bd9b0 | 305 | =head1 Selected Bug Fixes |
eabfc7bc | 306 | |
b6af474d | 307 | =over 4 |
8ca3d7d7 KW |
308 | |
309 | =item * | |
310 | ||
7195e5da KW |
311 | C<\b{sb}> works much better. In Perl v5.22.0, this new construct didn't |
312 | seem to give the expected results, yet passed all the tests in the | |
313 | extensive suite furnished by Unicode. It turns out that it was because | |
314 | these were short input strings, and the failures had to do with longer | |
315 | inputs. This was fixed in Perl 5.23.4, but the improvement was not | |
316 | noticed until after that was released, so is included here now. | |
0efe3111 | 317 | |
a82f4918 KW |
318 | =item * |
319 | ||
320 | Certain syntax errors in | |
321 | L<perlrecharclass/Extended Bracketed Character Classes> caused panics | |
322 | instead of the proper error message. This has now been fixed. [perl | |
323 | #126481] | |
324 | ||
83144be3 | 325 | =item * |
f83db990 | 326 | |
83144be3 A |
327 | An earlier commit added a message when a quantifier in a regular |
328 | expression was useless, but then caused the parser to skip it; | |
329 | this caused the surplus quantifier to be silently ignored, instead | |
c2e36526 | 330 | of throwing an error. This is now fixed. [perl #126253] |
f83db990 | 331 | |
83144be3 | 332 | =item * |
f83db990 | 333 | |
83144be3 A |
334 | The switch to building non-XS modules last in win32/makefile.mk (introduced |
335 | by design as part of the changes to enable parallel building) caused the | |
336 | build of POSIX to break due to problems with the version module. This | |
337 | is now fixed. | |
f83db990 | 338 | |
133117f5 KW |
339 | =item * |
340 | ||
83144be3 | 341 | Improved parsing of hex float constants. |
133117f5 | 342 | |
83144be3 | 343 | =item * |
9a7bb2f7 | 344 | |
83144be3 A |
345 | Fixed an issue with C<< pack >> where C<< pack "H" >> (and C<< pack "h" >>) |
346 | could read past the source when given a non-utf8 source, and a utf8 target. | |
347 | [perl #126325] | |
5a74572e | 348 | |
b26bd9b0 | 349 | =item * |
5a74572e | 350 | |
83144be3 A |
351 | Fixed several cases where perl would abort due to a segmentation fault, |
352 | or a C-level assert. [perl #126615], [perl #126602], [perl #126193]. | |
5a74572e | 353 | |
b26bd9b0 | 354 | =back |
5a74572e | 355 | |
b6af474d | 356 | =head1 Acknowledgements |
04924b39 | 357 | |
b6af474d | 358 | XXX Generate this with: |
04924b39 | 359 | |
b6af474d | 360 | perl Porting/acknowledgements.pl v5.23.4..HEAD |
f5b73711 | 361 | |
44691e6f AB |
362 | =head1 Reporting Bugs |
363 | ||
e08634c5 SH |
364 | If you find what you think is a bug, you might check the articles recently |
365 | posted to the comp.lang.perl.misc newsgroup and the perl bug database at | |
fc4c3cec RS |
366 | L<https://rt.perl.org/> . There may also be information at |
367 | L<http://www.perl.org/> , the Perl Home Page. | |
44691e6f | 368 | |
e08634c5 SH |
369 | If you believe you have an unreported bug, please run the L<perlbug> program |
370 | included with your release. Be sure to trim your bug down to a tiny but | |
371 | sufficient test case. Your bug report, along with the output of C<perl -V>, | |
372 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. | |
44691e6f AB |
373 | |
374 | If the bug you are reporting has security implications, which make it | |
e08634c5 SH |
375 | inappropriate to send to a publicly archived mailing list, then please send it |
376 | to perl5-security-report@perl.org. This points to a closed subscription | |
377 | unarchived mailing list, which includes all the core committers, who will be | |
378 | able to help assess the impact of issues, figure out a resolution, and help | |
f9001595 | 379 | co-ordinate the release of patches to mitigate or fix the problem across all |
e08634c5 SH |
380 | platforms on which Perl is supported. Please only use this address for |
381 | security issues in the Perl core, not for modules independently distributed on | |
382 | CPAN. | |
44691e6f AB |
383 | |
384 | =head1 SEE ALSO | |
385 | ||
e08634c5 SH |
386 | The F<Changes> file for an explanation of how to view exhaustive details on |
387 | what changed. | |
44691e6f AB |
388 | |
389 | The F<INSTALL> file for how to build Perl. | |
390 | ||
391 | The F<README> file for general stuff. | |
392 | ||
393 | The F<Artistic> and F<Copying> files for copyright information. | |
394 | ||
395 | =cut |