This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
First shot at perl5159delta.pod
[perl5.git] / pod / perl5159delta.pod
1 =encoding utf8
2
3 =head1 NAME
4
5 perldelta - what is new for perl v5.15.9
6
7 =head1 DESCRIPTION
8
9 This document describes differences between the 5.15.8 release and
10 the 5.15.9 release.
11
12 If you are upgrading from an earlier release such as 5.15.7, first read
13 L<perl5158delta>, which describes differences between 5.15.7 and
14 5.15.8.
15
16 =head1 Notice
17
18 This space intentionally left blank.
19
20 =head1 Core Enhancements
21
22 =head2 C<< no feature; >> now means reset to default
23
24 C<< no feature >> now resets to the default feature set.  To disable all
25 features (which is likely to be a pretty special-purpose request, since
26 it presumably won't match any named set of semantics) you can now  
27 write C<< no feature ':all' >>.
28
29
30 [ List each enhancement as a =head2 entry ]
31
32 =head1 Security
33
34 XXX Any security-related notices go here.  In particular, any security
35 vulnerabilities closed should be noted here rather than in the
36 L</Selected Bug Fixes> section.
37
38 [ List each security issue as a =head2 entry ]
39
40 =head1 Incompatible Changes
41
42 XXX For a release on a stable branch, this section aspires to be:
43
44     There are no changes intentionally incompatible with 5.XXX.XXX
45     If any exist, they are bugs, and we request that you submit a
46     report.  See L</Reporting Bugs> below.
47
48 [ List each incompatible change as a =head2 entry ]
49
50 =head1 Deprecations
51
52 =head2 Literal C<< "{" >> characters in regular expressions.
53
54 It has been documented that the current plans include requiring a
55 literal C<< "{" >> to be escaped: 5.18 will emit deprecation warnings,
56 and it will be required in 5.20.
57
58 =head1 Performance Enhancements
59
60 =over 4
61
62 =item *
63
64 Fix a slowdown in freeing nested hashes. This may speedup the exit of 
65 certain programs.
66
67 =back
68
69 =head1 Modules and Pragmata
70
71 XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
72 go here.  If Module::CoreList is updated, generate an initial draft of the
73 following sections using F<Porting/corelist-perldelta.pl>, which prints stub
74 entries to STDOUT.  Results can be pasted in place of the '=head2' entries
75 below.  A paragraph summary for important changes should then be added by hand.
76 In an ideal world, dual-life modules would have a F<Changes> file that could be
77 cribbed.
78
79 [ Within each section, list entries as a =item entry ]
80
81 =head2 New Modules and Pragmata
82
83 =over 4
84
85 =item *
86
87 XXX
88
89 =back
90
91 =head2 Updated Modules and Pragmata
92
93 =over 4
94
95 =item *
96
97 L<XXX> has been upgraded from version 0.69 to version 0.70.
98
99 =back
100
101 =head2 Removed Modules and Pragmata
102
103 =over 4
104
105 =item *
106
107 XXX
108
109 =back
110
111 =head1 Documentation
112
113 XXX Changes to files in F<pod/> go here.  Consider grouping entries by
114 file and be sure to link to the appropriate page, e.g. L<perlfunc>.
115
116 =head2 New Documentation
117
118 XXX Changes which create B<new> files in F<pod/> go here.
119
120 =head3 L<XXX>
121
122 XXX Description of the purpose of the new file here
123
124 =head2 Changes to Existing Documentation
125
126 XXX Changes which significantly change existing files in F<pod/> go here.
127 However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
128 section.
129
130 =head3 L<XXX>
131
132 =over 4
133
134 =item *
135
136 XXX Description of the change here
137
138 =back
139
140 =head1 Diagnostics
141
142 The following additions or changes have been made to diagnostic output,
143 including warnings and fatal error messages.  For the complete list of
144 diagnostic messages, see L<perldiag>.
145
146 XXX New or changed warnings emitted by the core's C<C> code go here. Also
147 include any changes in L<perldiag> that reconcile it to the C<C> code.
148
149 [ Within each section, list entries as a =item entry that links to perldiag,
150   e.g.
151
152   =item *
153
154   L<Invalid version object|perldiag/"Invalid version object">
155 ]
156
157 =head2 New Diagnostics
158
159 XXX Newly added diagnostic messages go here
160 =item *
161
162 L<lvalue attribute %s already-defined subroutine|perldiag/"lvalue attribute %s already-defined subroutine">, which replaces
163 C<< lvalue attribute cannot be removed after the subroutine has been defined >>.
164
165 =head3 New Errors
166
167 =over 4
168
169 =item *
170
171 XXX L<message|perldiag/"message">
172
173 =back
174
175 =head3 New Warnings
176
177 =over 4
178
179 =item *
180
181 XXX L<message|perldiag/"message">
182
183 =back
184
185 =head2 Changes to Existing Diagnostics
186
187 XXX Changes (i.e. rewording) of diagnostic messages go here
188
189 =over 4
190
191 =item *
192
193 XXX Describe change here
194
195 =back
196
197 =head1 Utility Changes
198
199 XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
200 here. Most of these are built within the directories F<utils> and F<x2p>.
201
202 [ List utility changes as a =head3 entry for each utility and =item
203 entries for each change
204 Use L<XXX> with program names to get proper documentation linking. ]
205
206 =head3 L<XXX>
207
208 =over 4
209
210 =item *
211
212 XXX
213
214 =back
215
216 =head1 Configuration and Compilation
217
218 XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
219 go here.  Any other changes to the Perl build process should be listed here.
220 However, any platform-specific changes should be listed in the
221 L</Platform Support> section, instead.
222
223 [ List changes as a =item entry ].
224
225 =over 4
226
227 =item *
228
229 XXX
230
231 =back
232
233 =head1 Testing
234
235 XXX Any significant changes to the testing of a freshly built perl should be
236 listed here.  Changes which create B<new> files in F<t/> go here as do any
237 large changes to the testing harness (e.g. when parallel testing was added).
238 Changes to existing files in F<t/> aren't worth summarising, although the bugs
239 that they represent may be covered elsewhere.
240
241 [ List each test improvement as a =item entry ]
242
243 =over 4
244
245 =item *
246
247 F<< t/op/require_37033.t>> has been added, to test that C<require> always closes
248 the file handle that it opens. Previously, it had been leaking the file handle
249 if it happened to have file descriptor 0, which would happen if C<require> was
250 called (explicitly or implicitly) when C<STDIN> had been closed.
251
252 =back
253
254 =head1 Platform Support
255
256 XXX Any changes to platform support should be listed in the sections below.
257
258 [ Within the sections, list each platform as a =item entry with specific
259 changes as paragraphs below it. ]
260
261 =head2 New Platforms
262
263 XXX List any platforms that this version of perl compiles on, that previous
264 versions did not. These will either be enabled by new files in the F<hints/>
265 directories, or new subdirectories and F<README> files at the top level of the
266 source tree.
267
268 =over 4
269
270 =item XXX-some-platform
271
272 XXX
273
274 =back
275
276 =head2 Discontinued Platforms
277
278 XXX List any platforms that this version of perl no longer compiles on.
279
280 =over 4
281
282 =item XXX-some-platform
283
284 XXX
285
286 =back
287
288 =head2 Platform-Specific Notes
289
290 XXX List any changes for specific platforms. This could include configuration
291 and compilation changes or changes in portability/compatibility.  However,
292 changes within modules for platforms should generally be listed in the
293 L</Modules and Pragmata> section.
294
295 =over 4
296
297 =item XXX-some-platform
298
299 XXX
300
301 =back
302
303 =head1 Internal Changes
304
305 XXX Changes which affect the interface available to C<XS> code go here.
306 Other significant internal changes for future core maintainers should
307 be noted as well.
308
309 [ List each change as a =item entry ]
310
311 =over 4
312
313 =item *
314
315 XXX
316
317 =back
318
319 =head1 Selected Bug Fixes
320
321 XXX Important bug fixes in the core language are summarised here.
322 Bug fixes in files in F<ext/> and F<lib/> are best summarised in
323 L</Modules and Pragmata>.
324
325 [ List each fix as a =item entry ]
326
327 =over 4
328
329 =item *
330
331 I<Takri> is now considered a script that uses two characters. This corrects
332 a Unicode 6.1 omission.
333
334 =item *
335
336 C<< perlfunc.hmtl >> is now being generated again. [perl #107870]
337
338 =item *
339
340 C<< $$ >> is no longer tainted. Since this value comes directly from
341 C<< getpid() >>, it is always safe.
342
343 =item *
344
345 Fix leaking a file handle. [perl #37033]
346
347 =item *
348
349 An off-by-one error caused C<< /[:upper:]/ >> and C<< /[:punct:]/ >> to
350 unexepectly match characters with code points above 255. This has been
351 rectified. [perl 111400].
352
353 =item *
354
355 C<< (?foo: ...) >> no longer loses passed in character set.
356
357 =item *
358
359 Allow attributes to set C<< :lvalue >> on a defined sub. [perl 107366].
360
361 =item *
362
363 C<< die; >> with a non-reference, non-string value in $@ now properly
364 propgates that value [perl #111654].
365
366 =item *
367
368 C<< Term::ReadLine >> now uses AnyEvent instead of Tk for an event loop.
369
370
371 =back
372
373 =head1 Known Problems
374
375 XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
376 tests that had to be C<TODO>ed for the release would be noted here, unless
377 they were specific to a particular platform (see below).
378
379 This is a list of some significant unfixed bugs, which are regressions
380 from either 5.XXX.XXX or 5.XXX.XXX.
381
382 [ List each fix as a =item entry ]
383
384 =over 4
385
386 =item *
387
388 XXX
389
390 =back
391
392 =head1 Obituary
393
394 XXX If any significant core contributor has died, we've added a short obituary
395 here.
396
397 =head1 Acknowledgements
398
399 XXX Generate this with:
400
401   perl Porting/acknowledgements.pl v5.15.8..HEAD
402
403 =head1 Reporting Bugs
404
405 If you find what you think is a bug, you might check the articles
406 recently posted to the comp.lang.perl.misc newsgroup and the perl
407 bug database at http://rt.perl.org/perlbug/ .  There may also be
408 information at http://www.perl.org/ , the Perl Home Page.
409
410 If you believe you have an unreported bug, please run the L<perlbug>
411 program included with your release.  Be sure to trim your bug down
412 to a tiny but sufficient test case.  Your bug report, along with the
413 output of C<perl -V>, will be sent off to perlbug@perl.org to be
414 analysed by the Perl porting team.
415
416 If the bug you are reporting has security implications, which make it
417 inappropriate to send to a publicly archived mailing list, then please send
418 it to perl5-security-report@perl.org. This points to a closed subscription
419 unarchived mailing list, which includes
420 all the core committers, who will be able
421 to help assess the impact of issues, figure out a resolution, and help
422 co-ordinate the release of patches to mitigate or fix the problem across all
423 platforms on which Perl is supported. Please only use this address for
424 security issues in the Perl core, not for modules independently
425 distributed on CPAN.
426
427 =head1 SEE ALSO
428
429 The F<Changes> file for an explanation of how to view exhaustive details
430 on what changed.
431
432 The F<INSTALL> file for how to build Perl.
433
434 The F<README> file for general stuff.
435
436 The F<Artistic> and F<Copying> files for copyright information.
437
438 =cut