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