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