This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
a5baed6a035cf52a3222fb33782992c4691f6070
[perl5.git] / pod / perl5134delta.pod
1 =encoding utf8
2
3 =for rafl
4 changelogged up to commit 65bfe90c
5 * PERL_STATIC_INLINE might want to be mentioned
6
7 =head1 NAME
8
9 [ this is a template for a new perldelta file. Any text flagged as
10 XXX needs to be processed before release. ]
11
12 perldelta - what is new for perl v5.13.4
13
14 =head1 DESCRIPTION
15
16 This document describes differences between the 5.13.4 release and
17 the 5.13.3 release.
18
19 If you are upgrading from an earlier release such as 5.13.2, first read
20 L<perl5133delta>, which describes differences between 5.13.2 and
21 5.13.3.
22
23 =head1 Notice
24
25 XXX Any important notices here
26
27 =head1 Core Enhancements
28
29 XXX New core language features go here. Summarise user-visible core language
30 enhancements. Particularly prominent performance optimisations could go
31 here, but most should go in the L</Performance Enhancements> section.
32
33 [ List each enhancement as a =head2 entry ]
34
35 =head1 Security
36
37 XXX Any security-related notices go here.  In particular, any security
38 vulnerabilities closed should be noted here rather than in the
39 L</Selected Bug Fixes> section.
40
41 [ List each security issue as a =head2 entry ]
42
43 =head1 Incompatible Changes
44
45 XXX For a release on a stable branch, this section aspires to be:
46
47     There are no changes intentionally incompatible with 5.XXX.XXX. If any
48     exist, they are bugs and reports are welcome.
49
50 [ List each incompatible change as a =head2 entry ]
51
52 =head1 Deprecations
53
54 XXX Any deprecated features, syntax, modules etc. should be listed here.
55 In particular, deprecated modules should be listed here even if they are
56 listed as an updated module in the L</Modules and Pragmata> section.
57
58 [ List each deprecation as a =head2 entry ]
59
60 =head1 Performance Enhancements
61
62 XXX Changes which enhance performance without changing behaviour go here. There
63 may well be none in a stable release.
64
65 [ List each enhancement as a =item * entry ]
66
67 =over 4
68
69 =item *
70
71 XXX
72
73 =back
74
75 =head1 Modules and Pragmata
76
77 XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
78 go here.  If Module::CoreList is updated, generate an initial draft of the
79 following sections using F<Porting/corelist-perldelta.pl>, which prints stub
80 entries to STDOUT.  Results can be pasted in place of the '=head2' entries
81 below.  A paragraph summary for important changes should then be added by hand.
82 In an ideal world, dual-life modules would have a F<Changes> file that could be
83 cribbed.
84
85 [ Within each section, list entries as a =item NAME entry ]
86
87 =head2 New Modules and Pragmata
88
89 =over 4
90
91 =item *
92
93 XXX
94
95 =back
96
97 =head2 Updated Modules and Pragmata
98
99 =over 4
100
101 =item C<B::Lint>
102
103 Upgraded from version 1.11 to 1.12.
104
105 =item C<Carp>
106
107 Upgraded from version 1.16 to 1.18.
108
109 L<Carp> now detects incomplete L<caller()|perlfunc/"caller EXPR"> overrides and
110 avoids using bogus C<@DB::args>. This fixes certain cases of C<Bizarre copy of
111 ARRAY> caused by modules overriding C<caller()> incorrectly.
112
113 =item C<Compress::Raw::Bzip2>
114
115 Upgraded from version 2.027 to 2.030.
116
117 =item C<Compress::Raw::Zlib>
118
119 Upgraded from version 2.027 to 2.030.
120
121 =item C<File::Spec>
122
123 Upgraded from version 3.31 to 3.31_01.
124
125 Various issues in L<File::Spec::VMS> have been fixed.
126
127 =item C<IO::Compress>
128
129 Upgraded from version 2.027 to 2.030.
130
131 =back
132
133 =head2 Removed Modules and Pragmata
134
135 =over 4
136
137 =item *
138
139 XXX
140
141 =back
142
143 =head1 Documentation
144
145 XXX Changes to files in F<pod/> go here.  Consider grouping entries by
146 file and be sure to link to the appropriate page, e.g. L<perlfunc>.
147
148 =head2 New Documentation
149
150 XXX Changes which create B<new> files in F<pod/> go here.
151
152 =head3 L<XXX>
153
154 XXX Description of the purpose of the new file here
155
156 =head2 Changes to Existing Documentation
157
158 XXX Changes which significantly change existing files in F<pod/> go here.
159 However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
160 section.
161
162 =head3 L<perlport>
163
164 =over 4
165
166 =item *
167
168 Documented a L<limitation|perlport/alarm> of L<alarm()|perlfunc/"alarm SECONDS">
169 on Win32.
170
171 =back
172
173 =head1 Diagnostics
174
175 The following additions or changes have been made to diagnostic output,
176 including warnings and fatal error messages.  For the complete list of
177 diagnostic messages, see L<perldiag>.
178
179 XXX New or changed warnings emitted by the core's C<C> code go here. Also
180 include any changes in L<perldiag> that reconcile it to the C<C> code.
181
182 [ Within each section, list entries as a =item entry ]
183
184 =head2 New Diagnostics
185
186 XXX Newly added diagnostic messages go here
187
188 =over 4
189
190 =item *
191
192 XXX
193
194 =back
195
196 =head2 Changes to Existing Diagnostics
197
198 XXX Changes (i.e. rewording) of diagnostic messages go here
199
200 =over 4
201
202 =item *
203
204 XXX
205
206 =back
207
208 =head1 Utility Changes
209
210 XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
211 here. Most of these are built within the directories F<utils> and F<x2p>.
212
213 [ List utility changes as a =head3 entry for each utility and =item
214 entries for each change
215 Use L<XXX> with program names to get proper documentation linking. ]
216
217 =head3 L<XXX>
218
219 =over 4
220
221 =item *
222
223 XXX
224
225 =back
226
227 =head1 Configuration and Compilation
228
229 XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
230 go here.  Any other changes to the Perl build process should be listed here.
231 However, any platform-specific changes should be listed in the
232 L</Platform Support> section, instead.
233
234 [ List changes as a =item entry ].
235
236 =over 4
237
238 =item *
239
240 Improve compatibility with C<C++> compilers.
241
242 =back
243
244 =head1 Testing
245
246 XXX Any significant changes to the testing of a freshly built perl should be
247 listed here.  Changes which create B<new> files in F<t/> go here as do any
248 large changes to the testing harness (e.g. when parallel testing was added).
249 Changes to existing files in F<t/> aren't worth summarising, although the bugs
250 that they represent may be covered elsewhere.
251
252 [ List each test improvement as a =item entry ]
253
254 =over 4
255
256 =item *
257
258 XXX
259
260 =back
261
262 =head1 Platform Support
263
264 XXX Any changes to platform support should be listed in the sections below.
265
266 [ Within the sections, list each platform as a =item entry with specific
267 changes as paragraphs below it. ]
268
269 =head2 New Platforms
270
271 XXX List any platforms that this version of perl compiles on, that previous
272 versions did not. These will either be enabled by new files in the F<hints/>
273 directories, or new subdirectories and F<README> files at the top level of the
274 source tree.
275
276 =over 4
277
278 =item XXX-some-platform
279
280 XXX
281
282 =back
283
284 =head2 Discontinued Platforms
285
286 XXX List any platforms that this version of perl no longer compiles on.
287
288 =over 4
289
290 =item XXX-some-platform
291
292 XXX
293
294 =back
295
296 =head2 Platform-Specific Notes
297
298 XXX List any changes for specific platforms. This could include configuration
299 and compilation changes or changes in portability/compatibility.  However,
300 changes within modules for platforms should generally be listed in the
301 L</Modules and Pragmata> section.
302
303 =over 4
304
305 =item Win32
306
307 =over 4
308
309 =item *
310
311 Fixed a possible hang in F<t/op/readline.t>.
312
313 =item *
314
315 Fixed Makefile for SDK2003SP1 compilers.
316
317 =back
318
319 =back
320
321 =head1 Internal Changes
322
323 XXX Changes which affect the interface available to C<XS> code go here.
324 Other significant internal changes for future core maintainers should
325 be noted as well.
326
327 [ List each test improvement as a =item entry ]
328
329 =over 4
330
331 =item Removed C<PERL_POLLUTE>
332
333 The option to define C<PERL_POLLUTE> to expose older 5.005 symbols for backwards
334 compatibility has been removed. It's use was always discouraged, and MakeMaker
335 contains a more specific escape hatch:
336
337     perl Makefile.PL POLLUTE=1
338
339 This can be used for modules that have not been upgraded to 5.6 naming
340 conventions (and really should be completely obsolete by now).
341
342 =item Declare API incompatibility between blead releases
343
344 Only stable releases (5.10.x, 5.12.x, 5.14.x, ...) guarantee binary
345 compatibility with each other, while blead releases (5.13.x, 5.15.x, ...) often
346 break this compatibility. However, prior to perl 5.13.4, all blead releases had
347 the same C<PERL_API_REVISION>, C<PERL_API_VERSION>, and C<PERL_API_SUBVERSION>,
348 effectively declaring them as binary compatible, which they weren't. From now
349 on, blead releases will have a C<PERL_API_SUBVERSION> equal to their
350 C<PERL_SUBVERSION>, explicitly marking them as incompatible with each other.
351
352 Maintainance releases of stable perl's will continue to make no intentionally
353 incompatible changes.
354
355 =item Make extending the peephole optimizer easier
356
357 As of version 5.8, extension authors were allowed to replace perl's peephole
358 optimizer function. However, this was B<very> hard to do, as there was no way to
359 add new optimizations without having to copy large parts of perl's original
360 optimizer. This problem is now solved by a rework of the optimizer extension
361 API. See L<perlguts/"Compile pass 3: peephole optimization"> for details.
362
363 =back
364
365 =head1 Selected Bug Fixes
366
367 XXX Important bug fixes in the core language are summarised here.
368 Bug fixes in files in F<ext/> and F<lib/> are best summarised in
369 L</Modules and Pragmata>.
370
371 [ List each fix as a =item entry ]
372
373 =over 4
374
375 =item *
376
377 Fixed possible memory leak when using L<caller()|perlfunc/"caller EXPR"> to set
378 C<@DB::args>.
379
380 =item *
381
382 Several memory leaks when loading XS modules were fixed.
383
384 =back
385
386 =head1 Known Problems
387
388 XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
389 tests that had to be C<TODO>ed for the release would be noted here, unless
390 they were specific to a particular platform (see below).
391
392 This is a list of some significant unfixed bugs, which are regressions
393 from either 5.XXX.XXX or 5.XXX.XXX.
394
395 [ List each fix as a =item entry ]
396
397 =over 4
398
399 =item *
400
401 XXX
402
403 =back
404
405 =head1 Obituary
406
407 XXX If any significant core contributor has died, we've added a short obituary
408 here.
409
410 =head1 Acknowledgements
411
412 XXX The list of people to thank goes here.
413
414 =head1 Reporting Bugs
415
416 If you find what you think is a bug, you might check the articles
417 recently posted to the comp.lang.perl.misc newsgroup and the perl
418 bug database at http://rt.perl.org/perlbug/ .  There may also be
419 information at http://www.perl.org/ , the Perl Home Page.
420
421 If you believe you have an unreported bug, please run the B<perlbug>
422 program included with your release.  Be sure to trim your bug down
423 to a tiny but sufficient test case.  Your bug report, along with the
424 output of C<perl -V>, will be sent off to perlbug@perl.org to be
425 analysed by the Perl porting team.
426
427 If the bug you are reporting has security implications, which make it
428 inappropriate to send to a publicly archived mailing list, then please send
429 it to perl5-security-report@perl.org. This points to a closed subscription
430 unarchived mailing list, which includes all the core committers, who be able
431 to help assess the impact of issues, figure out a resolution, and help
432 co-ordinate the release of patches to mitigate or fix the problem across all
433 platforms on which Perl is supported. Please only use this address for
434 security issues in the Perl core, not for modules independently
435 distributed on CPAN.
436
437 =head1 SEE ALSO
438
439 The F<Changes> file for an explanation of how to view exhaustive details
440 on what changed.
441
442 The F<INSTALL> file for how to build Perl.
443
444 The F<README> file for general stuff.
445
446 The F<Artistic> and F<Copying> files for copyright information.
447
448 =cut