This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Benchmark iteration warnings should warn, not print
[perl5.git] / pod / perldelta.pod
1 =encoding utf8
2
3 =head1 NAME
4
5 [ this is a template for a new perldelta file.  Any text flagged as XXX needs
6 to be processed before release. ]
7
8 perldelta - what is new for perl v5.17.9
9
10 =head1 DESCRIPTION
11
12 This document describes differences between the 5.17.8 release and the 5.17.9
13 release.
14
15 If you are upgrading from an earlier release such as 5.17.7, first read
16 L<perl5178delta>, which describes differences between 5.17.7 and 5.17.8.
17
18 =head1 Notice
19
20 XXX Any important notices here
21
22 =head1 Core Enhancements
23
24 XXX New core language features go here.  Summarize user-visible core language
25 enhancements.  Particularly prominent performance optimisations could go
26 here, but most should go in the L</Performance Enhancements> section.
27
28 [ List each enhancement as a =head2 entry ]
29
30 =head2 Interpolations now Accepted in Regular Expression Set Operations
31
32 Perl v5.17.8 introduced L<regular expression set operations|perlre/(?[ ])>.
33 They have now been expanded to allow the interpolation of a
34 previously-compiled set into a bigger set, like this:
35
36  my $thai_or_lao = qr/\p{Thai} + \p{Lao}/;
37  ...
38  qr/(?[ \p{Digit} & $thai_or_lao ])/;
39
40 =head1 Security
41
42 XXX Any security-related notices go here.  In particular, any security
43 vulnerabilities closed should be noted here rather than in the
44 L</Selected Bug Fixes> section.
45
46 [ List each security issue as a =head2 entry ]
47
48 =head1 Incompatible Changes
49
50 XXX For a release on a stable branch, this section aspires to be:
51
52     There are no changes intentionally incompatible with 5.XXX.XXX
53     If any exist, they are bugs, and we request that you submit a
54     report.  See L</Reporting Bugs> below.
55
56 [ List each incompatible change as a =head2 entry ]
57
58 =head1 Deprecations
59
60 XXX Any deprecated features, syntax, modules etc. should be listed here.  In
61 particular, deprecated modules should be listed here even if they are listed as
62 an updated module in the L</Modules and Pragmata> section.
63
64 [ List each deprecation as a =head2 entry ]
65
66 =head2 Deprecated Modules
67
68 The following modules will be removed from the core distribution in a
69 future release, and should be installed from CPAN instead. Distributions
70 on CPAN which require these should add them to their prerequisites. The
71 core versions of these modules C<warnings> will issue a deprecation warning.
72
73 You can silence these deprecation warnings by installing the modules
74 in question from CPAN.
75
76 =over
77
78 =item L<Archive::Extract>
79
80 =item L<B::Lint>
81
82 =item L<B::Lint::Debug>
83
84 =item L<CPANPLUS>
85
86 =item L<CPANPLUS::Backend>
87
88 =item L<CPANPLUS::Backend::RV>
89
90 =item L<CPANPLUS::Config>
91
92 =item L<CPANPLUS::Config::HomeEnv>
93
94 =item L<CPANPLUS::Configure>
95
96 =item C<CPANPLUS::Configure::Setup>
97
98 =item L<CPANPLUS::Dist>
99
100 =item L<CPANPLUS::Dist::Autobundle>
101
102 =item L<CPANPLUS::Dist::Base>
103
104 =item L<CPANPLUS::Dist::Build>
105
106 =item L<CPANPLUS::Dist::Build::Constants>
107
108 =item L<CPANPLUS::Dist::MM>
109
110 =item L<CPANPLUS::Dist::Sample>
111
112 =item L<CPANPLUS::Error>
113
114 =item L<CPANPLUS::Internals>
115
116 =item C<CPANPLUS::Internals::Constants>
117
118 =item C<CPANPLUS::Internals::Constants::Report>
119
120 =item L<CPANPLUS::Internals::Extract>
121
122 =item L<CPANPLUS::Internals::Fetch>
123
124 =item L<CPANPLUS::Internals::Report>
125
126 =item L<CPANPLUS::Internals::Search>
127
128 =item L<CPANPLUS::Internals::Source>
129
130 =item L<CPANPLUS::Internals::Source::Memory>
131
132 =item L<CPANPLUS::Internals::Source::SQLite>
133
134 =item C<CPANPLUS::Internals::Source::SQLite::Tie>
135
136 =item L<CPANPLUS::Internals::Utils>
137
138 =item C<CPANPLUS::Internals::Utils::Autoflush>
139
140 =item L<CPANPLUS::Module>
141
142 =item L<CPANPLUS::Module::Author>
143
144 =item L<CPANPLUS::Module::Author::Fake>
145
146 =item L<CPANPLUS::Module::Checksums>
147
148 =item L<CPANPLUS::Module::Fake>
149
150 =item C<CPANPLUS::Module::Signature>
151
152 =item L<CPANPLUS::Selfupdate>
153
154 =item L<CPANPLUS::Shell>
155
156 =item L<CPANPLUS::Shell::Classic>
157
158 =item L<CPANPLUS::Shell::Default>
159
160 =item L<CPANPLUS::Shell::Default::Plugins::CustomSource>
161
162 =item L<CPANPLUS::Shell::Default::Plugins::Remote>
163
164 =item L<CPANPLUS::Shell::Default::Plugins::Source>
165
166 =item L<Devel::InnerPackage>
167
168 =item L<Log::Message>
169
170 =item L<Log::Message::Config>
171
172 =item L<Log::Message::Handlers>
173
174 =item L<Log::Message::Item>
175
176 =item L<Log::Message::Simple>
177
178 =item L<Module::Pluggable>
179
180 =item L<Module::Pluggable::Object>
181
182 =item L<Object::Accessor>
183
184 =item L<Term::UI>
185
186 =item L<Term::UI::History>
187
188 =back
189
190 =head3 Deprecated Utilities
191
192 The following utilities will be removed from the core distribution in a
193 future release as their associated modules have been deprecated. They
194 will remain available with the applicable CPAN distribution.
195
196 =over
197
198 =item L<cpanp>
199
200 Included with L<CPANPLUS>.
201
202 =item C<cpanp-run-perl>
203
204 Included with L<CPANPLUS>.
205
206 =item L<cpan2dist>
207
208 Included with L<CPANPLUS>.
209
210 =item L<pod2latex>
211
212 The L<Pod::LaTeX> module was deprecated with 5.17.8.
213
214 =back
215
216 =head2 Five additional characters should be escaped in patterns with C</x>
217
218 When a regular expression pattern is compiled with C</x>, Perl treats 6
219 characters as white space to ignore, such as SPACE and TAB.  However,
220 Unicode recommends 11 characters be treated thusly.  In preparation to
221 conforming with this in a future Perl version, in the meantime, use of
222 any of the missing characters will raise a deprecation warning, unless
223 turned off.  The five characters are:
224 U+0085 NEXT LINE,
225 U+200E LEFT-TO-RIGHT MARK,
226 U+200F RIGHT-TO-LEFT MARK,
227 U+2028 LINE SEPARATOR,
228 and
229 U+2029 PARAGRAPH SEPARATOR.
230
231 =head1 Performance Enhancements
232
233 XXX Changes which enhance performance without changing behaviour go here.
234 There may well be none in a stable release.
235
236 [ List each enhancement as a =item entry ]
237
238 =over 4
239
240 =item *
241
242 XXX
243
244 =back
245
246 =head1 Modules and Pragmata
247
248 XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
249 go here.  If Module::CoreList is updated, generate an initial draft of the
250 following sections using F<Porting/corelist-perldelta.pl>, which prints stub
251 entries to STDOUT.  Results can be pasted in place of the '=head2' entries
252 below.  A paragraph summary for important changes should then be added by hand.
253 In an ideal world, dual-life modules would have a F<Changes> file that could be
254 cribbed.
255
256 [ Within each section, list entries as a =item entry ]
257
258 =head2 New Modules and Pragmata
259
260 =over 4
261
262 =item *
263
264 L<Config::Perl::V> version 0.16 has been added as a dual-lifed module.
265 It provides structured data retrieval of C<perl -V> output including
266 information only known to the C<perl> binary and not available via L<Config>.
267
268 =back
269
270 =head2 Updated Modules and Pragmata
271
272 =over 4
273
274 =item *
275
276 L<Benchmark> has been upgraded from version 1.13 to 1.14.
277
278 The "too few iterations" message is now a warning on STDERR
279 instead of being output on STDOUT.
280
281 =item *
282
283 L<PerlIO::scalar> has been upgraded from version 0.15 to 0.16.
284
285 The buffer scalar supplied may now only contain code pounts 0xFF or
286 lower. [perl #109828]
287
288 =back
289
290 =head2 Removed Modules and Pragmata
291
292 =over 4
293
294 =item *
295
296 XXX
297
298 =back
299
300 =head1 Documentation
301
302 XXX Changes to files in F<pod/> go here.  Consider grouping entries by
303 file and be sure to link to the appropriate page, e.g. L<perlfunc>.
304
305 =head2 New Documentation
306
307 XXX Changes which create B<new> files in F<pod/> go here.
308
309 =head3 L<XXX>
310
311 XXX Description of the purpose of the new file here
312
313 =head2 Changes to Existing Documentation
314
315 XXX Changes which significantly change existing files in F<pod/> go here.
316 However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
317 section.
318
319 =head3 L<XXX>
320
321 =over 4
322
323 =item *
324
325 XXX Description of the change here
326
327 =back
328
329 =head1 Diagnostics
330
331 The following additions or changes have been made to diagnostic output,
332 including warnings and fatal error messages.  For the complete list of
333 diagnostic messages, see L<perldiag>.
334
335 XXX New or changed warnings emitted by the core's C<C> code go here.  Also
336 include any changes in L<perldiag> that reconcile it to the C<C> code.
337
338 =head2 New Diagnostics
339
340 XXX Newly added diagnostic messages go under here, separated into New Errors
341 and New Warnings
342
343 =head3 New Errors
344
345 =over 4
346
347 =item *
348
349 XXX L<message|perldiag/"message">
350
351 =back
352
353 =head3 New Warnings
354
355 =over 4
356
357 =item *
358
359 XXX L<message|perldiag/"message">
360
361 =back
362
363 =head2 Changes to Existing Diagnostics
364
365 XXX Changes (i.e. rewording) of diagnostic messages go here
366
367 =over 4
368
369 =item *
370
371 XXX Describe change here
372
373 =back
374
375 =head1 Utility Changes
376
377 XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
378 Most of these are built within the directories F<utils> and F<x2p>.
379
380 [ List utility changes as a =head3 entry for each utility and =item
381 entries for each change
382 Use L<XXX> with program names to get proper documentation linking. ]
383
384 =head3 L<XXX>
385
386 =over 4
387
388 =item *
389
390 XXX
391
392 =back
393
394 =head1 Configuration and Compilation
395
396 XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
397 go here.  Any other changes to the Perl build process should be listed here.
398 However, any platform-specific changes should be listed in the
399 L</Platform Support> section, instead.
400
401 [ List changes as a =item entry ].
402
403 =over 4
404
405 =item *
406
407 XXX
408
409 =back
410
411 =head1 Testing
412
413 XXX Any significant changes to the testing of a freshly built perl should be
414 listed here.  Changes which create B<new> files in F<t/> go here as do any
415 large changes to the testing harness (e.g. when parallel testing was added).
416 Changes to existing files in F<t/> aren't worth summarizing, although the bugs
417 that they represent may be covered elsewhere.
418
419 [ List each test improvement as a =item entry ]
420
421 =over 4
422
423 =item *
424
425 XXX
426
427 =back
428
429 =head1 Platform Support
430
431 XXX Any changes to platform support should be listed in the sections below.
432
433 [ Within the sections, list each platform as a =item entry with specific
434 changes as paragraphs below it. ]
435
436 =head2 New Platforms
437
438 XXX List any platforms that this version of perl compiles on, that previous
439 versions did not.  These will either be enabled by new files in the F<hints/>
440 directories, or new subdirectories and F<README> files at the top level of the
441 source tree.
442
443 =over 4
444
445 =item XXX-some-platform
446
447 XXX
448
449 =back
450
451 =head2 Discontinued Platforms
452
453 XXX List any platforms that this version of perl no longer compiles on.
454
455 =over 4
456
457 =item XXX-some-platform
458
459 XXX
460
461 =back
462
463 =head2 Platform-Specific Notes
464
465 XXX List any changes for specific platforms.  This could include configuration
466 and compilation changes or changes in portability/compatibility.  However,
467 changes within modules for platforms should generally be listed in the
468 L</Modules and Pragmata> section.
469
470 =over 4
471
472 =item XXX-some-platform
473
474 XXX
475
476 =back
477
478 =head1 Internal Changes
479
480 XXX Changes which affect the interface available to C<XS> code go here.  Other
481 significant internal changes for future core maintainers should be noted as
482 well.
483
484 [ List each change as a =item entry ]
485
486 =over 4
487
488 =item *
489
490 XXX
491
492 =back
493
494 =head1 Selected Bug Fixes
495
496 XXX Important bug fixes in the core language are summarized here.  Bug fixes in
497 files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
498
499 [ List each fix as a =item entry ]
500
501 =over 4
502
503 =item *
504
505 -DPERL_GLOBAL_STRUCT builds now free the global struct B<after>
506 they've finished using it.
507
508 =back
509
510 =head1 Known Problems
511
512 XXX Descriptions of platform agnostic bugs we know we can't fix go here.  Any
513 tests that had to be C<TODO>ed for the release would be noted here.  Unfixed
514 platform specific bugs also go here.
515
516 [ List each fix as a =item entry ]
517
518 =over 4
519
520 =item *
521
522 XXX
523
524 =back
525
526 =head1 Obituary
527
528 XXX If any significant core contributor has died, we've added a short obituary
529 here.
530
531 =head1 Acknowledgements
532
533 XXX Generate this with:
534
535   perl Porting/acknowledgements.pl v5.17.8..HEAD
536
537 =head1 Reporting Bugs
538
539 If you find what you think is a bug, you might check the articles recently
540 posted to the comp.lang.perl.misc newsgroup and the perl bug database at
541 http://rt.perl.org/perlbug/ .  There may also be information at
542 http://www.perl.org/ , the Perl Home Page.
543
544 If you believe you have an unreported bug, please run the L<perlbug> program
545 included with your release.  Be sure to trim your bug down to a tiny but
546 sufficient test case.  Your bug report, along with the output of C<perl -V>,
547 will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
548
549 If the bug you are reporting has security implications, which make it
550 inappropriate to send to a publicly archived mailing list, then please send it
551 to perl5-security-report@perl.org.  This points to a closed subscription
552 unarchived mailing list, which includes all the core committers, who will be
553 able to help assess the impact of issues, figure out a resolution, and help
554 co-ordinate the release of patches to mitigate or fix the problem across all
555 platforms on which Perl is supported.  Please only use this address for
556 security issues in the Perl core, not for modules independently distributed on
557 CPAN.
558
559 =head1 SEE ALSO
560
561 The F<Changes> file for an explanation of how to view exhaustive details on
562 what changed.
563
564 The F<INSTALL> file for how to build Perl.
565
566 The F<README> file for general stuff.
567
568 The F<Artistic> and F<Copying> files for copyright information.
569
570 =cut