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