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