This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
pp_pack.c: Silence compiler warning
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
2ff1ebfe
MH
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.9
c68523cb 9
238894db 10=head1 DESCRIPTION
c68523cb 11
2ff1ebfe 12This document describes differences between the 5.21.8 release and the 5.21.9
238894db 13release.
c68523cb 14
2ff1ebfe
MH
15If you are upgrading from an earlier release such as 5.21.7, first read
16L<perl5218delta>, which describes differences between 5.21.7 and 5.21.8.
2ec11c70 17
b5d4d3b9 18=head1 Notice
2ec11c70 19
2ff1ebfe 20XXX Any important notices here
67f2cc75 21
b5d4d3b9 22=head1 Core Enhancements
67f2cc75 23
2ff1ebfe
MH
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.
25941dca 27
64935bc6
KW
28=head2 qr/\b{gcb}/ is now handled in regular expressions
29
30C<gcb> stands for Grapheme Cluster Boundary. It is a Unicode property
31that finds the boundary between sequences of characters that look like a
32single character to a native speaker of a language. Perl has long had
33the ability to deal with these through the C<\X> regular escape
34sequence. Now, there is an alternative way of handling these. See
35L<perlrebackslash/\b{}, \b, \B{}, \B> for details.
25941dca 36
ae3bb8ea
KW
37=head2 qr/\b{wb}/ is now handled in regular expressions
38
39C<wb> stands for Word Boundary. It is a Unicode property
40that finds the boundary between words. This is similar to the plain
41C<\b> (without braces) but is more suitable for natural language
42processing. It knows, for example that apostrophes can occur in the
43middle of words. See L<perlrebackslash/\b{}, \b, \B{}, \B> for details.
44
06ae2722
KW
45=head2 qr/\b{sb}/ is now handled in regular expressions
46
47C<sb> stands for Sentence Boundary. It is a Unicode property
48to aid in parsing natural language sentences.
49See L<perlrebackslash/\b{}, \b, \B{}, \B> for details.
156f41cf
FC
50
51=head2 New bitwise operators
52
53A new experimental facility has been added that makes the four standard
54bitwise operators (C<& | ^ ~>) treat their operands consistently as
55numbers, and introduces four new dotted operators (C<&. |. ^. ~.>) that
56treat their operands consistently as strings. The same applies to the
57assignment variants (C<&= |= ^= &.= |.= ^.=>).
58
59To use this, enable the "bitwise" feature and disable the
60"experimental::bitwise" warnings category. See L<perlop/Bitwise String
2bf83140 61Operators> for details. [perl #123466]
06ae2722 62
2ff1ebfe 63=head1 Security
25941dca 64
2ff1ebfe
MH
65XXX Any security-related notices go here. In particular, any security
66vulnerabilities closed should be noted here rather than in the
67L</Selected Bug Fixes> section.
25941dca 68
2ff1ebfe 69[ List each security issue as a =head2 entry ]
48c4d243 70
b5d4d3b9 71=head1 Incompatible Changes
ef8784b7 72
2ff1ebfe 73XXX For a release on a stable branch, this section aspires to be:
595f54ae 74
2ff1ebfe
MH
75 There are no changes intentionally incompatible with 5.XXX.XXX
76 If any exist, they are bugs, and we request that you submit a
77 report. See L</Reporting Bugs> below.
595f54ae 78
2ff1ebfe 79[ List each incompatible change as a =head2 entry ]
bba618d2 80
2ff1ebfe 81=head1 Deprecations
541e1e0d 82
2ff1ebfe 83XXX Any deprecated features, syntax, modules etc. should be listed here.
541e1e0d 84
2ff1ebfe 85=head2 Module removals
541e1e0d 86
2ff1ebfe 87XXX Remove this section if inapplicable.
541e1e0d 88
2ff1ebfe
MH
89The following modules will be removed from the core distribution in a
90future release, and will at that time need to be installed from CPAN.
91Distributions on CPAN which require these modules will need to list them as
92prerequisites.
541e1e0d 93
2ff1ebfe
MH
94The core versions of these modules will now issue C<"deprecated">-category
95warnings to alert you to this fact. To silence these deprecation warnings,
96install the modules in question from CPAN.
541e1e0d 97
2ff1ebfe
MH
98Note that these are (with rare exceptions) fine modules that you are encouraged
99to continue to use. Their disinclusion from core primarily hinges on their
100necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
101not usually on concerns over their design.
541e1e0d 102
2ff1ebfe 103=over
541e1e0d 104
2ff1ebfe 105=item XXX
541e1e0d 106
2ff1ebfe
MH
107XXX Note that deprecated modules should be listed here even if they are listed
108as an updated module in the L</Modules and Pragmata> section.
541e1e0d 109
2ff1ebfe 110=back
c196824d 111
2ff1ebfe 112[ List each other deprecation as a =head2 entry ]
541e1e0d 113
2ff1ebfe 114=head1 Performance Enhancements
541e1e0d 115
2ff1ebfe
MH
116XXX Changes which enhance performance without changing behaviour go here.
117There may well be none in a stable release.
541e1e0d 118
2ff1ebfe 119[ List each enhancement as a =item entry ]
541e1e0d 120
2ff1ebfe 121=over 4
541e1e0d
MH
122
123=item *
124
2ff1ebfe 125XXX
541e1e0d 126
2ff1ebfe 127=back
541e1e0d 128
2ff1ebfe 129=head1 Modules and Pragmata
541e1e0d 130
2ff1ebfe
MH
131XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
132go here. If Module::CoreList is updated, generate an initial draft of the
133following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
134for important changes should then be added by hand. In an ideal world,
135dual-life modules would have a F<Changes> file that could be cribbed.
541e1e0d 136
2ff1ebfe 137[ Within each section, list entries as a =item entry ]
541e1e0d 138
2ff1ebfe 139=head2 New Modules and Pragmata
541e1e0d 140
2ff1ebfe 141=over 4
541e1e0d
MH
142
143=item *
144
2ff1ebfe 145XXX
541e1e0d 146
2ff1ebfe 147=back
541e1e0d 148
2ff1ebfe 149=head2 Updated Modules and Pragmata
541e1e0d 150
2ff1ebfe 151=over 4
541e1e0d
MH
152
153=item *
154
6c8457e9
S
155L<attributes> has been upgraded from version 0.25 to 0.26.
156
157=item *
158
897dbee7
TC
159L<B> has been upgraded from version 1.55 to 1.56.
160
161=item *
162
6c8457e9
S
163L<B::Debug> has been upgraded from version 1.22 to 1.23.
164
165=item *
166
167L<Benchmark> has been upgraded from version 1.19 to 1.20.
168
169=item *
170
65e96328 171L<bigint>, L<bignum>, L<bigrat> have been upgraded to version 0.39.
127a7155 172
65e96328
TC
173Document in CAVEATS that using strings as numbers won't always invoke
174the big number overloading, and how to invoke it. [perl #123064]
541e1e0d 175
9e8951cf
TC
176=item *
177
6c8457e9
S
178L<Carp> has been upgraded from version 1.34 to 1.35.
179
180=item *
181
182L<Config::Perl::V> has been upgraded from version 0.22 to 0.23.
183
184=item *
185
186L<CPAN::Meta::Requirements> has been upgraded from version 2.131 to 2.132
187
188=item *
189
65e96328 190L<Devel::Peek> has been upgraded from version 1.21 to 1.22.
1b3da025 191
65e96328
TC
192=item *
193
6c8457e9 194L<Encode> has been upgraded from version 2.67 to 2.70.
65e96328
TC
195
196Building in C++ mode on Windows now works.
1b3da025
TC
197
198=item *
199
8e0a272f
TC
200L<Errno> has been upgraded from version 1.22 to 1.23.
201
202Add C<-P> to the preprocessor command-line on GCC 5. GCC added extra
203line directives, breaking parsing of error code definitions. [perl
204#123784]
205
206=item *
207
6c8457e9
S
208L<HTTP::Tiny> has been upgraded from version 0.053 to 0.054.
209
210=item *
211
0bbdc33c
TC
212L<Opcode> has been upgraded from version 1.31 to 1.32.
213
214=item *
215
6c8457e9
S
216L<Perl::OSType> has been upgraded from version 1.007 to 1.008.
217
218=item *
219
9e8951cf
TC
220L<PerlIO::scalar> has been upgraded from version 0.21 to 0.22.
221
eca355c2 222Attempting to write at file positions impossible for the platform now
9e8951cf
TC
223fail early rather than wrapping at 4GB.
224
e5240100
SH
225=item *
226
6c8457e9
S
227L<Pod::Parser> has been upgraded from version 1.62 to 1.63.
228
229=item *
230
231L<Pod::Perldoc> has been upgraded from version 3.24 to 3.25.
232
233=item *
234
235L<POSIX> has been upgraded from version 1.49 to 1.51.
236
237=item *
238
239L<re> has been upgraded from version 0.30 to 0.31.
240
241=item *
242
243L<Socket> has been upgraded from version 2.016 to 2.018.
244
245=item *
246
247L<Test::Simple> has been upgraded from version 1.301001_097 to 1.301001_098.
248
249=item *
250
8884fcd5
SH
251L<Win32> has been upgraded from version 0.49 to 0.51.
252
253GetOSName() now supports Windows 8.1, and building in C++ mode now works.
254
255=item *
256
e5240100
SH
257L<Win32API::File> has been upgraded from version 0.1201 to 0.1202
258
259Building in C++ mode now works.
260
3db719fe
JK
261=item *
262
6c8457e9 263L<Unicode::Collate> has been upgraded from version 1.10 to 1.11.
c49582c3 264
9024667a
KW
265=item *
266
267L<Unicode::UCD> has been upgraded from version 0.60 to 0.61.
31e72f27
KW
268
269=over 4
270
271=item *
272
9024667a
KW
273A new function L<property_values()|Unicode::UCD/prop_values()>
274has been added to return a given property's possible values.
275
31e72f27
KW
276=item *
277
12fee290
KW
278A new function L<charprop()|Unicode::UCD/charprop()>
279has been added to return the value of a given property for a given code
280point.
281
282=item *
283
3ba01ffb 284A new function L<charprops_all()|Unicode::UCD/charprops_all()>
40416981
KW
285has been added to return the values of all Unicode properties for a
286given code point.
287
288=item *
289
31e72f27
KW
290A bug has been fixed so that L<propaliases()|Unicode::UCD/prop_aliases()>
291returns the correct short and long names for the Perl extensions where
292it was incorrect.
293
0ce5e53e
KW
294=item *
295
5c1d8161
KW
296A bug has been fixed so that
297L<prop_value_aliases()|Unicode::UCD/prop_value_aliases()>
298returns C<undef> instead of a wrong result for properties that are Perl
299extensions.
300
301=item *
302
0ce5e53e
KW
303This module now works on EBCDIC platforms.
304
31e72f27
KW
305=back
306
2ff1ebfe 307=back
541e1e0d 308
2ff1ebfe 309=head2 Removed Modules and Pragmata
541e1e0d 310
2ff1ebfe 311=over 4
d676fe86
JK
312
313=item *
314
2ff1ebfe 315XXX
d2fff9f6 316
2ff1ebfe 317=back
d2fff9f6 318
2ff1ebfe 319=head1 Documentation
e329daf3 320
2ff1ebfe
MH
321XXX Changes to files in F<pod/> go here. Consider grouping entries by
322file and be sure to link to the appropriate page, e.g. L<perlfunc>.
e329daf3 323
2ff1ebfe 324=head2 New Documentation
e329daf3 325
2ff1ebfe 326XXX Changes which create B<new> files in F<pod/> go here.
ba31029d 327
2ff1ebfe 328=head3 L<XXX>
b045b8b5 329
2ff1ebfe 330XXX Description of the purpose of the new file here
541e1e0d 331
2ff1ebfe 332=head2 Changes to Existing Documentation
541e1e0d 333
2ff1ebfe
MH
334XXX Changes which significantly change existing files in F<pod/> go here.
335However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
336section.
541e1e0d 337
2ff1ebfe 338=head3 L<XXX>
541e1e0d 339
2ff1ebfe 340=over 4
aa67537d 341
4c7a0d98
DD
342=item *
343
2ff1ebfe 344XXX Description of the change here
4c7a0d98 345
b5d4d3b9 346=back
4c7a0d98 347
a5d66edf
JK
348=head3 L<perlfaq>
349
350=over 4
351
352=item *
353
354L<perlfaq> has been synchronized with version 5.021009 from CPAN.
355
356=back
357
9ce6583e 358=head1 Diagnostics
f348c3d8 359
9ce6583e
MH
360The following additions or changes have been made to diagnostic output,
361including warnings and fatal error messages. For the complete list of
362diagnostic messages, see L<perldiag>.
f348c3d8 363
2ff1ebfe
MH
364XXX New or changed warnings emitted by the core's C<C> code go here. Also
365include any changes in L<perldiag> that reconcile it to the C<C> code.
366
9ce6583e 367=head2 New Diagnostics
f348c3d8 368
2ff1ebfe
MH
369XXX Newly added diagnostic messages go under here, separated into New Errors
370and New Warnings
371
9ce6583e 372=head3 New Errors
f348c3d8 373
b5d4d3b9 374=over 4
6ed80d55 375
60dde9d3 376=item *
f348c3d8 377
2ff1ebfe 378XXX L<message|perldiag/"message">
4dc623f0 379
b5d4d3b9 380=back
84d03adf 381
9ce6583e 382=head3 New Warnings
ff433f2d 383
9ce6583e 384=over 4
4cd408ba 385
9ce6583e 386=item *
6ed80d55 387
2ff1ebfe 388XXX L<message|perldiag/"message">
9ce6583e 389
2ff1ebfe 390=back
ab0b796c 391
2ff1ebfe 392=head2 Changes to Existing Diagnostics
8c6180a9 393
2ff1ebfe 394XXX Changes (i.e. rewording) of diagnostic messages go here
8c6180a9 395
2ff1ebfe 396=over 4
0561e60b 397
9ce6583e 398=item *
dd200dff 399
2ff1ebfe 400XXX Describe change here
9ce6583e 401
2ff1ebfe 402=back
73e793fc 403
2ff1ebfe 404=head1 Utility Changes
9ce6583e 405
2ff1ebfe
MH
406XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
407Most of these are built within the directory F<utils>.
73e793fc 408
2ff1ebfe
MH
409[ List utility changes as a =head2 entry for each utility and =item
410entries for each change
411Use L<XXX> with program names to get proper documentation linking. ]
613abc6d 412
2ff1ebfe 413=head2 L<XXX>
9ce6583e 414
2ff1ebfe 415=over 4
9ce6583e 416
b927b7e9
KW
417=item *
418
8e0a272f
TC
419F<h2ph> now handles hexadecimal constants in the compiler's predefined
420macro definitions, as visible in C<$Config{cppsymbols}>. [perl
421#123784]
db5cc9f9 422
2ff1ebfe 423=back
db5cc9f9 424
2ff1ebfe 425=head1 Configuration and Compilation
c877af1b 426
2ff1ebfe
MH
427XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
428go here. Any other changes to the Perl build process should be listed here.
429However, any platform-specific changes should be listed in the
430L</Platform Support> section, instead.
c877af1b 431
2ff1ebfe 432[ List changes as a =item entry ].
db5cc9f9 433
2ff1ebfe 434=over 4
db5cc9f9 435
acdfc3b6
KW
436=item *
437
2ff1ebfe 438XXX
db5cc9f9 439
b5d4d3b9 440=back
8c6180a9 441
2ff1ebfe 442=head1 Testing
780fcc9f 443
2ff1ebfe
MH
444XXX Any significant changes to the testing of a freshly built perl should be
445listed here. Changes which create B<new> files in F<t/> go here as do any
446large changes to the testing harness (e.g. when parallel testing was added).
447Changes to existing files in F<t/> aren't worth summarizing, although the bugs
448that they represent may be covered elsewhere.
40a81b59 449
2ff1ebfe 450[ List each test improvement as a =item entry ]
bb8c7e27 451
b5d4d3b9 452=over 4
83b69bfd
DD
453
454=item *
455
2ff1ebfe 456XXX
13adb056 457
b5d4d3b9 458=back
391823f2 459
2ff1ebfe 460=head1 Platform Support
6ff8f256 461
6c8457e9
S
462=over 4
463
464=item Windows
465
466In release 5.21.8 compiling on VC with dmake was broken. Fixed.
db98db4e 467
6c8457e9 468=back
8818afe8 469
2ff1ebfe 470=head2 New Platforms
8af808bf 471
2ff1ebfe
MH
472XXX List any platforms that this version of perl compiles on, that previous
473versions did not. These will either be enabled by new files in the F<hints/>
474directories, or new subdirectories and F<README> files at the top level of the
475source tree.
8af808bf 476
2ff1ebfe 477=over 4
fdcaecb7 478
2ff1ebfe 479=item XXX-some-platform
fdcaecb7 480
2ff1ebfe 481XXX
2af7c6b6 482
4dc623f0 483=back
2af7c6b6 484
2ff1ebfe 485=head2 Discontinued Platforms
9e26817d 486
2ff1ebfe 487XXX List any platforms that this version of perl no longer compiles on.
70cee83f 488
b5d4d3b9 489=over 4
e5fbfbc1 490
2ff1ebfe 491=item XXX-some-platform
b4045391 492
2ff1ebfe 493XXX
b4045391 494
2ff1ebfe 495=back
b4045391 496
2ff1ebfe 497=head2 Platform-Specific Notes
8c847e66 498
2ff1ebfe
MH
499XXX List any changes for specific platforms. This could include configuration
500and compilation changes or changes in portability/compatibility. However,
501changes within modules for platforms should generally be listed in the
502L</Modules and Pragmata> section.
8c847e66 503
2ff1ebfe 504=over 4
d345f487 505
8b08c4b9 506=item Windows
d345f487 507
8b08c4b9
SH
508Perl can now be built in C++ mode on Windows by setting the makefile macro
509C<USE_CPLUSPLUS> to the value "define".
353075a0 510
5904c5c0
TC
511List form pipe open no longer falls back to the shell.
512
4dc623f0 513=back
353075a0 514
4dc623f0 515=head1 Internal Changes
9f122eef 516
2ff1ebfe
MH
517XXX Changes which affect the interface available to C<XS> code go here. Other
518significant internal changes for future core maintainers should be noted as
519well.
520
521[ List each change as a =item entry ]
522
b5d4d3b9 523=over 4
2ec11c70
DM
524
525=item *
526
2ff1ebfe 527XXX
2683609f 528
4dc623f0 529=back
c7f058f0 530
4dc623f0 531=head1 Selected Bug Fixes
0ef4323a 532
2ff1ebfe
MH
533XXX Important bug fixes in the core language are summarized here. Bug fixes in
534files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
00ba25b8 535
2ff1ebfe 536[ List each fix as a =item entry ]
567291b6 537
2ff1ebfe 538=over 4
436f6503 539
f44e0270
FC
540=item *
541
d536498f
TC
542The original visible value of C<$/> is now preserved when it is set to
543an invalid value. Previously if you set C<$/> to a reference to an
544array, for example, perl would produce a runtime error and not set
545C<PL_rs>, but perl code that checked C<$/> would see the array
546reference. [perl #123218]
ea13b07e 547
7dbd4c44
KW
548=item *
549
550In a regular expression pattern, a POSIX class, like C<[:ascii:]>, must
551be inside a bracketed character class, like C</qr[[:ascii:]]>. A
552warning is issued when something looking like a POSIX class is not
553inside a bracketed class. That warning wasn't getting generated when
554the POSIX class was negated: C<[:^ascii:]>. This is now fixed.
555
47c2f9f1
TC
556=item *
557
558Fix a couple of other size calculation overflows. [perl #123554]
559
5bd81aa7
TC
560=item *
561
562A bug introduced in 5.21.6, C<dump LABEL> acted the same as C<goto
563LABEL>. This has been fixed. [perl #123836]
564
bea370a8
FC
565=item *
566
567Perl 5.14.0 introduced a bug whereby C<eval { LABEL: }> would crash. This
568has been fixed. [perl #123652]
569
2bf83140
FC
570=item *
571
572Various crashes due to the parser getting confused by syntax errors have
573been fixed. [perl #123617] [perl #123737] [perl #123753] [perl #123677]
574
041a5927
FC
575=item *
576
577Code like C</$a[/> used to read the next line of input and treat it as
578though it came immediately after the opening bracket. Some invalid code
579consequently would parse and run, but some code caused crashes, so this is
580now disallowed. [perl #123712]
581
2ff1ebfe 582=back
ea13b07e 583
2ff1ebfe 584=head1 Known Problems
b65adbec 585
2ff1ebfe
MH
586XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
587tests that had to be C<TODO>ed for the release would be noted here. Unfixed
588platform specific bugs also go here.
b65adbec 589
2ff1ebfe 590[ List each fix as a =item entry ]
370c71c5 591
2ff1ebfe 592=over 4
b94c7836
FC
593
594=item *
595
2ff1ebfe 596XXX
439f6100 597
2ff1ebfe 598=back
439f6100 599
2ff1ebfe 600=head1 Errata From Previous Releases
e3e8f263 601
2ff1ebfe 602=over 4
e3e8f263 603
cb6cc22b
TC
604=item *
605
2ff1ebfe
MH
606XXX Add anything here that we forgot to add, or were mistaken about, in
607the perldelta of a previous release.
cb6cc22b 608
b5d4d3b9 609=back
fcfb7b86 610
2ff1ebfe 611=head1 Obituary
541e1e0d 612
2ff1ebfe
MH
613XXX If any significant core contributor has died, we've added a short obituary
614here.
541e1e0d 615
2ff1ebfe 616=head1 Acknowledgements
541e1e0d 617
2ff1ebfe 618XXX Generate this with:
01d42a22 619
2ff1ebfe 620 perl Porting/acknowledgements.pl v5.21.8..HEAD
f5b73711 621
44691e6f
AB
622=head1 Reporting Bugs
623
e08634c5
SH
624If you find what you think is a bug, you might check the articles recently
625posted to the comp.lang.perl.misc newsgroup and the perl bug database at
238894db 626https://rt.perl.org/ . There may also be information at
7ef8b31d 627http://www.perl.org/ , the Perl Home Page.
44691e6f 628
e08634c5
SH
629If you believe you have an unreported bug, please run the L<perlbug> program
630included with your release. Be sure to trim your bug down to a tiny but
631sufficient test case. Your bug report, along with the output of C<perl -V>,
632will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
633
634If the bug you are reporting has security implications, which make it
e08634c5
SH
635inappropriate to send to a publicly archived mailing list, then please send it
636to perl5-security-report@perl.org. This points to a closed subscription
637unarchived mailing list, which includes all the core committers, who will be
638able to help assess the impact of issues, figure out a resolution, and help
f9001595 639co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
640platforms on which Perl is supported. Please only use this address for
641security issues in the Perl core, not for modules independently distributed on
642CPAN.
44691e6f
AB
643
644=head1 SEE ALSO
645
e08634c5
SH
646The F<Changes> file for an explanation of how to view exhaustive details on
647what changed.
44691e6f
AB
648
649The F<INSTALL> file for how to build Perl.
650
651The F<README> file for general stuff.
652
653The F<Artistic> and F<Copying> files for copyright information.
654
655=cut