This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #118829] Memory leaks in STORABLE_attach
[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
38663f11 153=back
42bff0d9 154
38663f11 155=head2 Removed Modules and Pragmata
42bff0d9 156
38663f11 157=over 4
42bff0d9
DG
158
159=item *
160
38663f11 161XXX
42bff0d9 162
38663f11 163=back
42bff0d9 164
38663f11 165=head1 Documentation
42bff0d9 166
38663f11
DG
167XXX Changes to files in F<pod/> go here. Consider grouping entries by
168file and be sure to link to the appropriate page, e.g. L<perlfunc>.
42bff0d9 169
38663f11 170=head2 New Documentation
42bff0d9 171
38663f11 172XXX Changes which create B<new> files in F<pod/> go here.
42bff0d9 173
38663f11 174=head3 L<XXX>
42bff0d9 175
38663f11 176XXX Description of the purpose of the new file here
42bff0d9 177
38663f11 178=head2 Changes to Existing Documentation
42bff0d9 179
38663f11
DG
180XXX Changes which significantly change existing files in F<pod/> go here.
181However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
182section.
dbd04185 183
41f6d116 184=head3 L<perlexperiment>
dbd04185 185
38663f11 186=over 4
583aa5c2 187
1fdd5e53
KW
188=item *
189
41f6d116
RS
190Code in regular expressions, regular expression backtracking verbs,
191and lvalue subroutines are no longer listed as experimental. (This
192also affects L<perlre> and L<perlsub>.)
42bff0d9 193
38663f11 194=back
42bff0d9 195
38663f11 196=head1 Diagnostics
42bff0d9 197
38663f11
DG
198The following additions or changes have been made to diagnostic output,
199including warnings and fatal error messages. For the complete list of
200diagnostic messages, see L<perldiag>.
42bff0d9 201
38663f11
DG
202XXX New or changed warnings emitted by the core's C<C> code go here. Also
203include any changes in L<perldiag> that reconcile it to the C<C> code.
42bff0d9 204
38663f11 205=head2 New Diagnostics
42bff0d9 206
38663f11
DG
207XXX Newly added diagnostic messages go under here, separated into New Errors
208and New Warnings
42bff0d9 209
38663f11 210=head3 New Errors
42bff0d9 211
38663f11 212=over 4
42bff0d9
DG
213
214=item *
215
38663f11 216XXX L<message|perldiag/"message">
1fdd5e53 217
583aa5c2
RS
218=back
219
38663f11 220=head3 New Warnings
583aa5c2 221
38663f11 222=over 4
583aa5c2 223
b8a02ff1 224=item *
583aa5c2 225
38663f11 226XXX L<message|perldiag/"message">
583aa5c2 227
b8a02ff1 228=back
583aa5c2 229
38663f11 230=head2 Changes to Existing Diagnostics
96d496e4 231
38663f11 232XXX Changes (i.e. rewording) of diagnostic messages go here
b8a02ff1 233
38663f11 234=over 4
b8a02ff1
DG
235
236=item *
237
38663f11 238XXX Describe change here
96d496e4
RS
239
240=back
241
38663f11 242=head1 Utility Changes
d7bfa554 243
38663f11
DG
244XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
245Most of these are built within the directories F<utils> and F<x2p>.
d7bfa554 246
38663f11
DG
247[ List utility changes as a =head3 entry for each utility and =item
248entries for each change
249Use L<XXX> with program names to get proper documentation linking. ]
d7bfa554 250
38663f11 251=head3 L<XXX>
583aa5c2
RS
252
253=over 4
1993add8 254
e9912eaa 255=item *
ec985017 256
38663f11 257XXX
583aa5c2
RS
258
259=back
260
38663f11 261=head1 Configuration and Compilation
583aa5c2 262
38663f11
DG
263XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
264go here. Any other changes to the Perl build process should be listed here.
265However, any platform-specific changes should be listed in the
266L</Platform Support> section, instead.
583aa5c2 267
38663f11 268[ List changes as a =item entry ].
583aa5c2
RS
269
270=over 4
71e6aba6 271
d5f315e8
KW
272=item *
273
38663f11 274XXX
d5f315e8 275
337fb649 276=back
2426c394 277
38663f11 278=head1 Testing
357b01df 279
38663f11
DG
280XXX Any significant changes to the testing of a freshly built perl should be
281listed here. Changes which create B<new> files in F<t/> go here as do any
282large changes to the testing harness (e.g. when parallel testing was added).
283Changes to existing files in F<t/> aren't worth summarizing, although the bugs
284that they represent may be covered elsewhere.
4724da03 285
38663f11 286[ List each test improvement as a =item entry ]
357b01df 287
583aa5c2 288=over 4
357b01df 289
583aa5c2 290=item *
357b01df 291
38663f11 292XXX
4724da03 293
38663f11 294=back
4724da03 295
38663f11 296=head1 Platform Support
4724da03 297
38663f11 298XXX Any changes to platform support should be listed in the sections below.
4724da03 299
38663f11
DG
300[ Within the sections, list each platform as a =item entry with specific
301changes as paragraphs below it. ]
4724da03 302
38663f11 303=head2 New Platforms
4724da03 304
38663f11
DG
305XXX List any platforms that this version of perl compiles on, that previous
306versions did not. These will either be enabled by new files in the F<hints/>
307directories, or new subdirectories and F<README> files at the top level of the
308source tree.
4724da03 309
38663f11 310=over 4
357b01df 311
38663f11 312=item XXX-some-platform
583aa5c2 313
38663f11 314XXX
4724da03 315
38663f11 316=back
583aa5c2 317
583aa5c2
RS
318=head2 Discontinued Platforms
319
38663f11
DG
320XXX List any platforms that this version of perl no longer compiles on.
321
583aa5c2
RS
322=over 4
323
38663f11 324=item XXX-some-platform
d7bfa554 325
38663f11 326XXX
d7bfa554 327
583aa5c2
RS
328=back
329
330=head2 Platform-Specific Notes
331
38663f11
DG
332XXX List any changes for specific platforms. This could include configuration
333and compilation changes or changes in portability/compatibility. However,
334changes within modules for platforms should generally be listed in the
335L</Modules and Pragmata> section.
583aa5c2 336
38663f11 337=over 4
a34da6c4 338
3a0b4597 339=item MidnightBSD
a34da6c4 340
3a0b4597 341C<objformat> was removed from version 0.4-RELEASE of MidnightBSD and had been
8c33633d
FC
342deprecated on earlier versions. This caused the build environment to be
343erroneously configured for C<a.out> rather than C<elf>. This has been now
3a0b4597 344been corrected.
a34da6c4 345
583aa5c2
RS
346=back
347
348=head1 Internal Changes
349
38663f11
DG
350XXX Changes which affect the interface available to C<XS> code go here. Other
351significant internal changes for future core maintainers should be noted as
352well.
583aa5c2 353
38663f11 354[ List each change as a =item entry ]
583aa5c2 355
38663f11 356=over 4
1de7c8e6 357
d7bfa554
DG
358=item *
359
eca6ff41
NC
360The Makefile shortcut targets for many rarely (or never) used testing and
361profiling targets have been removed, or merged into the only other Makefile
8c33633d 362target that uses them. Specifically, these targets are gone, along with
eca6ff41
NC
363documentation that referenced them or explained how to use them:
364
af94b52d
KW
365 check.third check.utf16 check.utf8 coretest minitest.prep
366 minitest.utf16 perl.config.dashg perl.config.dashpg
367 perl.config.gcov perl.gcov perl.gprof perl.gprof.config perl.pixie
368 perl.pixie.atom perl.pixie.config perl.pixie.irix perl.third
369 perl.third.config pureperl purecovperl quantperl test.deparse
370 test.taintwarn test.third test.torture test.utf16 test.utf8
371 test_notty.deparse test_notty.third test_prep.third torturetest
372 ucheck ucheck.third ucheck.utf16 ucheck.valgrind utest utest.third
373 utest.utf16 utest.valgrind
eca6ff41
NC
374
375It's still possible to run the relevant commands by "hand" - no underlying
376functionality has been removed.
d7bfa554 377
583aa5c2
RS
378=back
379
380=head1 Selected Bug Fixes
381
38663f11
DG
382XXX Important bug fixes in the core language are summarized here. Bug fixes in
383files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
acfe52c8 384
38663f11 385[ List each fix as a =item entry ]
a2ef523e 386
38663f11 387=over 4
42dd67ca 388
e0d46238
FC
389=item *
390
38663f11 391XXX
d7bfa554 392
38663f11 393=back
d7bfa554 394
38663f11 395=head1 Known Problems
6810f0ad 396
38663f11
DG
397XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
398tests that had to be C<TODO>ed for the release would be noted here. Unfixed
399platform specific bugs also go here.
6810f0ad 400
38663f11 401[ List each fix as a =item entry ]
0e417e4d 402
38663f11 403=over 4
14fd9356
FC
404
405=item *
406
38663f11 407XXX
0e417e4d 408
38663f11 409=back
583aa5c2 410
38663f11 411=head1 Obituary
583aa5c2 412
38663f11
DG
413XXX If any significant core contributor has died, we've added a short obituary
414here.
583aa5c2 415
583aa5c2 416=head1 Acknowledgements
a75569c0 417
38663f11
DG
418XXX Generate this with:
419
420 perl Porting/acknowledgements.pl v5.19.1..HEAD
f5b73711 421
44691e6f
AB
422=head1 Reporting Bugs
423
e08634c5
SH
424If you find what you think is a bug, you might check the articles recently
425posted to the comp.lang.perl.misc newsgroup and the perl bug database at
426http://rt.perl.org/perlbug/ . There may also be information at
427http://www.perl.org/ , the Perl Home Page.
44691e6f 428
e08634c5
SH
429If you believe you have an unreported bug, please run the L<perlbug> program
430included with your release. Be sure to trim your bug down to a tiny but
431sufficient test case. Your bug report, along with the output of C<perl -V>,
432will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
433
434If the bug you are reporting has security implications, which make it
e08634c5
SH
435inappropriate to send to a publicly archived mailing list, then please send it
436to perl5-security-report@perl.org. This points to a closed subscription
437unarchived mailing list, which includes all the core committers, who will be
438able to help assess the impact of issues, figure out a resolution, and help
f9001595 439co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
440platforms on which Perl is supported. Please only use this address for
441security issues in the Perl core, not for modules independently distributed on
442CPAN.
44691e6f
AB
443
444=head1 SEE ALSO
445
e08634c5
SH
446The F<Changes> file for an explanation of how to view exhaustive details on
447what changed.
44691e6f
AB
448
449The F<INSTALL> file for how to build Perl.
450
451The F<README> file for general stuff.
452
453The F<Artistic> and F<Copying> files for copyright information.
454
455=cut