This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Eliminate the Makefile targets test_notty.valgrind and test_prep.valgrind.
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
38663f11
DG
5[ this is a template for a new perldelta file. Any text flagged as XXX needs
6to be processed before release. ]
7
8perldelta - what is new for perl v5.19.2
e128ab2c 9
4eabcf70 10=head1 DESCRIPTION
6db9054f 11
38663f11 12This document describes differences between the 5.19.1 release and the 5.19.2
e08634c5 13release.
6db9054f 14
38663f11
DG
15If you are upgrading from an earlier release such as 5.19.0, first read
16L<perl5191delta>, which describes differences between 5.19.0 and 5.19.1.
42bff0d9 17
38663f11 18=head1 Notice
42bff0d9 19
38663f11 20XXX Any important notices here
d69d1f92 21
38663f11 22=head1 Core Enhancements
287d2d21 23
38663f11
DG
24XXX New core language features go here. Summarize user-visible core language
25enhancements. Particularly prominent performance optimisations could go
26here, but most should go in the L</Performance Enhancements> section.
287d2d21 27
38663f11 28[ List each enhancement as a =head2 entry ]
287d2d21 29
38663f11 30=head1 Security
42bff0d9 31
38663f11
DG
32XXX Any security-related notices go here. In particular, any security
33vulnerabilities closed should be noted here rather than in the
34L</Selected Bug Fixes> section.
42bff0d9 35
38663f11 36[ List each security issue as a =head2 entry ]
42bff0d9 37
38663f11 38=head1 Incompatible Changes
42bff0d9 39
38663f11 40XXX For a release on a stable branch, this section aspires to be:
42bff0d9 41
38663f11
DG
42 There are no changes intentionally incompatible with 5.XXX.XXX
43 If any exist, they are bugs, and we request that you submit a
44 report. See L</Reporting Bugs> below.
42bff0d9 45
38663f11 46[ List each incompatible change as a =head2 entry ]
42bff0d9 47
38663f11 48=head1 Deprecations
42bff0d9 49
38663f11 50XXX Any deprecated features, syntax, modules etc. should be listed here.
42bff0d9 51
38663f11 52=head2 Module removals
42bff0d9 53
38663f11 54XXX Remove this section if inapplicable.
42bff0d9 55
8c33633d
FC
56The following modules will be removed from the core distribution in a
57future release, and will at that time need to be installed from CPAN.
58Distributions on CPAN which require these modules will need to list them as
59prerequisites.
42bff0d9 60
38663f11 61The core versions of these modules will now issue C<"deprecated">-category
8c33633d 62warnings to alert you to this fact. To silence these deprecation warnings,
38663f11 63install the modules in question from CPAN.
42bff0d9 64
38663f11 65Note that these are (with rare exceptions) fine modules that you are encouraged
8c33633d 66to continue to use. Their disinclusion from core primarily hinges on their
38663f11
DG
67necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
68not usually on concerns over their design.
42bff0d9 69
38663f11 70=over
42bff0d9 71
38663f11
DG
72XXX Note that deprecated modules should be listed here even if they are listed
73as an updated module in the L</Modules and Pragmata> section.
42bff0d9 74
38663f11 75=back
42bff0d9 76
38663f11 77[ List each other deprecation as a =head2 entry ]
42bff0d9 78
38663f11 79=head1 Performance Enhancements
42bff0d9 80
38663f11
DG
81XXX Changes which enhance performance without changing behaviour go here.
82There may well be none in a stable release.
42bff0d9 83
38663f11 84[ List each enhancement as a =item entry ]
42bff0d9 85
38663f11 86=over 4
42bff0d9
DG
87
88=item *
89
38663f11 90XXX
42bff0d9 91
38663f11 92=back
42bff0d9 93
38663f11 94=head1 Modules and Pragmata
42bff0d9 95
38663f11
DG
96XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
97go here. If Module::CoreList is updated, generate an initial draft of the
98following sections using F<Porting/corelist-perldelta.pl>, which prints stub
99entries to STDOUT. Results can be pasted in place of the '=head2' entries
100below. A paragraph summary for important changes should then be added by hand.
101In an ideal world, dual-life modules would have a F<Changes> file that could be
102cribbed.
42bff0d9 103
38663f11 104[ Within each section, list entries as a =item entry ]
42bff0d9 105
38663f11 106=head2 New Modules and Pragmata
42bff0d9 107
38663f11 108=over 4
42bff0d9
DG
109
110=item *
111
38663f11 112XXX
42bff0d9 113
38663f11 114=back
42bff0d9 115
38663f11 116=head2 Updated Modules and Pragmata
42bff0d9 117
38663f11 118=over 4
42bff0d9
DG
119
120=item *
121
893b07a1
NC
122L<ExtUtils::Embed> has been upgraded from version 1.30 to 1.31
123
124The generated C<C> code now incorporates bug fixes present in
125F<miniperlmain.c>, and has whitespace changes. It now uses
126C<#include "..."> for header files instead of C<< #include <...> >>.
127This should not make any difference, unless programs embedding C<libperl>
128happen to have local and incompatible files named F<EXTERN.h>, F<XSUB.h> or
129F<perl.h>, as these will now be picked up instead of the installed Perl
130headers.
131
132=item *
133
134L<ExtUtils::Miniperl> has been upgraded and given a version of 1.
135Previously it did not have a version number.
136
137C<writemain()> now takes an optional first argument. A reference to a scalar
138is treated as a filename to be opened and written to. Any other reference is
139used as the filehandle to write to. Otherwise the existing default remains,
140to write to C<STDOUT>.
141
142C<writemain()> has been refactored to use functions from L<ExtUtils::Embed>,
143reducing code size and duplication. The internal function C<canon()> has been
144deleted.
145
146=item *
147
70ba8092
TC
148L<POSIX> has been upgraded from version 1.33 to 1.34.
149
150C<POSIX::AUTOLOAD> will no longer infinitely recurse if the shared
151object fails to load.
42bff0d9 152
6e4979f3
TC
153=item *
154
155L<Storable> has been upgraded from version 2.43 to 2.44.
156
157Calling C<STORABLE_attach> hooks no longer leaks memory. [perl #118829]
158
38663f11 159=back
42bff0d9 160
38663f11 161=head2 Removed Modules and Pragmata
42bff0d9 162
38663f11 163=over 4
42bff0d9
DG
164
165=item *
166
38663f11 167XXX
42bff0d9 168
38663f11 169=back
42bff0d9 170
38663f11 171=head1 Documentation
42bff0d9 172
38663f11
DG
173XXX Changes to files in F<pod/> go here. Consider grouping entries by
174file and be sure to link to the appropriate page, e.g. L<perlfunc>.
42bff0d9 175
38663f11 176=head2 New Documentation
42bff0d9 177
38663f11 178XXX Changes which create B<new> files in F<pod/> go here.
42bff0d9 179
38663f11 180=head3 L<XXX>
42bff0d9 181
38663f11 182XXX Description of the purpose of the new file here
42bff0d9 183
38663f11 184=head2 Changes to Existing Documentation
42bff0d9 185
38663f11
DG
186XXX Changes which significantly change existing files in F<pod/> go here.
187However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
188section.
dbd04185 189
41f6d116 190=head3 L<perlexperiment>
dbd04185 191
38663f11 192=over 4
583aa5c2 193
1fdd5e53
KW
194=item *
195
41f6d116
RS
196Code in regular expressions, regular expression backtracking verbs,
197and lvalue subroutines are no longer listed as experimental. (This
198also affects L<perlre> and L<perlsub>.)
42bff0d9 199
38663f11 200=back
42bff0d9 201
38663f11 202=head1 Diagnostics
42bff0d9 203
38663f11
DG
204The following additions or changes have been made to diagnostic output,
205including warnings and fatal error messages. For the complete list of
206diagnostic messages, see L<perldiag>.
42bff0d9 207
38663f11
DG
208XXX New or changed warnings emitted by the core's C<C> code go here. Also
209include any changes in L<perldiag> that reconcile it to the C<C> code.
42bff0d9 210
38663f11 211=head2 New Diagnostics
42bff0d9 212
38663f11
DG
213XXX Newly added diagnostic messages go under here, separated into New Errors
214and New Warnings
42bff0d9 215
38663f11 216=head3 New Errors
42bff0d9 217
38663f11 218=over 4
42bff0d9
DG
219
220=item *
221
38663f11 222XXX L<message|perldiag/"message">
1fdd5e53 223
583aa5c2
RS
224=back
225
38663f11 226=head3 New Warnings
583aa5c2 227
38663f11 228=over 4
583aa5c2 229
b8a02ff1 230=item *
583aa5c2 231
38663f11 232XXX L<message|perldiag/"message">
583aa5c2 233
b8a02ff1 234=back
583aa5c2 235
38663f11 236=head2 Changes to Existing Diagnostics
96d496e4 237
38663f11 238XXX Changes (i.e. rewording) of diagnostic messages go here
b8a02ff1 239
38663f11 240=over 4
b8a02ff1
DG
241
242=item *
243
38663f11 244XXX Describe change here
96d496e4
RS
245
246=back
247
38663f11 248=head1 Utility Changes
d7bfa554 249
38663f11
DG
250XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
251Most of these are built within the directories F<utils> and F<x2p>.
d7bfa554 252
38663f11
DG
253[ List utility changes as a =head3 entry for each utility and =item
254entries for each change
255Use L<XXX> with program names to get proper documentation linking. ]
d7bfa554 256
38663f11 257=head3 L<XXX>
583aa5c2
RS
258
259=over 4
1993add8 260
e9912eaa 261=item *
ec985017 262
38663f11 263XXX
583aa5c2
RS
264
265=back
266
38663f11 267=head1 Configuration and Compilation
583aa5c2 268
38663f11
DG
269XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
270go here. Any other changes to the Perl build process should be listed here.
271However, any platform-specific changes should be listed in the
272L</Platform Support> section, instead.
583aa5c2 273
38663f11 274[ List changes as a =item entry ].
583aa5c2
RS
275
276=over 4
71e6aba6 277
d5f315e8
KW
278=item *
279
38663f11 280XXX
d5f315e8 281
337fb649 282=back
2426c394 283
38663f11 284=head1 Testing
357b01df 285
38663f11
DG
286XXX Any significant changes to the testing of a freshly built perl should be
287listed here. Changes which create B<new> files in F<t/> go here as do any
288large changes to the testing harness (e.g. when parallel testing was added).
289Changes to existing files in F<t/> aren't worth summarizing, although the bugs
290that they represent may be covered elsewhere.
4724da03 291
38663f11 292[ List each test improvement as a =item entry ]
357b01df 293
583aa5c2 294=over 4
357b01df 295
583aa5c2 296=item *
357b01df 297
38663f11 298XXX
4724da03 299
38663f11 300=back
4724da03 301
38663f11 302=head1 Platform Support
4724da03 303
38663f11 304XXX Any changes to platform support should be listed in the sections below.
4724da03 305
38663f11
DG
306[ Within the sections, list each platform as a =item entry with specific
307changes as paragraphs below it. ]
4724da03 308
38663f11 309=head2 New Platforms
4724da03 310
38663f11
DG
311XXX List any platforms that this version of perl compiles on, that previous
312versions did not. These will either be enabled by new files in the F<hints/>
313directories, or new subdirectories and F<README> files at the top level of the
314source tree.
4724da03 315
38663f11 316=over 4
357b01df 317
38663f11 318=item XXX-some-platform
583aa5c2 319
38663f11 320XXX
4724da03 321
38663f11 322=back
583aa5c2 323
583aa5c2
RS
324=head2 Discontinued Platforms
325
38663f11
DG
326XXX List any platforms that this version of perl no longer compiles on.
327
583aa5c2
RS
328=over 4
329
38663f11 330=item XXX-some-platform
d7bfa554 331
38663f11 332XXX
d7bfa554 333
583aa5c2
RS
334=back
335
336=head2 Platform-Specific Notes
337
38663f11
DG
338XXX List any changes for specific platforms. This could include configuration
339and compilation changes or changes in portability/compatibility. However,
340changes within modules for platforms should generally be listed in the
341L</Modules and Pragmata> section.
583aa5c2 342
38663f11 343=over 4
a34da6c4 344
3a0b4597 345=item MidnightBSD
a34da6c4 346
3a0b4597 347C<objformat> was removed from version 0.4-RELEASE of MidnightBSD and had been
8c33633d
FC
348deprecated on earlier versions. This caused the build environment to be
349erroneously configured for C<a.out> rather than C<elf>. This has been now
3a0b4597 350been corrected.
a34da6c4 351
583aa5c2
RS
352=back
353
354=head1 Internal Changes
355
38663f11
DG
356XXX Changes which affect the interface available to C<XS> code go here. Other
357significant internal changes for future core maintainers should be noted as
358well.
583aa5c2 359
38663f11 360[ List each change as a =item entry ]
583aa5c2 361
38663f11 362=over 4
1de7c8e6 363
d7bfa554
DG
364=item *
365
eca6ff41
NC
366The Makefile shortcut targets for many rarely (or never) used testing and
367profiling targets have been removed, or merged into the only other Makefile
8c33633d 368target that uses them. Specifically, these targets are gone, along with
eca6ff41
NC
369documentation that referenced them or explained how to use them:
370
af94b52d
KW
371 check.third check.utf16 check.utf8 coretest minitest.prep
372 minitest.utf16 perl.config.dashg perl.config.dashpg
373 perl.config.gcov perl.gcov perl.gprof perl.gprof.config perl.pixie
374 perl.pixie.atom perl.pixie.config perl.pixie.irix perl.third
375 perl.third.config pureperl purecovperl quantperl test.deparse
376 test.taintwarn test.third test.torture test.utf16 test.utf8
377 test_notty.deparse test_notty.third test_prep.third torturetest
378 ucheck ucheck.third ucheck.utf16 ucheck.valgrind utest utest.third
379 utest.utf16 utest.valgrind
eca6ff41
NC
380
381It's still possible to run the relevant commands by "hand" - no underlying
382functionality has been removed.
d7bfa554 383
9c800862
KW
384=item *
385
386It is now possible to keep Perl from initializing locale handling.
387For the most part, Perl doesn't pay attention to locale. (See
388L<perllocale>.) Nonetheless, until now, on startup, it has always
389initialized locale handling to the system default, just in case the
390program being executed ends up using locales. (This is one of the first
391things a locale-aware program should do, long before Perl knows if it
392will actually be needed or not.) This works well except when Perl is
393embedded in another application which wants a locale that isn't the
394system default. Now, if the environment variable
395C<PERL_SKIP_LOCALE_INIT> is set at the time Perl is started, this
396initialization step is skipped. Prior to this, on Windows platforms,
397the only workaround for this deficiency was to use a hacked-up copy of
398internal Perl code. Applications that need to use older Perls can
399discover if the embedded Perl they are using needs the workaround by
400testing that the C preprocessor symbol C<HAS_SKIP_LOCALE_INIT> is not
401defined. (RT #38193)
402
583aa5c2
RS
403=back
404
405=head1 Selected Bug Fixes
406
38663f11
DG
407XXX Important bug fixes in the core language are summarized here. Bug fixes in
408files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
acfe52c8 409
38663f11 410[ List each fix as a =item entry ]
a2ef523e 411
38663f11 412=over 4
42dd67ca 413
e0d46238
FC
414=item *
415
9c800862
KW
416There have been several fixes related to Perl's handling of locales. RT
417#38193 was described above in L</Internal Changes>.
418Also fixed is #112208 in which the error string in C<$!> displayed as
419garbage in many UTF-8 locales;
420#118197, where the radix (decimal point) character had to be an ASCII
421character (which doesn't work for some non-Western languages);
422and #115808] in which C<POSIX::setlocale()> on failure returned an
423C<undef> which didn't warn about not being defined even if those
424warnings were enabled.
d7bfa554 425
38663f11 426=back
d7bfa554 427
38663f11 428=head1 Known Problems
6810f0ad 429
38663f11
DG
430XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
431tests that had to be C<TODO>ed for the release would be noted here. Unfixed
432platform specific bugs also go here.
6810f0ad 433
38663f11 434[ List each fix as a =item entry ]
0e417e4d 435
38663f11 436=over 4
14fd9356
FC
437
438=item *
439
38663f11 440XXX
0e417e4d 441
38663f11 442=back
583aa5c2 443
38663f11 444=head1 Obituary
583aa5c2 445
38663f11
DG
446XXX If any significant core contributor has died, we've added a short obituary
447here.
583aa5c2 448
583aa5c2 449=head1 Acknowledgements
a75569c0 450
38663f11
DG
451XXX Generate this with:
452
453 perl Porting/acknowledgements.pl v5.19.1..HEAD
f5b73711 454
44691e6f
AB
455=head1 Reporting Bugs
456
e08634c5
SH
457If you find what you think is a bug, you might check the articles recently
458posted to the comp.lang.perl.misc newsgroup and the perl bug database at
459http://rt.perl.org/perlbug/ . There may also be information at
460http://www.perl.org/ , the Perl Home Page.
44691e6f 461
e08634c5
SH
462If you believe you have an unreported bug, please run the L<perlbug> program
463included with your release. Be sure to trim your bug down to a tiny but
464sufficient test case. Your bug report, along with the output of C<perl -V>,
465will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
466
467If the bug you are reporting has security implications, which make it
e08634c5
SH
468inappropriate to send to a publicly archived mailing list, then please send it
469to perl5-security-report@perl.org. This points to a closed subscription
470unarchived mailing list, which includes all the core committers, who will be
471able to help assess the impact of issues, figure out a resolution, and help
f9001595 472co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
473platforms on which Perl is supported. Please only use this address for
474security issues in the Perl core, not for modules independently distributed on
475CPAN.
44691e6f
AB
476
477=head1 SEE ALSO
478
e08634c5
SH
479The F<Changes> file for an explanation of how to view exhaustive details on
480what changed.
44691e6f
AB
481
482The F<INSTALL> file for how to build Perl.
483
484The F<README> file for general stuff.
485
486The F<Artistic> and F<Copying> files for copyright information.
487
488=cut