This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Optimize out unicode_to_native(), native_to_unicode()
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
a9c3e753
S
5[ this is a template for a new perldelta file. Any text flagged as XXX needs
6to be processed before release. ]
7
8perldelta - what is new for perl v5.21.10
c68523cb 9
238894db 10=head1 DESCRIPTION
c68523cb 11
a9c3e753 12This document describes differences between the 5.21.9 release and the 5.21.10
238894db 13release.
c68523cb 14
a9c3e753
S
15If you are upgrading from an earlier release such as 5.21.8, first read
16L<perl5219delta>, which describes differences between 5.21.8 and 5.21.9.
2ec11c70 17
b5d4d3b9 18=head1 Notice
2ec11c70 19
a9c3e753 20XXX Any important notices here
67f2cc75 21
b5d4d3b9 22=head1 Core Enhancements
67f2cc75 23
a9c3e753
S
24XXX New core language features go here. Summarize user-visible core language
25enhancements. Particularly prominent performance optimisations could go
26here, but most should go in the L</Performance Enhancements> section.
06ae2722 27
a9c3e753 28[ List each enhancement as a =head2 entry ]
156f41cf 29
a9c3e753 30=head1 Security
156f41cf 31
a9c3e753
S
32XXX Any security-related notices go here. In particular, any security
33vulnerabilities closed should be noted here rather than in the
34L</Selected Bug Fixes> section.
156f41cf 35
a9c3e753 36[ List each security issue as a =head2 entry ]
48c4d243 37
b5d4d3b9 38=head1 Incompatible Changes
ef8784b7 39
a9c3e753 40XXX For a release on a stable branch, this section aspires to be:
541e1e0d 41
a9c3e753
S
42 There are no changes intentionally incompatible with 5.XXX.XXX
43 If any exist, they are bugs, and we request that you submit a
44 report. See L</Reporting Bugs> below.
541e1e0d 45
a9c3e753 46[ List each incompatible change as a =head2 entry ]
541e1e0d 47
a9c3e753 48=head1 Deprecations
541e1e0d 49
a9c3e753 50XXX Any deprecated features, syntax, modules etc. should be listed here.
541e1e0d 51
a9c3e753 52=head2 Module removals
541e1e0d 53
a9c3e753 54XXX Remove this section if inapplicable.
541e1e0d 55
a9c3e753
S
56The following modules will be removed from the core distribution in a
57future release, and will at that time need to be installed from CPAN.
58Distributions on CPAN which require these modules will need to list them as
59prerequisites.
cd7bac54 60
a9c3e753
S
61The core versions of these modules will now issue C<"deprecated">-category
62warnings to alert you to this fact. To silence these deprecation warnings,
63install the modules in question from CPAN.
541e1e0d 64
a9c3e753
S
65Note that these are (with rare exceptions) fine modules that you are encouraged
66to continue to use. Their disinclusion from core primarily hinges on their
67necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
68not usually on concerns over their design.
541e1e0d 69
a9c3e753 70=over
cd7bac54 71
a9c3e753 72=item XXX
6c8457e9 73
a9c3e753
S
74XXX Note that deprecated modules should be listed here even if they are listed
75as an updated module in the L</Modules and Pragmata> section.
cd7bac54
S
76
77=back
6c8457e9 78
a9c3e753 79[ List each other deprecation as a =head2 entry ]
6c8457e9 80
a9c3e753 81=head1 Performance Enhancements
6c8457e9 82
a9c3e753
S
83XXX Changes which enhance performance without changing behaviour go here.
84There may well be none in a stable release.
127a7155 85
a9c3e753 86[ List each enhancement as a =item entry ]
6c8457e9 87
cd7bac54
S
88=over 4
89
90=item *
91
273e254d
KW
92The functions
93C<utf8::native_to_unicode()> and
94C<utf8::unicode_to_native()> (see L<utf8>)
95are now optimized out on ASCII platforms.
96There is now not even a minimal performance hit in writing code portable
97between ASCII and EBCDIC platforms.
cd7bac54
S
98
99=back
100
a9c3e753 101=head1 Modules and Pragmata
0939a951 102
a9c3e753
S
103XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
104go here. If Module::CoreList is updated, generate an initial draft of the
105following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
106for important changes should then be added by hand. In an ideal world,
107dual-life modules would have a F<Changes> file that could be cribbed.
c49582c3 108
a9c3e753 109[ Within each section, list entries as a =item entry ]
9024667a 110
a9c3e753 111=head2 New Modules and Pragmata
31e72f27
KW
112
113=over 4
114
115=item *
116
a9c3e753 117XXX
0ce5e53e 118
31e72f27
KW
119=back
120
a9c3e753 121=head2 Updated Modules and Pragmata
cd7bac54 122
a9c3e753 123=over 4
cd7bac54
S
124
125=item *
126
b9c683b3
TC
127L<B::Deparse> has been upgraded from version 1.33 to 1.34.
128
129Deparse C<$#_> as that instead of as C<$#{_}>. [perl #123947]
130
131=item *
132
79116533
SH
133L<CPAN> has been upgraded from version 2.05 to 2.09-TRIAL.
134
135=over 4
136
137=item *
138
139Add support for C<Cwd::getdcwd()> and introduce workaround for a misbehaviour
140seen on Strawberry Perl 5.20.1.
141
142=item *
143
144Fix C<chdir()> after building dependencies bug.
145
146=item *
147
148Introduce experimental support for plugins/hooks.
149
150=item *
151
152Integrate the App::Cpan sources.
153
154=item *
155
156Do not check recursion on optional dependencies.
157
158=item *
159
160Sanity check META.yml to contain a hash.
161L<[cpan #95271]|https://rt.cpan.org/Ticket/Display.html?id=95271>
162
163=back
0939a951 164
c0ff9143
JH
165=item *
166
9409f752
SH
167L<Test::Simple> has been reverted from version 1.301001_098 to 1.001014.
168
169=item *
170
03a97c81
SH
171L<Text::Balanced> has been upgraded from version 2.02 to 2.03.
172
173No changes to installed files other than the version bump.
174
175=item *
176
ca2f5fd9 177L<threads> has been upgraded from version 1.96 to 1.99.
c0ff9143 178
a9c3e753 179=back
0939a951 180
a9c3e753 181=head2 Removed Modules and Pragmata
cd7bac54 182
a9c3e753 183=over 4
cd7bac54
S
184
185=item *
186
a9c3e753 187XXX
cd7bac54 188
2ff1ebfe 189=back
541e1e0d 190
cd7bac54
S
191=head1 Documentation
192
a9c3e753
S
193XXX Changes to files in F<pod/> go here. Consider grouping entries by
194file and be sure to link to the appropriate page, e.g. L<perlfunc>.
195
cd7bac54
S
196=head2 New Documentation
197
a9c3e753 198XXX Changes which create B<new> files in F<pod/> go here.
541e1e0d 199
a9c3e753 200=head3 L<XXX>
d676fe86 201
a9c3e753 202XXX Description of the purpose of the new file here
d676fe86 203
a9c3e753 204=head2 Changes to Existing Documentation
d2fff9f6 205
a9c3e753
S
206XXX Changes which significantly change existing files in F<pod/> go here.
207However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
208section.
d2fff9f6 209
a9c3e753 210=head3 L<XXX>
e329daf3 211
cd7bac54 212=over 4
e329daf3 213
cd7bac54 214=item *
e329daf3 215
a9c3e753 216XXX Description of the change here
ba31029d 217
cd7bac54
S
218=back
219
a9c3e753 220=head1 Diagnostics
cd7bac54 221
a9c3e753
S
222The following additions or changes have been made to diagnostic output,
223including warnings and fatal error messages. For the complete list of
224diagnostic messages, see L<perldiag>.
cd7bac54 225
a9c3e753
S
226XXX New or changed warnings emitted by the core's C<C> code go here. Also
227include any changes in L<perldiag> that reconcile it to the C<C> code.
cd7bac54 228
a9c3e753 229=head2 New Diagnostics
541e1e0d 230
a9c3e753
S
231XXX Newly added diagnostic messages go under here, separated into New Errors
232and New Warnings
541e1e0d 233
a9c3e753 234=head3 New Errors
cd7bac54
S
235
236=over 4
237
238=item *
239
a9c3e753 240XXX L<message|perldiag/"message">
cd7bac54
S
241
242=back
541e1e0d 243
a9c3e753 244=head3 New Warnings
541e1e0d 245
2ff1ebfe 246=over 4
aa67537d 247
4c7a0d98
DD
248=item *
249
a9c3e753 250XXX L<message|perldiag/"message">
4c7a0d98 251
b5d4d3b9 252=back
4c7a0d98 253
a9c3e753 254=head2 Changes to Existing Diagnostics
a5d66edf 255
a9c3e753 256XXX Changes (i.e. rewording) of diagnostic messages go here
f348c3d8 257
cd7bac54 258=over 4
f348c3d8 259
cd7bac54 260=item *
2ff1ebfe 261
a9c3e753 262XXX Describe change here
f348c3d8 263
cd7bac54 264=back
2ff1ebfe 265
a9c3e753 266=head1 Utility Changes
f348c3d8 267
a9c3e753
S
268XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
269Most of these are built within the directory F<utils>.
4dc623f0 270
a9c3e753
S
271[ List utility changes as a =head2 entry for each utility and =item
272entries for each change
273Use L<XXX> with program names to get proper documentation linking. ]
84d03adf 274
a9c3e753 275=head2 L<XXX>
ff433f2d 276
9ce6583e 277=over 4
4cd408ba 278
9ce6583e 279=item *
6ed80d55 280
a9c3e753 281XXX
9ce6583e 282
2ff1ebfe 283=back
ab0b796c 284
a9c3e753 285=head1 Configuration and Compilation
cd7bac54 286
a9c3e753
S
287XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
288go here. Any other changes to the Perl build process should be listed here.
289However, any platform-specific changes should be listed in the
290L</Platform Support> section, instead.
cd7bac54 291
a9c3e753 292[ List changes as a =item entry ].
8c6180a9 293
2ff1ebfe 294=over 4
0561e60b 295
9ce6583e 296=item *
dd200dff 297
a9c3e753 298XXX
c877af1b 299
cd7bac54 300=back
c877af1b 301
a9c3e753 302=head1 Testing
cd7bac54 303
a9c3e753
S
304XXX Any significant changes to the testing of a freshly built perl should be
305listed here. Changes which create B<new> files in F<t/> go here as do any
306large changes to the testing harness (e.g. when parallel testing was added).
307Changes to existing files in F<t/> aren't worth summarizing, although the bugs
308that they represent may be covered elsewhere.
cd7bac54 309
a9c3e753 310[ List each test improvement as a =item entry ]
bb8c7e27 311
b5d4d3b9 312=over 4
83b69bfd
DD
313
314=item *
315
a9c3e753 316XXX
13adb056 317
b5d4d3b9 318=back
391823f2 319
a9c3e753 320=head1 Platform Support
6c8457e9 321
a9c3e753 322XXX Any changes to platform support should be listed in the sections below.
6c8457e9 323
a9c3e753
S
324[ Within the sections, list each platform as a =item entry with specific
325changes as paragraphs below it. ]
db98db4e 326
a9c3e753 327=head2 New Platforms
8818afe8 328
a9c3e753
S
329XXX List any platforms that this version of perl compiles on, that previous
330versions did not. These will either be enabled by new files in the F<hints/>
331directories, or new subdirectories and F<README> files at the top level of the
332source tree.
8af808bf 333
2ff1ebfe 334=over 4
fdcaecb7 335
a9c3e753 336=item XXX-some-platform
fdcaecb7 337
a9c3e753 338XXX
2af7c6b6 339
4dc623f0 340=back
2af7c6b6 341
a9c3e753
S
342=head2 Discontinued Platforms
343
344XXX List any platforms that this version of perl no longer compiles on.
70cee83f 345
b5d4d3b9 346=over 4
e5fbfbc1 347
a9c3e753 348=item XXX-some-platform
b4045391 349
a9c3e753 350XXX
b4045391 351
2ff1ebfe 352=back
b4045391 353
2ff1ebfe 354=head2 Platform-Specific Notes
8c847e66 355
a9c3e753
S
356XXX List any changes for specific platforms. This could include configuration
357and compilation changes or changes in portability/compatibility. However,
358changes within modules for platforms should generally be listed in the
359L</Modules and Pragmata> section.
8c847e66 360
2ff1ebfe 361=over 4
d345f487 362
a9c3e753 363=item XXX-some-platform
d345f487 364
a9c3e753 365XXX
cd7bac54 366
4dc623f0 367=back
353075a0 368
a9c3e753 369=head1 Internal Changes
9f122eef 370
a9c3e753
S
371XXX Changes which affect the interface available to C<XS> code go here. Other
372significant internal changes for future core maintainers should be noted as
373well.
2ff1ebfe 374
a9c3e753 375[ List each change as a =item entry ]
2ff1ebfe 376
b5d4d3b9 377=over 4
2ec11c70
DM
378
379=item *
380
a9c3e753 381XXX
2683609f 382
4dc623f0 383=back
c7f058f0 384
4dc623f0 385=head1 Selected Bug Fixes
0ef4323a 386
a9c3e753
S
387XXX Important bug fixes in the core language are summarized here. Bug fixes in
388files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
567291b6 389
a9c3e753 390[ List each fix as a =item entry ]
436f6503 391
a9c3e753 392=over 4
2bf83140 393
041a5927
FC
394=item *
395
5268e911
TC
396Repeated global pattern matches in scalar context on large tainted
397strings were exponentially slow depending on the current match
398position in the string. [perl #123202]
041a5927 399
a9c3e753 400=back
ea13b07e 401
a9c3e753 402=head1 Known Problems
b65adbec 403
a9c3e753
S
404XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
405tests that had to be C<TODO>ed for the release would be noted here. Unfixed
406platform specific bugs also go here.
b65adbec 407
a9c3e753 408[ List each fix as a =item entry ]
370c71c5 409
a9c3e753 410=over 4
b94c7836
FC
411
412=item *
413
a9c3e753 414XXX
439f6100 415
a9c3e753 416=back
e3e8f263 417
a9c3e753 418=head1 Errata From Previous Releases
cd7bac54 419
a9c3e753 420=over 4
e3e8f263 421
cb6cc22b
TC
422=item *
423
a9c3e753
S
424XXX Add anything here that we forgot to add, or were mistaken about, in
425the perldelta of a previous release.
cb6cc22b 426
b5d4d3b9 427=back
fcfb7b86 428
a9c3e753 429=head1 Obituary
cd7bac54 430
a9c3e753
S
431XXX If any significant core contributor has died, we've added a short obituary
432here.
cd7bac54 433
a9c3e753 434=head1 Acknowledgements
541e1e0d 435
a9c3e753 436XXX Generate this with:
01d42a22 437
a9c3e753 438 perl Porting/acknowledgements.pl v5.21.9..HEAD
f5b73711 439
44691e6f
AB
440=head1 Reporting Bugs
441
e08634c5
SH
442If you find what you think is a bug, you might check the articles recently
443posted to the comp.lang.perl.misc newsgroup and the perl bug database at
238894db 444https://rt.perl.org/ . There may also be information at
7ef8b31d 445http://www.perl.org/ , the Perl Home Page.
44691e6f 446
e08634c5
SH
447If you believe you have an unreported bug, please run the L<perlbug> program
448included with your release. Be sure to trim your bug down to a tiny but
449sufficient test case. Your bug report, along with the output of C<perl -V>,
450will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
451
452If the bug you are reporting has security implications, which make it
e08634c5
SH
453inappropriate to send to a publicly archived mailing list, then please send it
454to perl5-security-report@perl.org. This points to a closed subscription
455unarchived mailing list, which includes all the core committers, who will be
456able to help assess the impact of issues, figure out a resolution, and help
f9001595 457co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
458platforms on which Perl is supported. Please only use this address for
459security issues in the Perl core, not for modules independently distributed on
460CPAN.
44691e6f
AB
461
462=head1 SEE ALSO
463
e08634c5
SH
464The F<Changes> file for an explanation of how to view exhaustive details on
465what changed.
44691e6f
AB
466
467The F<INSTALL> file for how to build Perl.
468
469The F<README> file for general stuff.
470
471The F<Artistic> and F<Copying> files for copyright information.
472
473=cut