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