This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta update
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
a3f52e2e
FC
3=for comment
4This has been completed up to 3ea0c5818 except for:
5a1da11a30dfa4f3543dcab00834ff535202f5085 (GNU/Hurd hints)
6
44691e6f
AB
7=head1 NAME
8
e3c71926
FR
9[ this is a template for a new perldelta file. Any text flagged as
10XXX needs to be processed before release. ]
11
12perldelta - what is new for perl v5.15.5
760696b8 13
5438d4b8 14=head1 DESCRIPTION
5cd408a2 15
e3c71926
FR
16This document describes differences between the 5.15.4 release and
17the 5.15.5 release.
5cd408a2 18
3432e5a1 19If you are upgrading from an earlier release such as 5.15.3, first read
e3c71926 20L<perl5154delta>, which describes differences between 5.15.3 and
3432e5a1 215.15.4.
062678b2 22
e3c71926 23=head1 Notice
d2006265 24
e3c71926 25XXX Any important notices here
3f728e2e 26
e3c71926 27=head1 Core Enhancements
6d110ad0 28
e3c71926
FR
29XXX New core language features go here. Summarise user-visible core language
30enhancements. Particularly prominent performance optimisations could go
31here, but most should go in the L</Performance Enhancements> section.
6d110ad0 32
a3f52e2e
FC
33=head2 C<$[> is back
34
35The C<$[> variable is back again, but is now implemented as a module, so
36programs that do not mention it (i.e., most of them), will not incur any
37run-time penalty. It is disabled in the scope of C<use v5.16>.
38
39XXX That last sentence is not true yet.
40
41The new implementation has some bug fixes. See L<arybase>.
6d110ad0 42
e3c71926 43=head1 Security
6d110ad0 44
e3c71926
FR
45XXX Any security-related notices go here. In particular, any security
46vulnerabilities closed should be noted here rather than in the
47L</Selected Bug Fixes> section.
6d110ad0 48
e3c71926 49[ List each security issue as a =head2 entry ]
6d110ad0 50
e3c71926 51=head1 Incompatible Changes
6d110ad0 52
e3c71926 53XXX For a release on a stable branch, this section aspires to be:
6d110ad0 54
e3c71926
FR
55 There are no changes intentionally incompatible with 5.XXX.XXX
56 If any exist, they are bugs and reports are welcome.
6d110ad0 57
e3c71926 58[ List each incompatible change as a =head2 entry ]
6d110ad0 59
e3c71926 60=head1 Deprecations
6d110ad0 61
e3c71926
FR
62XXX Any deprecated features, syntax, modules etc. should be listed here.
63In particular, deprecated modules should be listed here even if they are
64listed as an updated module in the L</Modules and Pragmata> section.
6d110ad0 65
e3c71926 66[ List each deprecation as a =head2 entry ]
6d110ad0 67
e3c71926 68=head1 Performance Enhancements
6d110ad0 69
e3c71926
FR
70XXX Changes which enhance performance without changing behaviour go here. There
71may well be none in a stable release.
6d110ad0 72
e3c71926 73[ List each enhancement as a =item entry ]
6d110ad0 74
e3c71926 75=over 4
6d110ad0
FC
76
77=item *
78
a3f52e2e
FC
79Due to changes in L<File::Glob>, Perl's C<glob> function and its
80C<< <...> >> equivalent are now much faster. The splitting of the pattern
81into words has been rewritten in C, resulting in speed-ups of 20% in some
82cases.
83
84This does not affect VMS, as it does not use File::Glob.
6d110ad0 85
e3c71926 86=back
6d110ad0 87
e3c71926 88=head1 Modules and Pragmata
6d110ad0 89
e3c71926
FR
90XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
91go here. If Module::CoreList is updated, generate an initial draft of the
92following sections using F<Porting/corelist-perldelta.pl>, which prints stub
93entries to STDOUT. Results can be pasted in place of the '=head2' entries
94below. A paragraph summary for important changes should then be added by hand.
95In an ideal world, dual-life modules would have a F<Changes> file that could be
96cribbed.
6d110ad0 97
e3c71926 98[ Within each section, list entries as a =item entry ]
6d110ad0 99
e3c71926 100=head2 New Modules and Pragmata
6d110ad0 101
e3c71926 102=over 4
6d110ad0
FC
103
104=item *
105
a3f52e2e 106L<arybase> -- this new module implements the C<$[> variable.
6d110ad0
FC
107
108=back
109
e3c71926 110=head2 Updated Modules and Pragmata
6d110ad0 111
e3c71926 112=over 4
6d110ad0
FC
113
114=item *
115
ac73ea1e
CBW
116L<Archive::Extract> has been upgraded from version 0.56 to version 0.58.
117
118=item *
119
a3f52e2e
FC
120L<B::Deparse> has been upgraded from version 1.08 to 1.08.
121
122It now correctly deparses C<CORE::do> and C<CORE::glob>.
123
124=item *
125
aba0546e
CBW
126L<CPANPLUS::Dist::Build> has been upgraded from version 0.58 to version 0.60.
127
128=item *
129
00441cfa
CBW
130L<ExtUtils::MakeMaker> has been upgraded from version 6.61_01 to version 6.63_01.
131
132=item *
133
a3f52e2e
FC
134L<File::Glob> has been upgrade from version 1.13 to 1.14.
135
136It has a new C<:bsd_glob> export tag, intended to replace C<:glob>. Like
137C<:glob> it overrides C<glob> with a function that does not split the glob
138pattern into words, but, unlike C<:glob>, it iterates properly in scalar
139context, instead of returning the last file.
140
141There are other changes affecting Perl's own C<glob> operator (which uses
142File::Glob internally, except on VMS). See L</Performance Enhancements>
143and L</Selected Bug Fixes>.
144
145=item *
146
6ce52845 147L<HTTP::Tiny> has been upgraded from version 0.013 to version 0.016.
35265876
CBW
148
149Adds additional shorthand methods for all common HTTP verbs,
150a C<post_form()> method for POST-ing x-www-form-urlencoded data and
151a C<www_form_urlencode()> utility method.
6d110ad0 152
be539103
CBW
153=item *
154
155L<perlfaq> has been upgraded from version 5.0150035 to version 5.0150036.
156
a47fb3fe
CBW
157=item *
158
a3f52e2e
FC
159L<Socket> as been upgraded from version 1.94_01 to 1.94_02.
160
161It has new functions and constants for handling IPv6 sockets:
162
163 pack_ipv6_mreq
164 unpack_ipv6_mreq
165 IPV6_ADD_MEMBERSHIP
166 IPV6_DROP_MEMBERSHIP
167 IPV6_MTU
168 IPV6_MTU_DISCOVER
169 IPV6_MULTICAST_HOPS
170 IPV6_MULTICAST_IF
171 IPV6_MULTICAST_LOOP
172 IPV6_UNICAST_HOPS
173 IPV6_V6ONLY
174
175=item *
176
a47fb3fe
CBW
177L<Unicode::Collate> has been upgraded from version 0.80 to version 0.81.
178
179Locales updated to CLDR 2.0: mk, mt, nb, nn, ro, ru.
180Newly supported locales: ml, mr, or, pa.
181
e3c71926 182=back
6d110ad0 183
e3c71926 184=head2 Removed Modules and Pragmata
6d110ad0 185
e3c71926 186=over 4
6d110ad0
FC
187
188=item *
189
e3c71926 190XXX
6d110ad0 191
e3c71926 192=back
6d110ad0 193
e3c71926 194=head1 Documentation
6d110ad0 195
e3c71926
FR
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>.
6d110ad0 198
e3c71926 199=head2 New Documentation
6d110ad0 200
e3c71926 201XXX Changes which create B<new> files in F<pod/> go here.
6d110ad0 202
e3c71926 203=head3 L<XXX>
6d110ad0 204
e3c71926 205XXX Description of the purpose of the new file here
6d110ad0 206
e3c71926 207=head2 Changes to Existing Documentation
6d110ad0 208
e3c71926
FR
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.
6d110ad0 212
e3c71926
FR
213=head3 L<XXX>
214
215=over 4
6d110ad0
FC
216
217=item *
218
e3c71926 219XXX Description of the change here
6d110ad0
FC
220
221=back
222
e3c71926
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>.
6d110ad0 228
e3c71926
FR
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.
b53e16ae 231
e3c71926
FR
232[ Within each section, list entries as a =item entry that links to perldiag,
233 e.g.
b53e16ae 234
e3c71926 235 =item *
b53e16ae 236
e3c71926
FR
237 L<Invalid version object|perldiag/"Invalid version object">
238]
46dd4080 239
e3c71926 240=head2 New Diagnostics
46dd4080 241
e3c71926 242XXX Newly added diagnostic messages go here
46dd4080 243
e3c71926 244=head3 New Errors
d6cf2367 245
63ac71b9 246=over 4
e46d9735
CBW
247
248=item *
249
e3c71926 250XXX L<message|perldiag/"message">
828d6195 251
3432e5a1 252=back
83307084 253
e3c71926 254=head3 New Warnings
d39de893 255
3432e5a1 256=over 4
39afdc5a
CBW
257
258=item *
259
e3c71926 260XXX L<message|perldiag/"message">
666c7ca6 261
e3c71926 262=back
7b8e5ef0 263
e3c71926 264=head2 Changes to Existing Diagnostics
91710846 265
e3c71926 266XXX Changes (i.e. rewording) of diagnostic messages go here
91710846 267
e3c71926 268=over 4
91710846
DG
269
270=item *
271
e3c71926 272XXX Describe change here
a2fa999d 273
e3c71926 274=back
a2fa999d 275
e3c71926 276=head1 Utility Changes
19e72bbf 277
e3c71926
FR
278XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
279here. Most of these are built within the directories F<utils> and F<x2p>.
19e72bbf 280
e3c71926
FR
281[ List utility changes as a =head3 entry for each utility and =item
282entries for each change
283Use L<XXX> with program names to get proper documentation linking. ]
19e72bbf 284
e3c71926 285=head3 L<XXX>
bd65daab 286
e3c71926 287=over 4
bd65daab 288
3f2cb5bf
SM
289=item *
290
e3c71926 291XXX
f0381222 292
e3c71926 293=back
f0381222 294
e3c71926 295=head1 Configuration and Compilation
02e7ec6d 296
e3c71926
FR
297XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
298go here. Any other changes to the Perl build process should be listed here.
299However, any platform-specific changes should be listed in the
300L</Platform Support> section, instead.
02e7ec6d 301
e3c71926 302[ List changes as a =item entry ].
02e7ec6d 303
e3c71926 304=over 4
1e915955
CBW
305
306=item *
307
e3c71926 308XXX
3f2cb5bf 309
3432e5a1 310=back
666c7ca6 311
e3c71926 312=head1 Testing
8fe353ef 313
e3c71926
FR
314XXX Any significant changes to the testing of a freshly built perl should be
315listed here. Changes which create B<new> files in F<t/> go here as do any
316large changes to the testing harness (e.g. when parallel testing was added).
317Changes to existing files in F<t/> aren't worth summarising, although the bugs
318that they represent may be covered elsewhere.
7ac26854 319
e3c71926 320[ List each test improvement as a =item entry ]
daef35db 321
3432e5a1 322=over 4
83307084
SL
323
324=item *
325
e3c71926 326XXX
b420b12a 327
3432e5a1 328=back
b420b12a 329
e3c71926 330=head1 Platform Support
b53e16ae 331
e3c71926 332XXX Any changes to platform support should be listed in the sections below.
9eb1e3e2 333
e3c71926
FR
334[ Within the sections, list each platform as a =item entry with specific
335changes as paragraphs below it. ]
9eb1e3e2 336
e3c71926 337=head2 New Platforms
b53e16ae 338
e3c71926
FR
339XXX List any platforms that this version of perl compiles on, that previous
340versions did not. These will either be enabled by new files in the F<hints/>
341directories, or new subdirectories and F<README> files at the top level of the
342source tree.
b53e16ae
FC
343
344=over 4
345
e3c71926 346=item XXX-some-platform
b53e16ae 347
e3c71926 348XXX
b53e16ae
FC
349
350=back
351
e3c71926 352=head2 Discontinued Platforms
83307084 353
e3c71926 354XXX List any platforms that this version of perl no longer compiles on.
3432e5a1 355
d6cf2367
FC
356=over 4
357
e3c71926 358=item XXX-some-platform
d6cf2367 359
e3c71926 360XXX
c634fdd3 361
3432e5a1 362=back
9cfd094e 363
e3c71926
FR
364=head2 Platform-Specific Notes
365
366XXX List any changes for specific platforms. This could include configuration
367and compilation changes or changes in portability/compatibility. However,
368changes within modules for platforms should generally be listed in the
369L</Modules and Pragmata> section.
9cfd094e 370
3432e5a1 371=over 4
95f7e41f 372
e3c71926 373=item XXX-some-platform
95f7e41f 374
e3c71926 375XXX
df5b44bd 376
63ac71b9 377=back
310913d4 378
3432e5a1 379=head1 Internal Changes
d6cf2367 380
e3c71926
FR
381XXX Changes which affect the interface available to C<XS> code go here.
382Other significant internal changes for future core maintainers should
383be noted as well.
5d4ff231 384
e3c71926 385[ List each change as a =item entry ]
6d110ad0 386
e3c71926 387=over 4
b53e16ae
FC
388
389=item *
390
a3f52e2e 391C<PL_curstash> is now reference-counted.
b53e16ae 392
3432e5a1 393=back
60092ce4 394
3432e5a1 395=head1 Selected Bug Fixes
309aab3a 396
e3c71926
FR
397XXX Important bug fixes in the core language are summarised here.
398Bug fixes in files in F<ext/> and F<lib/> are best summarised in
399L</Modules and Pragmata>.
19e72bbf 400
e3c71926 401[ List each fix as a =item entry ]
19e72bbf 402
e3c71926 403=over 4
b53e16ae
FC
404
405=item *
406
a3f52e2e
FC
407Perl now holds an extra reference count on the package that code is
408currently compiling in. This means that the following code no longer crashes [perl #101486]:
409
410 package Foo;
411 BEGIN {*Foo:: = *Bar::}
412 sub foo;
413
414=item *
415
416F<dumpvar.pl>, and consequently the C<x> command in the debugger, have been
417fixed to handle objects blessed into classes whose names contain "=". The
418contents of such objects used not to be dumped [perl #101814].
419
420=item *
421
422The C<x> repetition operator no longer crashes on 64-bit builds with large
423repeate counts [perl #94560].
424
425=item *
426
427A fix to C<glob> under miniperl (used to configure modules when perl itself
428is built) in Perl 5.15.3 stopped C<< <~> >> from returning the home
429directory, because it cleared %ENV before calling csh. Now C<$ENV{HOME}>
430is preserved. This fix probably does not affect anything. If
431L<File::Glob> fails to load for some reason, Perl reverts to using csh.
432So it would apply in that case.
433
434=item *
435
436On OSes other than VMS, Perl's C<glob> operator (and the C<< <...> >> form)
437use L<File::Glob> underneath. L<File::Glob> splits the pattern into words,
438before feeding each word to its C<bsd_glob> function.
439
440There were several inconsistencies in the way the split was done. Now
441quotation marks (' and ") are always treated as shell-style word delimiters
442(that allow whitespace as part of a word) and backslashes are always
443preserved, unless they exist to escape quotation marks. Before, those
444would only sometimes be the case, depending on whether the pattern
445contained whitespace. Also, escaped whitespace at the end of the pattern
446is no longer stripped.
447
448=item *
449
450C<CORE::glob> now works as a way to call the default globbing function. It
451used to respect overrides, despite the C<CORE::> prefix.
452
453=item *
454
455In 5.14, C</[[:lower:]]/i> and C</[[:upper:]]/i> no longer matched the
456opposite case. This has been fixed [perl #101970].
457
458=item *
459
460A regular expression match with an overloaded object on the right-hand side
461would in some cases stringify the object too many times.
462
463=item *
464
465The C-level C<pregcomp> function could become confused as to whether the
466pattern was in UTF8 if the pattern was an overloaded, tied, or otherwise
467magical scalar [perl #101940].
ca955add 468
e3c71926 469=back
ca955add 470
e3c71926 471=head1 Known Problems
b53e16ae 472
e3c71926
FR
473XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
474tests that had to be C<TODO>ed for the release would be noted here, unless
475they were specific to a particular platform (see below).
b53e16ae 476
e3c71926
FR
477This is a list of some significant unfixed bugs, which are regressions
478from either 5.XXX.XXX or 5.XXX.XXX.
b53e16ae 479
e3c71926 480[ List each fix as a =item entry ]
b53e16ae 481
e3c71926 482=over 4
b53e16ae
FC
483
484=item *
485
e3c71926 486XXX
b53e16ae 487
63ac71b9 488=back
bbc28bfc 489
e3c71926 490=head1 Obituary
a777c865 491
e3c71926
FR
492XXX If any significant core contributor has died, we've added a short obituary
493here.
a777c865 494
e3c71926 495=head1 Acknowledgements
a777c865 496
e3c71926 497XXX Generate this with:
a777c865 498
e3c71926 499 perl Porting/acknowledgements.pl v5.15.4..HEAD
29cf780c 500
44691e6f
AB
501=head1 Reporting Bugs
502
503If you find what you think is a bug, you might check the articles
34dc2ec0 504recently posted to the comp.lang.perl.misc newsgroup and the perl
44691e6f
AB
505bug database at http://rt.perl.org/perlbug/ . There may also be
506information at http://www.perl.org/ , the Perl Home Page.
507
508If you believe you have an unreported bug, please run the L<perlbug>
509program included with your release. Be sure to trim your bug down
510to a tiny but sufficient test case. Your bug report, along with the
511output of C<perl -V>, will be sent off to perlbug@perl.org to be
512analysed by the Perl porting team.
513
514If the bug you are reporting has security implications, which make it
515inappropriate to send to a publicly archived mailing list, then please send
34dc2ec0 516it to perl5-security-report@perl.org. This points to a closed subscription
b4707b2a
FC
517unarchived mailing list, which includes
518all the core committers, who will be able
44691e6f
AB
519to help assess the impact of issues, figure out a resolution, and help
520co-ordinate the release of patches to mitigate or fix the problem across all
34dc2ec0
DM
521platforms on which Perl is supported. Please only use this address for
522security issues in the Perl core, not for modules independently
44691e6f
AB
523distributed on CPAN.
524
525=head1 SEE ALSO
526
527The F<Changes> file for an explanation of how to view exhaustive details
528on what changed.
529
530The F<INSTALL> file for how to build Perl.
531
532The F<README> file for general stuff.
533
534The F<Artistic> and F<Copying> files for copyright information.
535
536=cut