This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta entry for File::DosGlob
[perl5.git] / pod / perldelta.pod
CommitLineData
4c793fe3
FR
1=encoding utf8
2
3=head1 NAME
4
ee0887a9
SH
5[ this is a template for a new perldelta file. Any text flagged as
6XXX needs to be processed before release. ]
4c793fe3 7
ee0887a9 8perldelta - what is new for perl v5.13.6
4c793fe3 9
ee0887a9 10=head1 DESCRIPTION
0c692eed 11
ee0887a9
SH
12This document describes differences between the 5.13.5 release and
13the 5.13.6 release.
0c692eed 14
ee0887a9
SH
15If you are upgrading from an earlier release such as 5.13.4, first read
16L<perl5135delta>, which describes differences between 5.13.4 and
175.13.5.
0c692eed 18
ee0887a9 19=head1 Notice
0c692eed 20
ee0887a9 21XXX Any important notices here
4c793fe3 22
ee0887a9 23=head1 Core Enhancements
85318b69 24
ee0887a9
SH
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.
85318b69 28
ee0887a9 29[ List each enhancement as a =head2 entry ]
85318b69 30
fb85c044
KW
31=head2 C<(?^...)> regex construct added to signify default modifiers
32
33A caret (also called a "cirumflex accent") C<"^"> immediately following
34a C<"(?"> in a regular expression now means that the subexpression is to
35not inherit the surrounding modifiers such as C</i>, but to revert to the
36Perl defaults. Any modifiers following the caret override the defaults.
37
38The stringification of regular expressions now uses this notation. The
39main purpose of this is to allow tests that rely on the stringification
40to not have to change when new modifiers are added. See
41L<perlre/Extended Patterns>.
42
9de15fec
KW
43=head2 C<"d">, C<"l">, and C<"u"> regex modifiers added
44
45These modifiers are currently only available within a C<(?...)> construct.
46
47The C<"l"> modifier says to compile the regular expression as if it were
48in the scope of C<use locale>, even if it is not.
49
50The C<"u"> modifier currently does nothing.
51
52The C<"d"> modifier is used in the scope of C<use locale> to compile the
53regular expression as if it were not in that scope.
54See L<perlre/(?dlupimsx-imsx)>.
55
ee0887a9 56=head1 Security
85318b69 57
ee0887a9
SH
58XXX Any security-related notices go here. In particular, any security
59vulnerabilities closed should be noted here rather than in the
60L</Selected Bug Fixes> section.
85318b69 61
ee0887a9 62[ List each security issue as a =head2 entry ]
4c793fe3
FR
63
64=head1 Incompatible Changes
65
fb85c044
KW
66=head2 Stringification of regexes has changed
67
68Default regular expression modifiers are now notated by using
69C<(?^...)>. Code relying on the old stringification will fail. The
70purpose of this is so that when new modifiers are added, such code will
71not have to change, as the stringification will automatically
72incorporate the new modifiers.
73
74Code that needs to work properly with both old- and new-style regexes
75can use something like the following:
76
77 # Accept both old and new-style stringification
78 my $modifiers = (qr/foobar/ =~ /\Q(?^/) ? '^' : '-xism';
44428a46 79
fb85c044 80And then use C<$modifiers> instead of C<-xism>.
44428a46 81
9de15fec
KW
82=head2 Regular expressions retain their localeness when interpolated
83
84Regular expressions compiled under C<"use locale"> now retain this when
85interpolated into a new regular expression compiled outside a
86C<"use locale">, and vice-versa.
87
88Previously, a regular expression interpolated into another one inherited
89the localeness of the surrounding one, losing whatever state it
90originally had. This is considered a bug fix, but may trip up code that
91has come to rely on the incorrect behavior.
92
ee0887a9 93[ List each incompatible change as a =head2 entry ]
4c793fe3
FR
94
95=head1 Deprecations
96
ee0887a9
SH
97XXX Any deprecated features, syntax, modules etc. should be listed here.
98In particular, deprecated modules should be listed here even if they are
99listed as an updated module in the L</Modules and Pragmata> section.
85318b69 100
ee0887a9 101[ List each deprecation as a =head2 entry ]
4c793fe3
FR
102
103=head1 Performance Enhancements
104
ee0887a9
SH
105XXX Changes which enhance performance without changing behaviour go here. There
106may well be none in a stable release.
4c793fe3 107
ee0887a9 108[ List each enhancement as a =item entry ]
4c793fe3 109
ee0887a9 110=over 4
4c793fe3 111
e2babdfb
FR
112=item *
113
ee0887a9 114XXX
e2babdfb 115
4c793fe3
FR
116=back
117
118=head1 Modules and Pragmata
119
ee0887a9
SH
120XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
121go here. If Module::CoreList is updated, generate an initial draft of the
122following sections using F<Porting/corelist-perldelta.pl>, which prints stub
123entries to STDOUT. Results can be pasted in place of the '=head2' entries
124below. A paragraph summary for important changes should then be added by hand.
125In an ideal world, dual-life modules would have a F<Changes> file that could be
126cribbed.
fc1418b7 127
ee0887a9 128[ Within each section, list entries as a =item entry ]
df91fef1 129
ee0887a9 130=head2 New Modules and Pragmata
ccb45ef4 131
ee0887a9 132=over 4
df91fef1 133
ee0887a9 134=item *
df91fef1 135
ee0887a9 136XXX
e2babdfb 137
ee0887a9 138=back
e2babdfb 139
ee0887a9 140=head2 Updated Modules and Pragmata
fc1418b7 141
ee0887a9 142=over 4
fc1418b7 143
ee0887a9 144=item *
e2babdfb 145
f5b89942
FC
146C<File::DosGlob> has been upgraded from version 1.02 to 1.03.
147
148It allows patterns containing literal parentheses (they no longer need to
149be escaped). On Windows, it no longer adds an extra F<./> to the file names
150returned when the pattern is a relative glob with a drive specification,
151like F<c:*.pl>.
152
153=item *
154
4d1599c3
FC
155C<File::Find> has been upgraded from version 1.17 to 1.18.
156
157It improves handling of backslashes on Windows, so that paths such as
158F<c:\dir\/file> are no longer generated.
159
160=item *
161
de0e3ce7
FR
162C<NEXT> has been upgraded from version 0.64 to 0.65.
163
164=item *
165
1c2dcb3e
CBW
166C<PathTools> has been upgraded from version 3.31_01 to 3.33.
167
168=item *
169
1393fe00
CBW
170C<Unicode::Collate> has been upgraded from version 0.59 to 0.60
171
172=item *
173
1c2dcb3e 174C<Unicode::Normalize> has been upgraded from version 1.06 to 1.07
c9a84c8b 175
ee0887a9 176=back
c9a84c8b 177
ee0887a9 178=head2 Removed Modules and Pragmata
c9a84c8b 179
ee0887a9 180=over 4
4c793fe3 181
ee0887a9 182=item *
48c1efd2 183
ee0887a9 184XXX
4c793fe3
FR
185
186=back
187
188=head1 Documentation
189
ee0887a9
SH
190XXX Changes to files in F<pod/> go here. Consider grouping entries by
191file and be sure to link to the appropriate page, e.g. L<perlfunc>.
4c793fe3 192
ee0887a9 193=head2 New Documentation
4c793fe3 194
ee0887a9 195XXX Changes which create B<new> files in F<pod/> go here.
4c793fe3 196
ee0887a9 197=head3 L<XXX>
4c793fe3 198
ee0887a9 199XXX Description of the purpose of the new file here
4c793fe3 200
ee0887a9 201=head2 Changes to Existing Documentation
fc1418b7 202
ee0887a9
SH
203XXX Changes which significantly change existing files in F<pod/> go here.
204However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
205section.
fc1418b7 206
ee0887a9 207=head3 L<XXX>
e2babdfb 208
7bc3efda
SH
209=over 4
210
211=item *
212
ee0887a9 213XXX Description of the change here
7bc3efda
SH
214
215=back
e2babdfb 216
4c793fe3
FR
217=head1 Diagnostics
218
219The following additions or changes have been made to diagnostic output,
220including warnings and fatal error messages. For the complete list of
221diagnostic messages, see L<perldiag>.
222
ee0887a9
SH
223XXX New or changed warnings emitted by the core's C<C> code go here. Also
224include any changes in L<perldiag> that reconcile it to the C<C> code.
4c793fe3 225
ee0887a9 226[ Within each section, list entries as a =item entry ]
4c793fe3 227
ee0887a9 228=head2 New Diagnostics
4c793fe3 229
ee0887a9 230XXX Newly added diagnostic messages go here
fc1418b7 231
ee0887a9 232=over 4
fc1418b7
SH
233
234=item *
235
ee0887a9 236XXX
ebce6c40 237
4c793fe3
FR
238=back
239
ee0887a9 240=head2 Changes to Existing Diagnostics
4c793fe3 241
ee0887a9 242XXX Changes (i.e. rewording) of diagnostic messages go here
4c793fe3
FR
243
244=over 4
245
246=item *
247
ee0887a9 248XXX
4c793fe3
FR
249
250=back
251
ee0887a9 252=head1 Utility Changes
4c793fe3 253
ee0887a9
SH
254XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
255here. Most of these are built within the directories F<utils> and F<x2p>.
4c793fe3 256
ee0887a9
SH
257[ List utility changes as a =head3 entry for each utility and =item
258entries for each change
259Use L<XXX> with program names to get proper documentation linking. ]
fc1418b7 260
ee0887a9 261=head3 L<XXX>
fc1418b7 262
ee0887a9 263=over 4
4c793fe3 264
44428a46
FC
265=item *
266
ee0887a9 267XXX
44428a46 268
4c793fe3
FR
269=back
270
ee0887a9 271=head1 Configuration and Compilation
4c793fe3 272
ee0887a9
SH
273XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
274go here. Any other changes to the Perl build process should be listed here.
275However, any platform-specific changes should be listed in the
276L</Platform Support> section, instead.
4c793fe3 277
ee0887a9 278[ List changes as a =item entry ].
4c793fe3 279
0c692eed
FR
280=over 4
281
282=item *
283
ee0887a9 284XXX
0c692eed
FR
285
286=back
4c793fe3 287
ee0887a9 288=head1 Testing
0c692eed 289
ee0887a9
SH
290XXX Any significant changes to the testing of a freshly built perl should be
291listed here. Changes which create B<new> files in F<t/> go here as do any
292large changes to the testing harness (e.g. when parallel testing was added).
293Changes to existing files in F<t/> aren't worth summarising, although the bugs
294that they represent may be covered elsewhere.
0c692eed 295
ee0887a9 296[ List each test improvement as a =item entry ]
0c692eed 297
ee0887a9 298=over 4
0c692eed
FR
299
300=item *
301
ee0887a9 302XXX
4c793fe3
FR
303
304=back
305
ee0887a9 306=head1 Platform Support
4c793fe3 307
ee0887a9 308XXX Any changes to platform support should be listed in the sections below.
4c793fe3 309
ee0887a9
SH
310[ Within the sections, list each platform as a =item entry with specific
311changes as paragraphs below it. ]
4c793fe3 312
ee0887a9 313=head2 New Platforms
0c692eed 314
ee0887a9
SH
315XXX List any platforms that this version of perl compiles on, that previous
316versions did not. These will either be enabled by new files in the F<hints/>
317directories, or new subdirectories and F<README> files at the top level of the
318source tree.
0c692eed 319
ee0887a9 320=over 4
0c692eed 321
ee0887a9 322=item XXX-some-platform
0c692eed 323
ee0887a9 324XXX
0c692eed 325
ee0887a9 326=back
0c692eed 327
ee0887a9 328=head2 Discontinued Platforms
4c793fe3 329
ee0887a9 330XXX List any platforms that this version of perl no longer compiles on.
8ebb9810 331
ee0887a9 332=over 4
8ebb9810 333
ee0887a9 334=item XXX-some-platform
48c1efd2 335
ee0887a9 336XXX
48c1efd2 337
ee0887a9 338=back
44428a46 339
ee0887a9 340=head2 Platform-Specific Notes
44428a46 341
ee0887a9
SH
342XXX List any changes for specific platforms. This could include configuration
343and compilation changes or changes in portability/compatibility. However,
344changes within modules for platforms should generally be listed in the
345L</Modules and Pragmata> section.
f4beb78f 346
ee0887a9 347=over 4
f4beb78f 348
ee0887a9 349=item XXX-some-platform
ccb45ef4 350
ee0887a9 351XXX
ccb45ef4 352
ee0887a9 353=back
85318b69 354
ee0887a9 355=head1 Internal Changes
85318b69 356
ee0887a9
SH
357XXX Changes which affect the interface available to C<XS> code go here.
358Other significant internal changes for future core maintainers should
359be noted as well.
85318b69 360
ee0887a9 361[ List each test improvement as a =item entry ]
80b6a949 362
ee0887a9 363=over 4
80b6a949 364
e2babdfb
FR
365=item *
366
a5763045
FC
367See L</Regular expressions retain their localeness when interpolated>,
368above.
e2babdfb 369
ee0887a9 370=back
e2babdfb 371
ee0887a9 372=head1 Selected Bug Fixes
e2babdfb 373
ee0887a9
SH
374XXX Important bug fixes in the core language are summarised here.
375Bug fixes in files in F<ext/> and F<lib/> are best summarised in
376L</Modules and Pragmata>.
e2babdfb 377
ee0887a9 378[ List each fix as a =item entry ]
346e4e56 379
ee0887a9 380=over 4
346e4e56 381
78846812
FR
382=item *
383
4e9f151b
FC
384A regular expression match in the right-hand side of a global substitution
385(C<s///g>) that is in the same scope will no longer cause match variables
386to have the wrong values on subsequent iterations. This can happen when an
e54f3f30
FC
387array or hash subscript is interpolated in the right-hand side, as in
388C<s|(.)|@a{ print($1), /./ }|g>
389L<[perl #19078]|http://rt.perl.org/rt3//Public/Bug/Display.html?id=19078>.
390
391=item *
392
393Constant-folding used to cause
394
395 $text =~ ( 1 ? /phoo/ : /bear/)
396
397to turn into
398
399 $text =~ /phoo/
400
401at compile time. Now it correctly matches against C<$_>
402L<[perl #20444]|http://rt.perl.org/rt3//Public/Bug/Display.html?id=20444>.
78846812 403
a5763045
FC
404=item *
405
406Parsing Perl code (either with string C<eval> or by loading modules) from
407within a C<UNITCHECK> block no longer causes the interpreter to crash
408L<[perl #70614]|http://rt.perl.org/rt3//Public/Bug/Display.html?id=70614>.
409
5a9a79a4
FC
410=item *
411
412When C<-d> is used on the shebang (C<#!>) line, the debugger now has access
413to the lines of the main program. In the past, this sometimes worked and
414sometimes did not, depending on what order things happened to be arranged
415in memory.
416
4c793fe3
FR
417=back
418
962fbe1d
SH
419=head1 Known Problems
420
ee0887a9
SH
421XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
422tests that had to be C<TODO>ed for the release would be noted here, unless
423they were specific to a particular platform (see below).
962fbe1d 424
ee0887a9
SH
425This is a list of some significant unfixed bugs, which are regressions
426from either 5.XXX.XXX or 5.XXX.XXX.
962fbe1d 427
ee0887a9
SH
428[ List each fix as a =item entry ]
429
430=over 4
08d032c0
SH
431
432=item *
433
ee0887a9 434XXX
962fbe1d
SH
435
436=back
437
ee0887a9 438=head1 Obituary
4c793fe3 439
ee0887a9
SH
440XXX If any significant core contributor has died, we've added a short obituary
441here.
0195fb5f 442
ee0887a9 443=head1 Acknowledgements
0195fb5f 444
ee0887a9 445XXX The list of people to thank goes here.
4c793fe3
FR
446
447=head1 Reporting Bugs
448
449If you find what you think is a bug, you might check the articles
450recently posted to the comp.lang.perl.misc newsgroup and the perl
451bug database at http://rt.perl.org/perlbug/ . There may also be
452information at http://www.perl.org/ , the Perl Home Page.
453
454If you believe you have an unreported bug, please run the B<perlbug>
455program included with your release. Be sure to trim your bug down
456to a tiny but sufficient test case. Your bug report, along with the
457output of C<perl -V>, will be sent off to perlbug@perl.org to be
458analysed by the Perl porting team.
459
460If the bug you are reporting has security implications, which make it
461inappropriate to send to a publicly archived mailing list, then please send
ee0887a9 462it to perl5-security-report@perl.org. This points to a closed subscription
4c793fe3
FR
463unarchived mailing list, which includes all the core committers, who be able
464to help assess the impact of issues, figure out a resolution, and help
465co-ordinate the release of patches to mitigate or fix the problem across all
ee0887a9 466platforms on which Perl is supported. Please only use this address for
4c793fe3
FR
467security issues in the Perl core, not for modules independently
468distributed on CPAN.
469
470=head1 SEE ALSO
471
472The F<Changes> file for an explanation of how to view exhaustive details
473on what changed.
474
475The F<INSTALL> file for how to build Perl.
476
477The F<README> file for general stuff.
478
479The F<Artistic> and F<Copying> files for copyright information.
480
481=cut