This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
remove misleading comment about CXINC; it's fine
[perl5.git] / pod / perl5134delta.pod
CommitLineData
e90f0e29
DG
1=encoding utf8
2
09d86ea5 3=for rafl
dbce4399 4changelogged up to commit d6fa5a34
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
fd773641
RGS
35=head2 C<\N{I<name>}> and C<charnames> enhancements
36
37C<\N{}>, C<charnames::vianame>, C<charnames::viacode> now know about every
38character in Unicode. Previously, they didn't know about the Hangul syllables
39nor a number of CJK (Chinese/Japanese/Korean) characters.
40
e90f0e29
DG
41=head1 Security
42
43XXX Any security-related notices go here. In particular, any security
44vulnerabilities closed should be noted here rather than in the
45L</Selected Bug Fixes> section.
46
47[ List each security issue as a =head2 entry ]
48
49=head1 Incompatible Changes
50
dbce4399 51=head2 Declare API incompatibility between blead releases
e90f0e29 52
dbce4399
FR
53Only stable releases (5.10.x, 5.12.x, 5.14.x, ...) guarantee binary
54compatibility with each other, while blead releases (5.13.x, 5.15.x, ...) often
55break this compatibility. However, prior to perl 5.13.4, all blead releases had
56the same C<PERL_API_REVISION>, C<PERL_API_VERSION>, and C<PERL_API_SUBVERSION>,
57effectively declaring them as binary compatible, which they weren't. From now
58on, blead releases will have a C<PERL_API_SUBVERSION> equal to their
59C<PERL_SUBVERSION>, explicitly marking them as incompatible with each other.
e90f0e29 60
dbce4399
FR
61Maintainance releases of stable perl versions will continue to make no
62intentionally incompatible API changes.
63
64=head2 Check API compatibility when loading XS modules
65
66When perl's API changes in incompatible ways (which usually happens between
67every major release), XS modules compiled for previous versions of perl will not
68work anymore. They will need to be recompiled against the new perl.
69
70In order to ensure that modules are recompiled, and to prevent users from
71accidentally loading modules compiled for old perls into newer ones, the
72C<XS_APIVERSION_BOOTCHECK> macro has been added. That macro, which is called
73when loading every newly compiled extension, compares the API version of the
74running perl with the version a module has been compiled for and raises an
75exception if they don't match.
e90f0e29
DG
76
77=head1 Deprecations
78
79XXX Any deprecated features, syntax, modules etc. should be listed here.
80In particular, deprecated modules should be listed here even if they are
81listed as an updated module in the L</Modules and Pragmata> section.
82
83[ List each deprecation as a =head2 entry ]
84
85=head1 Performance Enhancements
86
87XXX Changes which enhance performance without changing behaviour go here. There
88may well be none in a stable release.
89
90[ List each enhancement as a =item * entry ]
91
92=over 4
93
94=item *
95
96XXX
97
98=back
99
100=head1 Modules and Pragmata
101
102XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
103go here. If Module::CoreList is updated, generate an initial draft of the
104following sections using F<Porting/corelist-perldelta.pl>, which prints stub
105entries to STDOUT. Results can be pasted in place of the '=head2' entries
106below. A paragraph summary for important changes should then be added by hand.
107In an ideal world, dual-life modules would have a F<Changes> file that could be
108cribbed.
109
110[ Within each section, list entries as a =item NAME entry ]
111
112=head2 New Modules and Pragmata
113
114=over 4
115
116=item *
117
118XXX
119
120=back
121
122=head2 Updated Modules and Pragmata
123
124=over 4
125
5aa76647
FR
126=item C<Archive::Tar>
127
128Upgraded from version 1.64 to 1.66.
129
130Among other things, the new version adds a new option to C<ptar> to allow safe
131creation of tarballs without world-writable files on Windows, allowing those
132archives to be uploaded to CPAN.
133
a767f83c
FR
134=item C<B::Lint>
135
136Upgraded from version 1.11 to 1.12.
137
09d86ea5 138=item C<Carp>
e90f0e29 139
09d86ea5
FR
140Upgraded from version 1.16 to 1.18.
141
142L<Carp> now detects incomplete L<caller()|perlfunc/"caller EXPR"> overrides and
143avoids using bogus C<@DB::args>. This fixes certain cases of C<Bizarre copy of
144ARRAY> caused by modules overriding C<caller()> incorrectly.
145
97613388
FR
146=item C<Compress::Raw::Bzip2>
147
148Upgraded from version 2.027 to 2.030.
149
150=item C<Compress::Raw::Zlib>
151
152Upgraded from version 2.027 to 2.030.
153
09d86ea5
FR
154=item C<File::Spec>
155
156Upgraded from version 3.31 to 3.31_01.
157
158Various issues in L<File::Spec::VMS> have been fixed.
e90f0e29 159
97613388
FR
160=item C<IO::Compress>
161
162Upgraded from version 2.027 to 2.030.
163
e90f0e29
DG
164=back
165
166=head2 Removed Modules and Pragmata
167
168=over 4
169
170=item *
171
172XXX
173
174=back
175
176=head1 Documentation
177
178XXX Changes to files in F<pod/> go here. Consider grouping entries by
179file and be sure to link to the appropriate page, e.g. L<perlfunc>.
180
181=head2 New Documentation
182
183XXX Changes which create B<new> files in F<pod/> go here.
184
185=head3 L<XXX>
186
187XXX Description of the purpose of the new file here
188
189=head2 Changes to Existing Documentation
190
191XXX Changes which significantly change existing files in F<pod/> go here.
192However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
193section.
194
dbce4399
FR
195=head3 L<perldiag>
196
197=over 4
198
199=item *
200
201The following existing diagnostics are now documented:
202
203=over 4
204
205=item *
206
207L<Ambiguous use of %c resolved as operator %c|perldiag/"Ambiguous use of %c resolved as operator %c">
208
209=item *
210
211L<Ambiguous use of %c{%s} resolved to %c%s|perldiag/"Ambiguous use of %c{%s} resolved to %c%s">
212
213=item *
214
215L<Ambiguous use of %c{%s%s} resolved to %c%s%s|perldiag/"Ambiguous use of %c{%s%s} resolved to %c%s%s">
216
217=item *
218
219L<Ambiguous use of -%s resolved as -&%s()|perldiag/"Ambiguous use of -%s resolved as -&%s()">
220
221=back
222
223=back
224
09d86ea5 225=head3 L<perlport>
e90f0e29
DG
226
227=over 4
228
229=item *
230
09d86ea5
FR
231Documented a L<limitation|perlport/alarm> of L<alarm()|perlfunc/"alarm SECONDS">
232on Win32.
e90f0e29
DG
233
234=back
235
236=head1 Diagnostics
237
238The following additions or changes have been made to diagnostic output,
239including warnings and fatal error messages. For the complete list of
240diagnostic messages, see L<perldiag>.
241
242XXX New or changed warnings emitted by the core's C<C> code go here. Also
243include any changes in L<perldiag> that reconcile it to the C<C> code.
244
245[ Within each section, list entries as a =item entry ]
246
247=head2 New Diagnostics
248
249XXX Newly added diagnostic messages go here
250
251=over 4
252
253=item *
254
255XXX
256
257=back
258
259=head2 Changes to Existing Diagnostics
260
261XXX Changes (i.e. rewording) of diagnostic messages go here
262
263=over 4
264
265=item *
266
267XXX
268
269=back
270
271=head1 Utility Changes
272
273XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
274here. Most of these are built within the directories F<utils> and F<x2p>.
275
276[ List utility changes as a =head3 entry for each utility and =item
277entries for each change
278Use L<XXX> with program names to get proper documentation linking. ]
279
280=head3 L<XXX>
281
282=over 4
283
284=item *
285
286XXX
287
288=back
289
290=head1 Configuration and Compilation
291
292XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
293go here. Any other changes to the Perl build process should be listed here.
294However, any platform-specific changes should be listed in the
295L</Platform Support> section, instead.
296
297[ List changes as a =item entry ].
298
299=over 4
300
301=item *
302
09d86ea5 303Improve compatibility with C<C++> compilers.
e90f0e29
DG
304
305=back
306
307=head1 Testing
308
309XXX Any significant changes to the testing of a freshly built perl should be
310listed here. Changes which create B<new> files in F<t/> go here as do any
311large changes to the testing harness (e.g. when parallel testing was added).
312Changes to existing files in F<t/> aren't worth summarising, although the bugs
313that they represent may be covered elsewhere.
314
315[ List each test improvement as a =item entry ]
316
317=over 4
318
319=item *
320
5aa76647 321F<t/op/print.t> has been added to test implicit printing of C<$_>.
e90f0e29 322
dbce4399
FR
323=item *
324
325F<t/io/errnosig.t> has been added to test for restoration of of C<$!> when
326leaving signal handlers.
327
e90f0e29
DG
328=back
329
330=head1 Platform Support
331
332XXX Any changes to platform support should be listed in the sections below.
333
334[ Within the sections, list each platform as a =item entry with specific
335changes as paragraphs below it. ]
336
337=head2 New Platforms
338
339XXX List any platforms that this version of perl compiles on, that previous
340versions did not. These will either be enabled by new files in the F<hints/>
341directories, or new subdirectories and F<README> files at the top level of the
342source tree.
343
344=over 4
345
346=item XXX-some-platform
347
348XXX
349
350=back
351
352=head2 Discontinued Platforms
353
354XXX List any platforms that this version of perl no longer compiles on.
355
356=over 4
357
358=item XXX-some-platform
359
360XXX
361
362=back
363
364=head2 Platform-Specific Notes
365
366XXX List any changes for specific platforms. This could include configuration
367and compilation changes or changes in portability/compatibility. However,
368changes within modules for platforms should generally be listed in the
369L</Modules and Pragmata> section.
370
371=over 4
372
09d86ea5 373=item Win32
e90f0e29 374
09d86ea5
FR
375=over 4
376
377=item *
378
379Fixed a possible hang in F<t/op/readline.t>.
380
381=item *
382
383Fixed Makefile for SDK2003SP1 compilers.
384
385=back
e90f0e29
DG
386
387=back
388
389=head1 Internal Changes
390
391XXX Changes which affect the interface available to C<XS> code go here.
392Other significant internal changes for future core maintainers should
393be noted as well.
394
395[ List each test improvement as a =item entry ]
396
397=over 4
398
09d86ea5 399=item Removed C<PERL_POLLUTE>
e90f0e29 400
09d86ea5
FR
401The option to define C<PERL_POLLUTE> to expose older 5.005 symbols for backwards
402compatibility has been removed. It's use was always discouraged, and MakeMaker
403contains a more specific escape hatch:
404
405 perl Makefile.PL POLLUTE=1
406
407This can be used for modules that have not been upgraded to 5.6 naming
408conventions (and really should be completely obsolete by now).
409
844fcee5
FR
410=item Make extending the peephole optimizer easier
411
412As of version 5.8, extension authors were allowed to replace perl's peephole
413optimizer function. However, this was B<very> hard to do, as there was no way to
414add new optimizations without having to copy large parts of perl's original
415optimizer. This problem is now solved by a rework of the optimizer extension
416API. See L<perlguts/"Compile pass 3: peephole optimization"> for details.
417
e90f0e29
DG
418=back
419
420=head1 Selected Bug Fixes
421
422XXX Important bug fixes in the core language are summarised here.
423Bug fixes in files in F<ext/> and F<lib/> are best summarised in
424L</Modules and Pragmata>.
425
426[ List each fix as a =item entry ]
427
428=over 4
429
430=item *
431
09d86ea5
FR
432Fixed possible memory leak when using L<caller()|perlfunc/"caller EXPR"> to set
433C<@DB::args>.
434
435=item *
436
437Several memory leaks when loading XS modules were fixed.
e90f0e29 438
5aa76647
FR
439=item *
440
441A panic in the regular expression optimizer has been fixed (RT#75762).
442
443=item *
444
445Assignments to lvalue subroutines now honor copy-on-write behavior again, which
446has been broken since version 5.10.0 (RT#75656).
447
dbce4399
FR
448=item *
449
450Assignments to glob copies now behave just like assignments to regular globs
451(RT#1804).
452
453=item *
454
455Within signal handlers, C<$!> is now implicitly localized.
456
e90f0e29
DG
457=back
458
459=head1 Known Problems
460
461XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
462tests that had to be C<TODO>ed for the release would be noted here, unless
463they were specific to a particular platform (see below).
464
465This is a list of some significant unfixed bugs, which are regressions
466from either 5.XXX.XXX or 5.XXX.XXX.
467
468[ List each fix as a =item entry ]
469
470=over 4
471
472=item *
473
474XXX
475
476=back
477
478=head1 Obituary
479
480XXX If any significant core contributor has died, we've added a short obituary
481here.
482
483=head1 Acknowledgements
484
485XXX The list of people to thank goes here.
486
487=head1 Reporting Bugs
488
489If you find what you think is a bug, you might check the articles
490recently posted to the comp.lang.perl.misc newsgroup and the perl
491bug database at http://rt.perl.org/perlbug/ . There may also be
492information at http://www.perl.org/ , the Perl Home Page.
493
494If you believe you have an unreported bug, please run the B<perlbug>
495program included with your release. Be sure to trim your bug down
496to a tiny but sufficient test case. Your bug report, along with the
497output of C<perl -V>, will be sent off to perlbug@perl.org to be
498analysed by the Perl porting team.
499
500If the bug you are reporting has security implications, which make it
501inappropriate to send to a publicly archived mailing list, then please send
502it to perl5-security-report@perl.org. This points to a closed subscription
503unarchived mailing list, which includes all the core committers, who be able
504to help assess the impact of issues, figure out a resolution, and help
505co-ordinate the release of patches to mitigate or fix the problem across all
506platforms on which Perl is supported. Please only use this address for
507security issues in the Perl core, not for modules independently
508distributed on CPAN.
509
510=head1 SEE ALSO
511
512The F<Changes> file for an explanation of how to view exhaustive details
513on what changed.
514
515The F<INSTALL> file for how to build Perl.
516
517The F<README> file for general stuff.
518
519The F<Artistic> and F<Copying> files for copyright information.
520
521=cut