This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta entry for [perl #63540]
[perl5.git] / pod / perldelta.pod
CommitLineData
3a5c9134
CBW
1=encoding utf8
2
59773fc7 3=for comment
3ad6135d 4This has been completed up to dbe92b04c, except for 1b9f127-fad448f, which
f295f417 5Karl Williamson says he will do.
59773fc7 6
3a5c9134
CBW
7=head1 NAME
8
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.13.8
13
14=head1 DESCRIPTION
15
16This document describes differences between the 5.13.8 release and
17the 5.13.7 release.
18
dbbe2d83 19If you are upgrading from an earlier release such as 5.13.6, first read
3a5c9134
CBW
20L<perl5137delta>, which describes differences between 5.13.6 and
215.13.7.
22
23=head1 Notice
24
25XXX Any important notices here
26
27=head1 Core Enhancements
28
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.
32
33[ List each enhancement as a =head2 entry ]
34
b19934fb
NC
35=head2 C<-d:-foo> calls C<Devel::foo::unimport>
36
37The syntax C<-dI<B<:>foo>> was extended in 5.6.1 to make C<-dI<:fooB<=bar>>>
6a8c8694
FC
38equivalent to C<-MDevel::foo=bar>, which expands
39internally to C<use Devel::foo 'bar';>.
b19934fb
NC
40F<perl> now allows prefixing the module name with C<->, with the same
41semantics as C<-M>, I<i.e.>
42
43=over 4
44
45=item C<-d:-foo>
46
6a8c8694
FC
47Equivalent to C<-M-Devel::foo>, expands to
48C<no Devel::foo;>, calls C<< Devel::foo->unimport() >>
b19934fb
NC
49if the method exists.
50
51=item C<-d:-foo=bar>
52
6a8c8694
FC
53Equivalent to C<-M-Devel::foo=bar>, expands to C<no Devel::foo 'bar';>,
54calls C<< Devel::foo->unimport('bar') >> if the method exists.
b19934fb
NC
55
56=back
57
58This is particularly useful to suppresses the default actions of a
59C<Devel::*> module's C<import> method whilst still loading it for debugging.
60
3a5c9134
CBW
61=head1 Security
62
63XXX Any security-related notices go here. In particular, any security
64vulnerabilities closed should be noted here rather than in the
65L</Selected Bug Fixes> section.
66
67[ List each security issue as a =head2 entry ]
68
69=head1 Incompatible Changes
70
2dc78664 71=head2 Attempting to use C<:=> as an empty attribute list is now a syntax error
3a5c9134 72
2dc78664
NC
73Previously C<my $pi := 4;> was exactly equivalent to C<my $pi : = 4;>,
74with the C<:> being treated as the start of an attribute list, ending before
75the C<=>. The use of C<:=> to mean C<: => was deprecated in 5.12.0, and is now
76a syntax error. This will allow the future use of C<:=> as a new token.
3a5c9134 77
2dc78664
NC
78We find no Perl 5 code on CPAN using this construction, outside the core's
79tests for it, so we believe that this change will have very little impact on
80real-world codebases.
81
82If it is absolutely necessary to have empty attribute lists (for example,
baed7a72
NC
83because of a code generator) then avoid the error by adding a space before
84the C<=>.
3a5c9134
CBW
85
86=head1 Deprecations
87
88XXX Any deprecated features, syntax, modules etc. should be listed here.
89In particular, deprecated modules should be listed here even if they are
90listed as an updated module in the L</Modules and Pragmata> section.
91
92[ List each deprecation as a =head2 entry ]
93
59773fc7
FC
94=head2 C<?PATTERN?> is deprecated
95
96C<?PATTERN?> (without the initial m) has been deprecated and now produces
97a warning.
98
d59a8b3e
NC
99=head2 C<sv_compile_2op> is now deprecated
100
101The C<sv_compile_2op> is now deprecated, and will be removed. Searches suggest
102that nothing on CPAN is using it, so this should have zero impact.
103
104It attempted to provide an API to compile code down to an optree, but failed
105to bind correctly to lexicals in the enclosing scope. It's not possible to
106fix this problem within the constraints of its parameters and return value.
107
3a5c9134
CBW
108=head1 Performance Enhancements
109
110XXX Changes which enhance performance without changing behaviour go here. There
111may well be none in a stable release.
112
113[ List each enhancement as a =item entry ]
114
115=over 4
116
117=item *
118
119XXX
120
121=back
122
123=head1 Modules and Pragmata
124
125XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
126go here. If Module::CoreList is updated, generate an initial draft of the
127following sections using F<Porting/corelist-perldelta.pl>, which prints stub
128entries to STDOUT. Results can be pasted in place of the '=head2' entries
129below. A paragraph summary for important changes should then be added by hand.
130In an ideal world, dual-life modules would have a F<Changes> file that could be
131cribbed.
132
133[ Within each section, list entries as a =item entry ]
134
135=head2 New Modules and Pragmata
136
137=over 4
138
139=item *
140
141XXX
142
143=back
144
145=head2 Updated Modules and Pragmata
146
147=over 4
148
149=item *
150
39b09a1b
CBW
151C<IPC::Cmd> has been upgraded from 0.64 to 0.66
152
153Resolves an issue with splitting Win32 command lines
154and documentation enhancements.
155
156=item *
157
37fa6334 158C<MIME::Base64> has been upgraded from 3.10 to 3.13
2456140e
CBW
159
160Now provides encode_base64url and decode_base64url functions to process
161the base64 scheme for "URL applications".
162
163=item *
164
2638c0ff
FC
165C<overload> has been upgraded from 1.11 to 1.12.
166
167=item *
168
169C<PerlIO::scalar> has been upgraded from 0.10 to 0.11.
170
171A C<read> after a C<seek> beyond the end of the string no longer thinks it
172has data to read
173L<[perl #78716]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78716>.
174
175=item *
176
f295f417
FC
177C<re> has been upgraded from 0.14 to 0.15.
178
179=item *
180
5ebfb99c 181C<Socket> has been upgraded from 1.91 to 1.92.
b373eab8
FC
182
183It has several new functions for handling IPv6 addresses.
184
185=item *
186
d4238815
FC
187C<Time::HiRes> has been upgraded from 1.9721 to 1.9721_01.
188
189=item *
190
68adb2b0
CBW
191C<Unicode::Collate> has been upgraded from 0.67 to 0.68
192
193=item *
194
59773fc7 195C<Unicode::UCD> has been upgraded from 0.29 to 0.30.
3a5c9134 196
c2e0289e
FC
197=item *
198
199C<version> has been upgraded from 0.82 to 0.86.
200
3a5c9134
CBW
201=back
202
203=head2 Removed Modules and Pragmata
204
205=over 4
206
207=item *
208
209XXX
210
211=back
212
213=head1 Documentation
214
215XXX Changes to files in F<pod/> go here. Consider grouping entries by
216file and be sure to link to the appropriate page, e.g. L<perlfunc>.
217
218=head2 New Documentation
219
220XXX Changes which create B<new> files in F<pod/> go here.
221
222=head3 L<XXX>
223
224XXX Description of the purpose of the new file here
225
226=head2 Changes to Existing Documentation
227
228XXX Changes which significantly change existing files in F<pod/> go here.
229However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
230section.
231
232=head3 L<XXX>
233
234=over 4
235
236=item *
237
238XXX Description of the change here
239
240=back
241
242=head1 Diagnostics
243
244The following additions or changes have been made to diagnostic output,
245including warnings and fatal error messages. For the complete list of
246diagnostic messages, see L<perldiag>.
247
248XXX New or changed warnings emitted by the core's C<C> code go here. Also
249include any changes in L<perldiag> that reconcile it to the C<C> code.
250
251[ Within each section, list entries as a =item entry ]
252
253=head2 New Diagnostics
254
255XXX Newly added diagnostic messages go here
256
257=over 4
258
259=item *
260
261XXX
262
263=back
264
265=head2 Changes to Existing Diagnostics
266
267XXX Changes (i.e. rewording) of diagnostic messages go here
268
269=over 4
270
271=item *
272
273XXX
274
275=back
276
277=head1 Utility Changes
278
279XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
280here. Most of these are built within the directories F<utils> and F<x2p>.
281
282[ List utility changes as a =head3 entry for each utility and =item
283entries for each change
284Use L<XXX> with program names to get proper documentation linking. ]
285
286=head3 L<XXX>
287
288=over 4
289
290=item *
291
292XXX
293
294=back
295
296=head1 Configuration and Compilation
297
298XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
299go here. Any other changes to the Perl build process should be listed here.
300However, any platform-specific changes should be listed in the
301L</Platform Support> section, instead.
302
303[ List changes as a =item entry ].
304
305=over 4
306
307=item *
308
309XXX
310
311=back
312
313=head1 Testing
314
315XXX Any significant changes to the testing of a freshly built perl should be
316listed here. Changes which create B<new> files in F<t/> go here as do any
317large changes to the testing harness (e.g. when parallel testing was added).
318Changes to existing files in F<t/> aren't worth summarising, although the bugs
319that they represent may be covered elsewhere.
320
321[ List each test improvement as a =item entry ]
322
323=over 4
324
325=item *
326
327XXX
328
329=back
330
331=head1 Platform Support
332
333XXX Any changes to platform support should be listed in the sections below.
334
335[ Within the sections, list each platform as a =item entry with specific
336changes as paragraphs below it. ]
337
338=head2 New Platforms
339
340XXX List any platforms that this version of perl compiles on, that previous
341versions did not. These will either be enabled by new files in the F<hints/>
342directories, or new subdirectories and F<README> files at the top level of the
343source tree.
344
345=over 4
346
347=item XXX-some-platform
348
349XXX
350
351=back
352
353=head2 Discontinued Platforms
354
355XXX List any platforms that this version of perl no longer compiles on.
356
357=over 4
358
359=item XXX-some-platform
360
361XXX
362
363=back
364
365=head2 Platform-Specific Notes
366
367XXX List any changes for specific platforms. This could include configuration
368and compilation changes or changes in portability/compatibility. However,
369changes within modules for platforms should generally be listed in the
370L</Modules and Pragmata> section.
371
372=over 4
373
374=item XXX-some-platform
375
376XXX
377
378=back
379
380=head1 Internal Changes
381
382XXX Changes which affect the interface available to C<XS> code go here.
383Other significant internal changes for future core maintainers should
384be noted as well.
385
386[ List each test improvement as a =item entry ]
387
388=over 4
389
390=item *
391
392XXX
393
394=back
395
396=head1 Selected Bug Fixes
397
398XXX Important bug fixes in the core language are summarised here.
399Bug fixes in files in F<ext/> and F<lib/> are best summarised in
400L</Modules and Pragmata>.
401
402[ List each fix as a =item entry ]
403
404=over 4
405
406=item *
407
88e9444c
NC
408C<BEGIN {require 5.12.0}> now behaves as documented, rather than behaving
409identically to C<use 5.12.0;>. Previously, C<require> in a C<BEGIN> block
410was erroneously executing the C<use feature ':5.12.0'> and
411C<use strict; use warnings;> behaviour, which only C<use> was documented to
b373eab8
FC
412provide
413L<[perl #69050]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=69050>.
414
415=item *
416
417C<use 5.42>
418L<[perl #69050]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=69050>,
419C<use 6> and C<no 5> no longer leak memory.
420
421=item *
422
423C<eval "BEGIN{die}"> no longer leaks memory on non-threaded builds.
3a5c9134 424
1428a560
FC
425=item *
426
427PerlIO no longer crashes when called recursively, e.g., from a signal
428handler. Now it just leaks memory
429L<[perl #75556]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=75556>.
430
11cd2234
FC
431=item *
432
433Defining a constant with the same name as one of perl's special blocks
434(e.g., INIT) stopped working in 5.12.0, but has now been fixed
435L<[perl #78634]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78634>.
436
e3ef43a5
FC
437=item *
438
439A reference to a literal value used as a hash key (C<$hash{\"foo"}>) used
440to be stringified, even if the hash was tied
441L<[perl #79178]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=79178>.
442
3ad6135d
FC
443=item *
444
445A number of bugs with regular expression bracketed character classes
446have been fixed, mostly having to do with matching characters in the
447non-ASCII Latin-1 range.
448
449=item *
450
451A closure containing an C<if> statement followed by a constant or variable
452is no longer treated as a constant
453L<[perl #63540]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=63540>.
454
3a5c9134
CBW
455=back
456
457=head1 Known Problems
458
459XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
460tests that had to be C<TODO>ed for the release would be noted here, unless
461they were specific to a particular platform (see below).
462
463This is a list of some significant unfixed bugs, which are regressions
464from either 5.XXX.XXX or 5.XXX.XXX.
465
466[ List each fix as a =item entry ]
467
468=over 4
469
470=item *
471
3ad6135d 472XXX
3a5c9134
CBW
473
474=back
475
476=head1 Obituary
477
478XXX If any significant core contributor has died, we've added a short obituary
479here.
480
481=head1 Acknowledgements
482
483XXX The list of people to thank goes here.
484
485=head1 Reporting Bugs
486
487If you find what you think is a bug, you might check the articles
488recently posted to the comp.lang.perl.misc newsgroup and the perl
489bug database at http://rt.perl.org/perlbug/ . There may also be
490information at http://www.perl.org/ , the Perl Home Page.
491
492If you believe you have an unreported bug, please run the L<perlbug>
493program included with your release. Be sure to trim your bug down
494to a tiny but sufficient test case. Your bug report, along with the
495output of C<perl -V>, will be sent off to perlbug@perl.org to be
496analysed by the Perl porting team.
497
498If the bug you are reporting has security implications, which make it
499inappropriate to send to a publicly archived mailing list, then please send
500it to perl5-security-report@perl.org. This points to a closed subscription
501unarchived mailing list, which includes all the core committers, who be able
502to help assess the impact of issues, figure out a resolution, and help
503co-ordinate the release of patches to mitigate or fix the problem across all
504platforms on which Perl is supported. Please only use this address for
505security issues in the Perl core, not for modules independently
506distributed on CPAN.
507
508=head1 SEE ALSO
509
510The F<Changes> file for an explanation of how to view exhaustive details
511on what changed.
512
513The F<INSTALL> file for how to build Perl.
514
515The F<README> file for general stuff.
516
517The F<Artistic> and F<Copying> files for copyright information.
518
519=cut