This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Increase SDBM_File’s version
[perl5.git] / pod / perldelta.pod
CommitLineData
4c793fe3
FR
1=encoding utf8
2
c39f7439
FC
3=for comment
4This has been completed up to 582b18310.
5
4c793fe3
FR
6=head1 NAME
7
8f97a47a
TM
8[ this is a template for a new perldelta file. Any text flagged as
9XXX needs to be processed before release. ]
4c793fe3 10
8f97a47a 11perldelta - what is new for perl v5.13.7
a12cf05f 12
8f97a47a 13=head1 DESCRIPTION
fb121860 14
8f97a47a
TM
15This document describes differences between the 5.13.6 release and
16the 5.13.7 release.
eb32ee41 17
8f97a47a
TM
18If you are upgrading from an earlier release such as 5.13.5, first read
19L<perl5136delta>, which describes differences between 5.13.5 and
205.13.6.
eb32ee41 21
8f97a47a 22=head1 Notice
eb32ee41 23
8f97a47a 24XXX Any important notices here
5e26bbbe 25
8f97a47a 26=head1 Core Enhancements
5e26bbbe 27
8f97a47a
TM
28XXX New core language features go here. Summarise user-visible core language
29enhancements. Particularly prominent performance optimisations could go
30here, but most should go in the L</Performance Enhancements> section.
5e26bbbe 31
8f97a47a 32[ List each enhancement as a =head2 entry ]
4f65bc30 33
c035a075
DG
34=head2 Single term prototype
35
36The C<+> prototype is a special alternative to C<$> that will act like
37C<\[@%]> when given a literal array or hash variable, but will otherwise
38force scalar context on the argument. This is useful for functions which
39should accept either a literal array or an array reference as the argument:
40
41 sub smartpush (+@) {
42 my $aref = shift;
43 die "Not an array or arrayref" unless ref $aref eq 'ARRAY';
44 push @$aref, @_;
45 }
46
47When using the C<+> prototype, your function must check that the argument
48is of an acceptable type.
49
b7bd32cc
FC
50=head2 C<use re '/flags';>
51
52The C<re> pragma now has the ability to turn on regular expression flags
53till the end of the lexical scope:
54
55 use re '/x';
56 "foo" =~ / (.+) /; # /x implied
57
58See L<re/'/flags' mode> for details.
59
8f97a47a 60=head1 Security
4f65bc30 61
8f97a47a
TM
62XXX Any security-related notices go here. In particular, any security
63vulnerabilities closed should be noted here rather than in the
64L</Selected Bug Fixes> section.
0eec0a4c 65
8f97a47a 66[ List each security issue as a =head2 entry ]
0eec0a4c 67
4c793fe3
FR
68=head1 Incompatible Changes
69
8f97a47a 70XXX For a release on a stable branch, this section aspires to be:
9de15fec 71
8f97a47a
TM
72 There are no changes intentionally incompatible with 5.XXX.XXX. If any
73 exist, they are bugs and reports are welcome.
9de15fec 74
8f97a47a 75[ List each incompatible change as a =head2 entry ]
9de15fec 76
8f97a47a 77=head1 Deprecations
6904a83f 78
8f97a47a
TM
79XXX Any deprecated features, syntax, modules etc. should be listed here.
80In particular, deprecated modules should be listed here even if they are
81listed as an updated module in the L</Modules and Pragmata> section.
6904a83f 82
8f97a47a 83[ List each deprecation as a =head2 entry ]
afa74577 84
4c793fe3
FR
85=head1 Performance Enhancements
86
8f97a47a
TM
87XXX Changes which enhance performance without changing behaviour go here. There
88may well be none in a stable release.
4c793fe3 89
8f97a47a 90[ List each enhancement as a =item entry ]
e2babdfb 91
8f97a47a 92=over 4
e2babdfb 93
b141c43c
FR
94=item *
95
8f97a47a 96XXX
b141c43c 97
4c793fe3
FR
98=back
99
100=head1 Modules and Pragmata
101
8f97a47a
TM
102XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
103go here. If Module::CoreList is updated, generate an initial draft of the
104following sections using F<Porting/corelist-perldelta.pl>, which prints stub
105entries to STDOUT. Results can be pasted in place of the '=head2' entries
106below. A paragraph summary for important changes should then be added by hand.
107In an ideal world, dual-life modules would have a F<Changes> file that could be
108cribbed.
e2941eb0 109
8f97a47a 110[ Within each section, list entries as a =item entry ]
e2941eb0 111
8f97a47a 112=head2 New Modules and Pragmata
25e68b8b 113
8f97a47a 114=over 4
463da0ac
CBW
115
116=item *
117
8f97a47a 118XXX
6481ebaf 119
8f97a47a 120=back
6481ebaf 121
8f97a47a 122=head2 Updated Modules and Pragmata
6481ebaf 123
8f97a47a 124=over 4
ac4c9720
CBW
125
126=item *
127
9f1eb87f
CBW
128C<Archive::Extract> has been upgraded from 0.44 to 0.46
129
130Resolves an issue with NetBSD-current and its new unzip
131executable.
132
133=item *
134
b7bd32cc
FC
135XXX What should the version be?
136
137C<B::Deparse> has been upgraded from 0.99 to ???.
138
139It fixes deparsing of C<our> followed by a variable with funny characters
140(as permitted under the C<utf8> pragma)
141L<[perl #33752]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=33752>.
142
143=item *
144
145C<charnames> has been upgraded from 1.16 to 1.17.
146
147The algorithm used by C<charnames::viacode> to look up names has been
148rewritten to run faster
149L<[perl #75448]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=75448>.
150
151=item *
152
07be2ace
CBW
153C<CPAN> has been upgraded from 1.94_61 to 1.94_62
154
155=item *
156
c39f7439
FC
157C<GDBM_File> has been upgraded from 1.11 to 1.12.
158
159This fixes a memory leak when DBM filters are used.
160
161=item *
162
e1be28b4
TR
163C<Locale::Maketext> has been upgraded from 1.16 to 1.17
164
165=item *
166
c39f7439
FC
167C<NDBM_File> has been upgraded from 1.09 to 1.10.
168
169This fixes a memory leak when DBM filters are used.
170
171=item *
172
173C<ODBM_File> has been upgraded from 1.08 to 1.09.
174
175This fixes a memory leak when DBM filters are used.
176
177=item *
178
b7bd32cc
FC
179C<re> has been upgraded from 0.13 to 0.14, for the sake of the new
180C<use re "/flags"> pragma.
dfa4c013 181
8f97a47a 182=back
dfa4c013 183
8f97a47a 184=head2 Removed Modules and Pragmata
c02ee425 185
8f97a47a 186=over 4
1393fe00
CBW
187
188=item *
189
8f97a47a 190XXX
c9a84c8b 191
8f97a47a 192=back
918184d1 193
8f97a47a 194=head1 Documentation
918184d1 195
8f97a47a
TM
196XXX Changes to files in F<pod/> go here. Consider grouping entries by
197file and be sure to link to the appropriate page, e.g. L<perlfunc>.
918184d1 198
8f97a47a 199=head2 New Documentation
dca41e57 200
8f97a47a 201XXX Changes which create B<new> files in F<pod/> go here.
dca41e57 202
8f97a47a 203=head3 L<XXX>
c9a84c8b 204
8f97a47a 205XXX Description of the purpose of the new file here
4c793fe3 206
ee0887a9 207=head2 Changes to Existing Documentation
fc1418b7 208
8f97a47a
TM
209XXX Changes which significantly change existing files in F<pod/> go here.
210However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
211section.
212
213=head3 L<XXX>
e2babdfb 214
7bc3efda
SH
215=over 4
216
217=item *
218
8f97a47a 219XXX Description of the change here
7bc3efda
SH
220
221=back
e2babdfb 222
4c793fe3
FR
223=head1 Diagnostics
224
225The following additions or changes have been made to diagnostic output,
226including warnings and fatal error messages. For the complete list of
227diagnostic messages, see L<perldiag>.
228
8f97a47a
TM
229XXX New or changed warnings emitted by the core's C<C> code go here. Also
230include any changes in L<perldiag> that reconcile it to the C<C> code.
4c793fe3 231
8f97a47a 232[ Within each section, list entries as a =item entry ]
4c793fe3 233
8f97a47a 234=head2 New Diagnostics
4c793fe3 235
8f97a47a 236XXX Newly added diagnostic messages go here
dc08898c
FC
237
238=over 4
239
240=item *
241
8f97a47a 242XXX
dc08898c
FC
243
244=back
245
8f97a47a 246=head2 Changes to Existing Diagnostics
4c793fe3 247
8f97a47a 248XXX Changes (i.e. rewording) of diagnostic messages go here
0c692eed 249
ee0887a9 250=over 4
0c692eed
FR
251
252=item *
253
8f97a47a 254XXX
4c793fe3
FR
255
256=back
257
8f97a47a 258=head1 Utility Changes
810f3b7c 259
8f97a47a
TM
260XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
261here. Most of these are built within the directories F<utils> and F<x2p>.
a9e68e41 262
8f97a47a
TM
263[ List utility changes as a =head3 entry for each utility and =item
264entries for each change
265Use L<XXX> with program names to get proper documentation linking. ]
a9e68e41 266
8f97a47a 267=head3 L<XXX>
85318b69 268
ee0887a9 269=over 4
80b6a949 270
e2babdfb
FR
271=item *
272
8f97a47a 273XXX
9ae8c3d9 274
ee0887a9 275=back
e2babdfb 276
8f97a47a 277=head1 Configuration and Compilation
e2babdfb 278
8f97a47a
TM
279XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
280go here. Any other changes to the Perl build process should be listed here.
281However, any platform-specific changes should be listed in the
282L</Platform Support> section, instead.
346e4e56 283
8f97a47a 284[ List changes as a =item entry ].
78846812 285
8f97a47a 286=over 4
e54f3f30
FC
287
288=item *
289
8f97a47a 290XXX
e54f3f30 291
8f97a47a 292=back
a5763045 293
8f97a47a 294=head1 Testing
5a9a79a4 295
8f97a47a
TM
296XXX Any significant changes to the testing of a freshly built perl should be
297listed here. Changes which create B<new> files in F<t/> go here as do any
298large changes to the testing harness (e.g. when parallel testing was added).
299Changes to existing files in F<t/> aren't worth summarising, although the bugs
300that they represent may be covered elsewhere.
5a9a79a4 301
8f97a47a 302[ List each test improvement as a =item entry ]
a7e93501 303
8f97a47a 304=over 4
a7e93501
FC
305
306=item *
307
8f97a47a 308XXX
a7e93501 309
8f97a47a 310=back
a7e93501 311
8f97a47a 312=head1 Platform Support
a7e93501 313
8f97a47a 314XXX Any changes to platform support should be listed in the sections below.
a7e93501 315
8f97a47a
TM
316[ Within the sections, list each platform as a =item entry with specific
317changes as paragraphs below it. ]
a7e93501 318
8f97a47a 319=head2 New Platforms
d4a59e54 320
8f97a47a
TM
321XXX List any platforms that this version of perl compiles on, that previous
322versions did not. These will either be enabled by new files in the F<hints/>
323directories, or new subdirectories and F<README> files at the top level of the
324source tree.
d4a59e54 325
8f97a47a 326=over 4
dc08898c 327
8f97a47a 328=item XXX-some-platform
dc08898c 329
8f97a47a 330XXX
dc08898c 331
8f97a47a 332=back
6904a83f 333
8f97a47a 334=head2 Discontinued Platforms
6904a83f 335
8f97a47a 336XXX List any platforms that this version of perl no longer compiles on.
6904a83f 337
8f97a47a 338=over 4
cffb3698 339
8f97a47a 340=item XXX-some-platform
ab4c2c27 341
8f97a47a 342XXX
ab4c2c27 343
8f97a47a 344=back
be1cc451 345
8f97a47a 346=head2 Platform-Specific Notes
be1cc451 347
8f97a47a
TM
348XXX List any changes for specific platforms. This could include configuration
349and compilation changes or changes in portability/compatibility. However,
350changes within modules for platforms should generally be listed in the
351L</Modules and Pragmata> section.
b20c4ee1 352
8f97a47a 353=over 4
b20c4ee1 354
8f97a47a 355=item XXX-some-platform
afa74577 356
8f97a47a 357XXX
afa74577 358
8f97a47a 359=back
c8bbf675 360
8f97a47a 361=head1 Internal Changes
c8bbf675 362
8f97a47a
TM
363XXX Changes which affect the interface available to C<XS> code go here.
364Other significant internal changes for future core maintainers should
365be noted as well.
07d5f7aa 366
8f97a47a 367[ List each test improvement as a =item entry ]
07d5f7aa 368
8f97a47a 369=over 4
07d5f7aa 370
9ae8c3d9
FC
371=item *
372
b7bd32cc
FC
373C<lex_start> has been added to the API, but is considered experimental.
374
375=item *
376
377A new C<parse_block> function has been added to the API
378L<[perl #78222]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78222>.
379
380=item *
381
c678e617 382A new, experimental API has been added for accessing the internal
b7bd32cc
FC
383structure that Perl uses for C<%^H>. See the functions beginning with
384C<cophh_> in L<perlapi>.
9ae8c3d9 385
8f97a47a 386=back
825563b9 387
8f97a47a 388=head1 Selected Bug Fixes
825563b9 389
8f97a47a
TM
390XXX Important bug fixes in the core language are summarised here.
391Bug fixes in files in F<ext/> and F<lib/> are best summarised in
392L</Modules and Pragmata>.
825563b9 393
8f97a47a 394[ List each fix as a =item entry ]
825563b9 395
8f97a47a 396=over 4
825563b9 397
020fe755
AB
398=item *
399
b7bd32cc
FC
400The C<parse_stmt> C function added in earlier in the 5.13.x series has been
401fixed to work with statements ending with C<}>
402L<[perl #78222]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78222>.
403
404=item *
405
406The C<parse_fullstmt> C function added in 5.13.5 has been fixed to work
407when called while an expression is being parsed.
408
409=item *
410
411Characters in the Latin-1 non-ASCII range (0x80 to 0xFF) used not to match
412themselves if the string happened to be UTF8-encoded internally, the
413regular expression was not, and the character in the regular expression was
414inside a repeated group (e.g.,
c678e617 415C<Encode::decode_utf8("\303\200") =~ /(\xc0)+/>)
b7bd32cc
FC
416L<[perl #78464]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78464>.
417
418=item *
419
420The C<(?d)> regular expression construct now overrides a previous C<(?u)>
421or C<use feature "unicode_string">
422L<[perl #78508]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78508>.
423
424=item *
425
426A memory leak in C<do "file">, introduced in perl 5.13.6, has been fixed
427L<[perl #78488]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78488>.
020fe755 428
8f97a47a 429=back
020fe755 430
8f97a47a 431=head1 Known Problems
020fe755 432
8f97a47a
TM
433XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
434tests that had to be C<TODO>ed for the release would be noted here, unless
435they were specific to a particular platform (see below).
62ff64ce 436
8f97a47a
TM
437This is a list of some significant unfixed bugs, which are regressions
438from either 5.XXX.XXX or 5.XXX.XXX.
62ff64ce 439
8f97a47a 440[ List each fix as a =item entry ]
62ff64ce 441
8f97a47a 442=over 4
62ff64ce
FC
443
444=item *
445
8f97a47a 446XXX
62ff64ce 447
4c793fe3
FR
448=back
449
8f97a47a 450=head1 Obituary
405fd67e 451
8f97a47a
TM
452XXX If any significant core contributor has died, we've added a short obituary
453here.
405fd67e 454
ee0887a9 455=head1 Acknowledgements
0195fb5f 456
8f97a47a 457XXX The list of people to thank goes here.
4c793fe3
FR
458
459=head1 Reporting Bugs
460
461If you find what you think is a bug, you might check the articles
462recently posted to the comp.lang.perl.misc newsgroup and the perl
463bug database at http://rt.perl.org/perlbug/ . There may also be
464information at http://www.perl.org/ , the Perl Home Page.
465
466If you believe you have an unreported bug, please run the B<perlbug>
467program included with your release. Be sure to trim your bug down
468to a tiny but sufficient test case. Your bug report, along with the
469output of C<perl -V>, will be sent off to perlbug@perl.org to be
470analysed by the Perl porting team.
471
472If the bug you are reporting has security implications, which make it
473inappropriate to send to a publicly archived mailing list, then please send
ee0887a9 474it to perl5-security-report@perl.org. This points to a closed subscription
4c793fe3
FR
475unarchived mailing list, which includes all the core committers, who be able
476to help assess the impact of issues, figure out a resolution, and help
477co-ordinate the release of patches to mitigate or fix the problem across all
ee0887a9 478platforms on which Perl is supported. Please only use this address for
4c793fe3
FR
479security issues in the Perl core, not for modules independently
480distributed on CPAN.
481
482=head1 SEE ALSO
483
484The F<Changes> file for an explanation of how to view exhaustive details
485on what changed.
486
487The F<INSTALL> file for how to build Perl.
488
489The F<README> file for general stuff.
490
491The F<Artistic> and F<Copying> files for copyright information.
492
493=cut