This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta fixes
[perl5.git] / pod / perldelta.pod
CommitLineData
3a5c9134
CBW
1=encoding utf8
2
3=head1 NAME
4
9f7a72d0
Z
5[ this is a template for a new perldelta file. Any text flagged as
6XXX needs to be processed before release. ]
3a5c9134 7
9f7a72d0 8perldelta - what is new for perl v5.13.9
15e6cdd9 9
9f7a72d0 10=head1 DESCRIPTION
f6166f76 11
9f7a72d0
Z
12This document describes differences between the 5.13.8 release and
13the 5.13.9 release.
0d157ee2 14
9f7a72d0
Z
15If you are upgrading from an earlier release such as 5.13.7, first read
16L<perl5138delta>, which describes differences between 5.13.7 and
175.13.8.
0d157ee2 18
9f7a72d0 19=head1 Notice
0d157ee2 20
9f7a72d0 21XXX Any important notices here
0d157ee2 22
9f7a72d0 23=head1 Core Enhancements
0d157ee2 24
9f7a72d0
Z
25XXX New core language features go here. Summarise user-visible core language
26enhancements. Particularly prominent performance optimisations could go
27here, but most should go in the L</Performance Enhancements> section.
0d157ee2 28
086325d8
KW
29[ List each enhancement as a =head2 entry ]
30
cfaf538b
KW
31=head2 New regular expression modifier C</a>
32
33The C</a> regular expression modifier restricts C<\s> to match precisely
34the five characters C<[ \f\n\r\t]>, C<\d> to match precisely the 10
35characters C<[0-9]>, C<\w> to match precisely the 63 characters
36C<[A-Za-z0-9_]>, and the Posix (C<[[:posix:]]>) character classes to
37match only the appropriate ASCII characters. The complements, of
38course, match everything but; and C<\b> and C<\B> are correspondingly
39affected. Otherwise, C</a> behaves like the C</u> modifier, in that
40case-insensitive matching uses Unicode semantics; for example, "k" will
41match the Unicode C<\N{KELVIN SIGN}> under C</i> matching, and code
42points in the Latin1 range, above ASCII will have Unicode semantics when
43it comes to case-insensitive matching. Like its cousins (C</u>, C</l>,
44and C</d>), and in spite of the terminology, C</a> in 5.14 will not
45actually be able to be used as a suffix at the end of a regular
46expression (this restriction is planned to be lifted in 5.16). It must
47occur either as an infix modifier, such as C<(?a:...)> or (C<(?a)...>,
48or it can be turned on within the lexical scope of C<use re '/a'>.
49Turning on C</a> turns off the other "character set" modifiers.
50
086325d8
KW
51=head2 Any unsigned value can be encoded as a character
52
6d4f9cf2 53With this release, Perl is adopting a model that any unsigned value can
086325d8
KW
54be treated as a code point and encoded internally (as utf8) without
55warnings -- not just the code points that are legal in Unicode.
56However, unless utf8 warnings have been
6d4f9cf2
KW
57explicitly lexically turned off, outputting or performing a
58Unicode-defined operation (such as upper-casing) on such a code point
59will generate a warning. Attempting to input these using strict rules
60(such as with the C<:encoding('UTF-8')> layer) will continue to fail.
61Prior to this release the handling was very inconsistent, and incorrect
62in places. Also, the Unicode non-characters, some of which previously were
63erroneously considered illegal in places by Perl, contrary to the Unicode
64standard, are now always legal internally. But inputting or outputting
65them will work the same as for the non-legal Unicode code points, as the
66Unicode standard says they are illegal for "open interchange".
67
15555e2d
FC
68=head2 Regular expression debugging output improvement
69
70Regular expression debugging output (turned on by C<use re 'debug';>) now
71uses hexadecimal when escaping non-ASCII characters, instead of octal.
0d157ee2 72
9f7a72d0 73=head1 Security
0d157ee2 74
9f7a72d0
Z
75XXX Any security-related notices go here. In particular, any security
76vulnerabilities closed should be noted here rather than in the
77L</Selected Bug Fixes> section.
bd8e866d 78
9f7a72d0 79[ List each security issue as a =head2 entry ]
bd8e866d 80
3a5c9134
CBW
81=head1 Incompatible Changes
82
9f7a72d0 83XXX For a release on a stable branch, this section aspires to be:
3a5c9134 84
9f7a72d0
Z
85 There are no changes intentionally incompatible with 5.XXX.XXX. If any
86 exist, they are bugs and reports are welcome.
3a5c9134 87
9f7a72d0 88[ List each incompatible change as a =head2 entry ]
d66e82e8 89
d4560299
FC
90=head2 All objects are destroyed
91
92It used to be possible to prevent a destructor from being called during
93global destruction by artificially increasing the reference count of an
94object.
95
96Now such objects I<will> will be destroyed, as a result of a bug fix
97L<[perl #81230]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=81230>.
98
99This has the potential to break some XS modules. (In fact, it break some.
100See L</Known Problems>, below.)
101
3a5c9134
CBW
102=head1 Deprecations
103
9f7a72d0
Z
104XXX Any deprecated features, syntax, modules etc. should be listed here.
105In particular, deprecated modules should be listed here even if they are
106listed as an updated module in the L</Modules and Pragmata> section.
5609d5f9 107
9f7a72d0 108[ List each deprecation as a =head2 entry ]
5609d5f9 109
9f7a72d0 110=head1 Performance Enhancements
5609d5f9 111
9f7a72d0
Z
112XXX Changes which enhance performance without changing behaviour go here. There
113may well be none in a stable release.
5609d5f9 114
9f7a72d0 115[ List each enhancement as a =item entry ]
3a5c9134
CBW
116
117=over 4
118
119=item *
120
9f7a72d0 121XXX
e1165778 122
9f7a72d0 123=back
121e1895 124
9f7a72d0 125=head1 Modules and Pragmata
2638c0ff 126
9f7a72d0
Z
127XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
128go here. If Module::CoreList is updated, generate an initial draft of the
129following sections using F<Porting/corelist-perldelta.pl>, which prints stub
130entries to STDOUT. Results can be pasted in place of the '=head2' entries
131below. A paragraph summary for important changes should then be added by hand.
132In an ideal world, dual-life modules would have a F<Changes> file that could be
133cribbed.
2638c0ff 134
9f7a72d0 135[ Within each section, list entries as a =item entry ]
17096837 136
9f7a72d0 137=head2 New Modules and Pragmata
2638c0ff 138
9f7a72d0 139=over 4
17096837 140
e1165778
Z
141=item *
142
0b5d8c02 143L<CPAN::Meta::YAML> 0.003 has been added as a dual-life module. It supports a
e8a07a12
DG
144subset of YAML sufficient for reading and writing META.yml and MYMETA.yml files
145included with CPAN distributions or generated by the module installation
146toolchain. It should not be used for any other general YAML parsing or
147generation task.
17096837 148
935c8d19
DG
149=item *
150
435aa301 151L<HTTP::Tiny> 0.009 has been added as a dual-life module. It is a very
a3ab329f
DG
152small, simple HTTP/1.1 client designed for simple GET requests and file
153mirroring. It has has been added to enable CPAN.pm and CPANPLUS to
154"bootstrap" HTTP access to CPAN using pure Perl without relying on external
155binaries like F<curl> or F<wget>.
156
157=item *
158
6def3600
FC
159L<JSON::PP> 2.27103 has been added as a dual-life module, for the sake of
160reading F<META.json> files in CPAN distributions.
161
162=item *
163
6cf6332a 164L<Module::Metadata> 1.000003 has been added as a dual-life module. It gathers
e8b333e6
DG
165package and POD information from Perl module files. It is a standalone module
166based on Module::Build::ModuleInfo for use by other module installation
167toolchain components. Module::Build::ModuleInfo has been deprecated in
168favor of this module instead.
169
170=item *
171
935c8d19
DG
172L<Perl::OSType> 1.002 has been added as a dual-life module. It maps Perl
173operating system names (e.g. 'dragonfly' or 'MSWin32') to more generic types
174with standardized names (e.g. "Unix" or "Windows"). It has been refactored
175out of Module::Build and ExtUtils::CBuilder and consolidates such mappings into
176a single location for easier maintenance.
177
9f7a72d0 178=back
e1165778 179
9f7a72d0 180=head2 Updated Modules and Pragmata
f295f417 181
9f7a72d0 182=over 4
17096837 183
f295f417
FC
184=item *
185
6447e912
CBW
186C<Archive::Extract> has been upgraded from version 0.46 to 0.48
187
188=item *
189
89ae55b4
CBW
190C<Archive::Tar> has been upgraded from version 1.74 to 1.76
191
192=item *
193
2a1594f6
CBW
194C<CGI> has been upgraded from version 3.50 to 3.51
195
79e1bedb
FC
196Further improvements have been made to guard against newline injections
197in headers.
198
2a1594f6 199=item *
5ebf8416
CBW
200
201C<Compress::Raw::Bzip2> has been upgraded from version 2.031 to 2.033
202
203=item *
e2f1db54
CBW
204
205C<Compress::Raw::Zlib> has been upgraded from version 2.030 to 2.033
206
207=item *
2a1594f6 208
a52237f3
DG
209C<CPAN> has been upgraded from version 1.94_62 to 1.94_63
210
211=item *
212
f1aaabf8
CBW
213C<CPANPLUS> has been upgraded from version 0.9010 to 0.9011
214
215=item *
216
ae0f8eee
CBW
217C<CPANPLUS::Dist::Build> has been upgraded from version 0.50 to 0.52
218
219=item *
220
221C<DB_File> has been upgraded from version 1.820 to 1.821
deb99cce
CBW
222
223=item *
224
6d4f9cf2
KW
225C<Encode> has been upgraded from version 2.40 to 2.42.
226Now, all 66 Unicode non-characters are treated the same way U+FFFF has
227always been treated; if it was disallowed, all 66 are disallowed; if it
228warned, all 66 warn.
50afc8f8
CBW
229
230=item *
231
eee47ba6 232C<File::Fetch> has been upgraded from version 0.28 to 0.32
f37ee46a
CBW
233
234=item *
235
cd0c0e65
CBW
236C<IO::Compress> has been upgraded from version 2.030 to 2.033
237
238=item *
239
f37ee46a
CBW
240C<IPC::Cmd> has been upgraded from version 0.66 to 0.68
241
ac066c2a
CBW
242=item *
243
b5ce1198
CBW
244C<Log::Message> has been upgraded from version 0.02 to 0.04
245
246=item *
247
c0395286
CBW
248C<Log::Message::Simple> has been upgraded from version 0.06 to 0.08
249
250=item *
251
ae0f8eee 252C<Module::Load::Conditional> has been upgraded from version 0.38 to 0.40
4fc94532
CBW
253
254=item *
255
ae0f8eee 256C<Object::Accessor> has been upgraded from version 0.36 to 0.38
0019012a
CBW
257
258=item *
259
ae0f8eee 260C<Params::Check> has been upgraded from version 0.26 to 0.28
8cb3aa53
CBW
261
262=item *
263
9c88a88b
CBW
264C<Pod::LaTeX> has been upgraded from version 0.58 to 0.59
265
266=item *
267
6df88f97 268C<Term::UI> has been upgraded from version 0.20 to 0.24
8e1e0801
CBW
269
270=item *
271
4df1dffa
FC
272C<Thread::Queue> has been upgraded from version 2.11 to 2.12.
273
274=item *
275
276C<Thread::Semaphore> has been upgraded from version 2.11 to 2.12.
277
278=item *
279
f5d41534
CBW
280C<threads> has been upgraded from version 1.81_03 to 1.82
281
282=item *
283
284C<threads::shared> has been upgraded from version 1.35 to 1.36
285
286=item *
287
23046b7e 288C<Time::Local> has been upgraded from version 1.1901_01 to 1.2000.
17096837 289
788ba0f4
CBW
290=item *
291
292C<Unicode::Normalize> has been upgraded from version 1.07 to 1.10
293
98d645a7
FC
294=item *
295
296C<version> has been upgraded from 0.86 to 0.88.
297
7abec982
FC
298=item *
299
300C<Win32> has been upgraded from version 0.41 to 0.44.
301
9f7a72d0 302=back
e1165778 303
9f7a72d0 304=head2 Removed Modules and Pragmata
b373eab8 305
9f7a72d0 306=over 4
b373eab8
FC
307
308=item *
309
9f7a72d0 310XXX
b6ae81ab 311
9f7a72d0 312=back
ca88a729 313
9f7a72d0 314=head1 Documentation
17096837 315
9f7a72d0
Z
316XXX Changes to files in F<pod/> go here. Consider grouping entries by
317file and be sure to link to the appropriate page, e.g. L<perlfunc>.
b6ae81ab 318
9f7a72d0 319=head2 New Documentation
e1165778 320
9f7a72d0 321XXX Changes which create B<new> files in F<pod/> go here.
17096837 322
9f7a72d0 323=head3 L<XXX>
e1165778 324
9f7a72d0 325XXX Description of the purpose of the new file here
e1165778 326
9f7a72d0 327=head2 Changes to Existing Documentation
17096837 328
9f7a72d0
Z
329XXX Changes which significantly change existing files in F<pod/> go here.
330However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
331section.
e1165778 332
0d7fe741 333=head3 L<perlfunc>
d4238815 334
9f7a72d0 335=over 4
17096837 336
d4238815
FC
337=item *
338
0d7fe741 339It has now been documented that C<ord> returns 0 for an empty string.
e1165778 340
9f7a72d0 341=back
17096837 342
9f7a72d0 343=head1 Diagnostics
17096837 344
9f7a72d0
Z
345The following additions or changes have been made to diagnostic output,
346including warnings and fatal error messages. For the complete list of
347diagnostic messages, see L<perldiag>.
e1165778 348
9f7a72d0
Z
349XXX New or changed warnings emitted by the core's C<C> code go here. Also
350include any changes in L<perldiag> that reconcile it to the C<C> code.
68adb2b0 351
9f7a72d0 352[ Within each section, list entries as a =item entry ]
17096837 353
9f7a72d0 354=head2 New Diagnostics
3a5c9134 355
9f7a72d0 356XXX Newly added diagnostic messages go here
17096837 357
9f7a72d0 358=over 4
17096837 359
c2e0289e
FC
360=item *
361
26b3f088
FC
362Performing an operation requiring Unicode semantics (such as case-folding)
363on a Unicode surrogate or a non-Unicode character now triggers a warning:
364'Operation "%s" returns its argument for ...'.
17096837 365
9f7a72d0 366=back
e6f1cc4d 367
9f7a72d0 368=head2 Changes to Existing Diagnostics
e1165778 369
9f7a72d0 370XXX Changes (i.e. rewording) of diagnostic messages go here
17096837 371
9f7a72d0 372=over 4
17096837 373
e1165778
Z
374=item *
375
e329d483
FC
376Previously, if none of the C<gethostbyaddr>, C<gethostbyname> and
377C<gethostent> functions were implemented on a given platform, they would
378all die with the message 'Unsupported socket function "gethostent" called',
379with analogous messages for C<getnet*> and C<getserv*>. This has been
380corrected.
17096837 381
3a5c9134
CBW
382=back
383
9f7a72d0 384=head1 Utility Changes
e1165778 385
9f7a72d0
Z
386XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
387here. Most of these are built within the directories F<utils> and F<x2p>.
e1165778 388
9f7a72d0
Z
389[ List utility changes as a =head3 entry for each utility and =item
390entries for each change
391Use L<XXX> with program names to get proper documentation linking. ]
e1165778 392
fcc3a61f 393=head3 L<perlbug>
e1165778 394
9f7a72d0 395=over 4
e1165778
Z
396
397=item *
398
fcc3a61f
FC
399C<perlbug> did not previously generate a From: header, potentially
400resulting in dropped mail. Now it does include that header.
e1165778 401
9f7a72d0 402=back
e1165778 403
9f7a72d0 404=head1 Configuration and Compilation
e1165778 405
9f7a72d0
Z
406XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
407go here. Any other changes to the Perl build process should be listed here.
408However, any platform-specific changes should be listed in the
409L</Platform Support> section, instead.
e1165778 410
9f7a72d0 411[ List changes as a =item entry ].
e1165778 412
9f7a72d0 413=over 4
3a5c9134
CBW
414
415=item *
416
9f7a72d0 417XXX
3a5c9134
CBW
418
419=back
420
9f7a72d0 421=head1 Testing
3a5c9134 422
9f7a72d0
Z
423XXX Any significant changes to the testing of a freshly built perl should be
424listed here. Changes which create B<new> files in F<t/> go here as do any
425large changes to the testing harness (e.g. when parallel testing was added).
426Changes to existing files in F<t/> aren't worth summarising, although the bugs
427that they represent may be covered elsewhere.
3a5c9134 428
9f7a72d0 429[ List each test improvement as a =item entry ]
3a5c9134 430
3a5c9134
CBW
431=over 4
432
433=item *
434
4d1face8
FC
435A new test script, C<t/porting/filenames.t>, makes sure that filenames and
436paths are reasonably portable.
3a5c9134
CBW
437
438=back
439
9f7a72d0 440=head1 Platform Support
3a5c9134 441
9f7a72d0 442XXX Any changes to platform support should be listed in the sections below.
3a5c9134 443
9f7a72d0
Z
444[ Within the sections, list each platform as a =item entry with specific
445changes as paragraphs below it. ]
3a5c9134 446
9f7a72d0 447=head2 New Platforms
3a5c9134 448
9f7a72d0
Z
449XXX List any platforms that this version of perl compiles on, that previous
450versions did not. These will either be enabled by new files in the F<hints/>
451directories, or new subdirectories and F<README> files at the top level of the
452source tree.
3a5c9134 453
3a5c9134
CBW
454=over 4
455
9f7a72d0 456=item XXX-some-platform
3a5c9134 457
9f7a72d0 458XXX
51bed910 459
3a5c9134
CBW
460=back
461
9f7a72d0
Z
462=head2 Discontinued Platforms
463
464XXX List any platforms that this version of perl no longer compiles on.
3a5c9134 465
3a5c9134
CBW
466=over 4
467
7c53e0a1 468=item Apollo DomainOS
3a5c9134 469
7c53e0a1
FC
470The last vestiges of support for this platform have been excised from the
471Perl distribution. It was officially discontinued in version 5.12.0. It had
472not worked for years before that.
3a5c9134
CBW
473
474=back
475
3a5c9134
CBW
476=head2 Platform-Specific Notes
477
9f7a72d0
Z
478XXX List any changes for specific platforms. This could include configuration
479and compilation changes or changes in portability/compatibility. However,
480changes within modules for platforms should generally be listed in the
481L</Modules and Pragmata> section.
3a5c9134 482
9f7a72d0 483=over 4
3a5c9134 484
1c90c725 485=item Solaris
fb3a2d89 486
1c90c725
FC
487DTrace is now supported on Solaris. There used to be build failures, but
488these have been fixed
489L<[perl #73630]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=73630>.
fb3a2d89 490
3a5c9134
CBW
491=back
492
493=head1 Internal Changes
494
9f7a72d0
Z
495XXX Changes which affect the interface available to C<XS> code go here.
496Other significant internal changes for future core maintainers should
497be noted as well.
3a5c9134 498
9f7a72d0 499[ List each test improvement as a =item entry ]
3a5c9134 500
9f7a72d0 501=over 4
3a5c9134 502
c61b6d0f
FC
503=item *
504
0a0e3cc5
NC
505The opcode bodies for C<chop> and C<chomp> and for C<schop> and C<schomp> have
506been merged. The implementation functions C<Perl_do_chop()> and
507C<Perl_do_chomp()>, never part of the public API, have been merged and moved to
508a static function in F<pp.c>. This shrinks the perl binary slightly, and should
509not affect any code outside the core (unless it is relying on the order of side
510effects when C<chomp> is passed a I<list> of values).
c61b6d0f 511
6d4f9cf2
KW
512=item *
513
514Some of the flags parameters to the uvuni_to_utf8_flags() and
515utf8n_to_uvuni() have changed. This is a result of Perl now allowing
516internal storage and manipulation of code points that are problematic
517in some situations. Hence, the default actions for these functions has
518been complemented to allow these code points. The new flags are
519documented in L<perlapi>. Code that requires the problematic code
520points to be rejected needs to change to use these flags. Some flag
521names are retained for backward source compatibility, though they do
522nothing, as they are now the default. However the flags
523C<UNICODE_ALLOW_FDD0>, C<UNICODE_ALLOW_FFFF>, C<UNICODE_ILLEGAL>, and
524C<UNICODE_IS_ILLEGAL> have been removed, as they stem from a
525fundamentally broken model of how the Unicode non-character code points
526should be handled, which is now described in
527L<perlunicode/Non-character code points>. See also L</Selected Bug Fixes>.
528
a62b1201
KW
529=item *
530
531Certain shared flags in the C<pmop.op_pmflags> and C<regexp.extflags>
532structures have been removed. These are: C<Rxf_Pmf_LOCALE>,
533C<Rxf_Pmf_UNICODE>, and C<PMf_LOCALE>. Instead there are encodes and
534three static in-line functions for accessing the information:
535C<get_regex_charset()>, C<set_regex_charset()>, and C<get_regex_charset_name()>,
536which are defined in the places where the orginal flags were.
537
b030240b
FC
538=item *
539
540A new option has been added to C<pv_escape> to dump all characters above
541ASCII in hexadecimal. Before, one could get all characters as hexadecimal
542or the Latin1 non-ASCII as octal
543
3a5c9134
CBW
544=back
545
546=head1 Selected Bug Fixes
547
9f7a72d0
Z
548XXX Important bug fixes in the core language are summarised here.
549Bug fixes in files in F<ext/> and F<lib/> are best summarised in
550L</Modules and Pragmata>.
b373eab8 551
9f7a72d0 552[ List each fix as a =item entry ]
b373eab8 553
9f7a72d0 554=over 4
4c9d53d5 555
0c7420e7
FC
556=item *
557
6d4f9cf2
KW
558The handling of Unicode non-characters has changed.
559Previously they were mostly considered illegal, except that only one of
560the 66 of them was known about in places. The Unicode standard
561considers them legal, but forbids the "open interchange" of them.
562This is part of the change to allow the internal use of any code point
563(see L</Core Enhancements>). Together, these changes resolve
564L<# 38722|https://rt.perl.org/rt3/Ticket/Display.html?id=38722>,
565L<# 51918|http://rt.perl.org/rt3/Ticket/Display.html?id=51918>,
566L<# 51936|http://rt.perl.org/rt3/Ticket/Display.html?id=51936>,
567L<# 63446|http://rt.perl.org/rt3/Ticket/Display.html?id=63446>
0c7420e7 568
f3fe4ed7
FC
569=item *
570
571Sometimes magic (ties, tainted, etc.) attached to variables could cause an
572object to last longer than it should, or cause a crash if a tied variable
573were freed from within a tie method. These have been fixed
574L<[perl #81230]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=81230>.
575
712ef7ca
FC
576=item *
577
578Most I/O functions were not warning for unopened handles unless the
579'closed' and 'unopened' warnings categories were both enabled. Now only
580C<use warnings 'unopened'> is necessary to trigger these warnings (as was
581always meant to be the case.
582
ecede56a
FC
583=item *
584
585C<< <expr> >> always respects overloading now if the expression is
586overloaded.
587
588Due to the way that '<> as glob' was parsed differently from
589'<> as filehandle' from 5.6 onwards, something like C<< <$foo[0]> >> did
590not handle overloading, even if C<$foo[0]> was an overloaded object. This
591was contrary to the documentation for overload, and meant that C<< <> >>
592could not be used as a general overloaded iterator operator.
593
d4560299
FC
594=item *
595
596Destructors on objects were not called during global destruction on objects
597that were not referenced by any scalars. This could happen if an array
598element were blessed (e.g., C<bless \$a[0]>) or if a closure referenced a
599blessed variable (C<bless \my @a; sub foo { @a }>).
600
601Now there is an extra pass during global destruction to fire destructors on
602any objects that might be left after the usual passes that check for
603objects referenced by scalars
604L<[perl #36347]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=36347>.
605
7db1267d
KW
606=item *
607
608A long standing bug has now been fully fixed (partial fixes came in
609earlier releases), in which some Latin-1 non-ASCII characters on
610ASCII-platforms would match both a character class and its complement,
611such as U+00E2 being both in C<\w> and C<\W>, depending on the
612UTF-8-ness of the regular expression pattern and target string.
613Fixing this did expose some bugs in various modules and tests that
614relied on the previous behavior of C<[[:alpha:]]> not ever matching
615U+00FF, "LATIN SMALL LETTER Y WITH DIAERESIS", even when it should, in
616Unicode mode; now it does match when appropriate.
617L<[perl #60156]|http://rt.perl.org/rt3/Ticket/Display.html?id=60156>.
618
9f7a72d0 619=back
460c4bfb 620
9f7a72d0 621=head1 Known Problems
460c4bfb 622
9f7a72d0
Z
623XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
624tests that had to be C<TODO>ed for the release would be noted here, unless
625they were specific to a particular platform (see below).
26de4ac8 626
9f7a72d0
Z
627This is a list of some significant unfixed bugs, which are regressions
628from either 5.XXX.XXX or 5.XXX.XXX.
26de4ac8 629
9f7a72d0 630[ List each fix as a =item entry ]
ab7fb400 631
9f7a72d0 632=over 4
ab7fb400 633
836d5805
Z
634=item *
635
d4560299
FC
636The fix for [perl #81230] causes test failures for C<Tk> version 804.029.
637This is still being investigated.
836d5805 638
3a5c9134
CBW
639=back
640
9f7a72d0 641=head1 Obituary
3a5c9134 642
9f7a72d0
Z
643XXX If any significant core contributor has died, we've added a short obituary
644here.
b0c3724f 645
9f7a72d0 646=head1 Acknowledgements
b0c3724f 647
9f7a72d0 648XXX The list of people to thank goes here.
3a5c9134
CBW
649
650=head1 Reporting Bugs
651
652If you find what you think is a bug, you might check the articles
653recently posted to the comp.lang.perl.misc newsgroup and the perl
654bug database at http://rt.perl.org/perlbug/ . There may also be
655information at http://www.perl.org/ , the Perl Home Page.
656
657If you believe you have an unreported bug, please run the L<perlbug>
658program included with your release. Be sure to trim your bug down
659to a tiny but sufficient test case. Your bug report, along with the
660output of C<perl -V>, will be sent off to perlbug@perl.org to be
661analysed by the Perl porting team.
662
663If the bug you are reporting has security implications, which make it
664inappropriate to send to a publicly archived mailing list, then please send
665it to perl5-security-report@perl.org. This points to a closed subscription
666unarchived mailing list, which includes all the core committers, who be able
667to help assess the impact of issues, figure out a resolution, and help
668co-ordinate the release of patches to mitigate or fix the problem across all
669platforms on which Perl is supported. Please only use this address for
670security issues in the Perl core, not for modules independently
671distributed on CPAN.
672
673=head1 SEE ALSO
674
675The F<Changes> file for an explanation of how to view exhaustive details
676on what changed.
677
678The F<INSTALL> file for how to build Perl.
679
680The F<README> file for general stuff.
681
682The F<Artistic> and F<Copying> files for copyright information.
683
684=cut
e0b8b6f1
JV
685
686=for later
687
688Below, you'll find a cut-down version of the git log from 5.13.8 to 1b9043bb.
689Jesse went through and took a first pass at cutting out non-changelog items. He may have been over-(or under-)zealous.
690
691It hasn't yet been deduped with the entries that _are_ in the perldelta.
692
693
694 Major spell-checking pass throughout the core
695
696 Remove references to compat3.sym and interp.sym, deleted over 10 years ago.
697
698 Remove Mac OS classic code from numerous places throughout the core
699
e0b8b6f1
JV
700commit 7fe50b8b8a4dc38fc341e3b403545aaca937f50e
701Author: Leon Timmermans <fawaka@gmail.com>
702Date: Tue Jan 18 16:40:07 2011 +0100
703
704 Also unblock signal handlers throwing an exception
705
706 Also handle and test the edge case of a signal handler throwing an
707 exception
708
709
710
711
712Numberous POD warnings fixed
713
714
715
716 Update Unicode-Collate to CPAN version 0.71
717
718
719internals
720
e0b8b6f1
JV
721Author: Nicholas Clark <nick@ccl4.org>
722Date: Tue Jan 18 16:14:43 2011 +0000
723
724 Remove Mac OS classic code from scripts in utils/
725
726
727 Convert DosGlob.t to Test::More.
728
729commit d6dc8a6dc95226ddff7719cd1e0bd053c4e5725e
730Author: Nicholas Clark <nick@ccl4.org>
731Date: Tue Jan 18 13:08:11 2011 +0000
732
733 Remove Mac OS Classic docs from DirHandle and File::{Copy,DosGlob,Find}
734
735 The documentation for the different behaviour on Mac OS Classic was not
736 removed when the relevant code was removed in 862f843bac3434c2. That commit
737 also remove all callers to several Mac OS classic support functions, but not
738 the functions themselves. Rectify this.
739
740commit 8254cbf193c939338449097a80163197fc755150
741Author: Nicholas Clark <nick@ccl4.org>
742Date: Tue Jan 18 11:10:41 2011 +0000
743
744 Build perltoc.pod with pragmata sorted by name.
745
746 Previously they were actually sorted by full pathname, which isn't logical.
747 I presume that this is an artefact of all pragmata being in lib/ when
748 pod/buildtoc was originally written.
749
750commit 1d45ec279e4e105512a2803e3d0bd974a151a0f6
751Author: Father Chrysostomos <sprout@cpan.org>
752Date: Mon Jan 17 22:32:52 2011 -0800
753
754 perlcall: Fixes for various grammatical errors
755
756commit faaf68361923e4bb95d1eb919bc724a0dcc5a4ce
757Author: Leon Timmermans <fawaka@gmail.com>
758Date: Mon Jan 17 17:59:33 2011 +0100
759
760 Clarify limitation in safe signals.
761
762commit 0c1bf4c7d433bb0ad80bfe5511b1301db32b7b95
763Author: Leon Timmermans <fawaka@gmail.com>
764Date: Mon Jan 17 16:29:11 2011 +0100
765
766 Added tests for conditional unblocking
767
768commit 555344425f04e96a72e4d29eab96b34bff8f96ae
769Author: Leon Timmermans <fawaka@gmail.com>
770Date: Thu Jan 13 18:30:29 2011 +0100
771
772 Conditionally unblock after signal handler[#82040]
773
774 Only unblock signal after a safe-signal handler is executed if that signal was
775 also unblocked before the handler.
776commit 435aa301127ed481169903cb35187bde1ea44928
777Author: David Golden <dagolden@cpan.org>
778Date: Mon Jan 17 20:39:14 2011 -0500
779
780 Update HTTP::Tiny to CPAN version 0.009
781
782commit 78cd53afbb1923bf0a68f361040ad8fe93a7d0d5
783Author: David Mitchell <davem@iabyn.com>
784Date: Tue Jan 18 00:46:30 2011 +0000
785
786 vastly speed up t/porting/diag.t
787
788 This used to take about 3 minutes of CPU. Reduce this to around
789 6 seconds (!!) by coalescing and pre-compiling various patterns
790 that get applied to nearly every line of every source file.
791
e0b8b6f1
JV
792commit e66820012d29519f903709f005e56a2c334ae183
793Author: Tony Cook <tony@develop-help.com>
794Date: Mon Jan 17 19:22:08 2011 +1100
795
796 test_prep now depends on the pods needed for porting/buildtoc.t
797
798 In the other makefiles test_prep (or test-prep) depends on all, so
799 they shouldn't need updating.
800
801
802commit a52237f3a547cdefddd4c4be6224bfdf67c84263
803Author: David Golden <dagolden@cpan.org>
804Date: Sun Jan 16 21:32:21 2011 -0500
805
806 Update CPAN to CPAN version 1.94_63
807
e0b8b6f1
JV
808commit a3ab329f3fc9494e700f51c38cef42021c130b6e
809Author: David Golden <dagolden@cpan.org>
810Date: Sun Jan 16 20:57:02 2011 -0500
811
812 Add HTTP::Tiny as a dual-life core module
813
814 HTTP::Tiny has been added as a dual-life module. It is a very
815 small, simple HTTP/1.1 client designed for simple GET requests and file
816 mirroring. It has has been added to enable CPAN.pm and CPANPLUS to
817 "bootstrap" HTTP access to CPAN using pure Perl without relying on external
818 binaries like F<curl> or F<wget>.
819
820commit 211cc5012284f4bd900fcaa630adbcac69ca6112
821Author: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
822Date: Sun Jan 16 23:23:03 2011 +0000
823
824 Update Unicode-Collate to CPAN version 0.70 and enable XS version
825
e0b8b6f1
JV
826tools
827
828 Significant updates to buildtoc
829
830 Update Unicode-Normalize to CPAN version 1.10
831
e0b8b6f1
JV
832SECURITY
833
834 restrict \p{IsUserDefined} to In\w+ and In\w+
835
836 In L<perlunicode/"User-Defined Character Properties">, it says you can
837 create custom properties by defining subroutines whose names begin with
838 "In" or "Is". However, perl doesn't actually enforce that naming
839 restriction, so \p{foo::bar} will call foo::Bar() if it exists.
840
841 This commit finally enforces this convention. Note that this broke a
842 number of existing tests for properties, since they didn't always use an
843 Is/In prefix.
844
845TESTING
846
847 test that perl.pod, pod.lst, MANIFEST and the file system are consistent
848
e0b8b6f1
JV
849commit 680818c0361b180bb6f09d4bb11c4d5cd467fe62
850Author: Nicholas Clark <nick@ccl4.org>
851Date: Thu Jan 13 16:24:52 2011 +0000
852
853 ithread_create() was relying on the stack not moving. Fix this.
854
855 4cf5eae5e58faebb changed S_ithread_create() to avoid creating an AV, by
856 passing the thread creation arguments as pointers to a block of memory
857 holding SVs. Unfortunately, this inadvertently introduced a subtle bug,
858 because the block of memory is on the Perl stack, which can move as a side
859 effect of being reallocated to extend it. Hence pass in the offset on the
860 stack instead, read the current value of the relevant interpreter's stack
861 at the point of access, and copy all the SVs away before making any further
862 calls which might cause reallocation.
863
e0b8b6f1 864
e0b8b6f1
JV
865
866commit 7627e6d0fe772ac90fce9e03fea273109521e261
867Author: Nicholas Clark <nick@ccl4.org>
868Date: Sat Jan 8 15:56:22 2011 +0000
869
870 Generate "Unsupported socket function" stubs using PL_ppaddr.
871
872 Instead of having each socket op conditionally compile as either the
873 implementation or a DIE() depending on #HAS_SOCKET
874
875 1: remove the conditional code from the ops themselves
876 2: only compile the ops if HAS_SOCKET is defined
877 3: general conditional code for the intialisation of PL_ppaddr - as appropriate
878 either the ops, or Perl_unimplemented_op
879 4: Amend Perl_unimplemented_op to generate the appropriate DIE() for socket
880 ops (ie not the "panic"... message)
881
882 Whilst this complicates the support code in regen/opcode.pl, it's already a
883 net saving of 5 lines in the C code.
884
885commit 897d398936dd2fc088a265fba2a7b62fa97ed458
886Author: Nicholas Clark <nick@ccl4.org>
887Date: Sun Jan 9 10:54:58 2011 +0000
888
889 Generate pp_* prototypes in pp_proto.h, and remove pp.sym
890
891 Eliminate the #define pp_foo Perl_pp_foo(pTHX) macros, and update the 13
892 locations that relied on them.
893
894 regen/opcode.pl now generates prototypes for the PP functions directly, into
895 pp_proto.h. It no longer writes pp.sym, and regen/embed.pl no longer reads
896 this, removing the only ordering dependency in the regen scripts. opcode.pl
897 is now responsible for prototypes for pp_* functions. (embed.pl remains
898 responsible for ck_* functions, reading from regen/opcodes)
899
e0b8b6f1
JV
900TESTING
901 add test for split without a pattern
902
903 Add some while tests, about the context of the last statement in a block and about reinitializaiton of lexical variables.
904
905 modernise t/cmd/while.t
906
907 Add t/base/while.t testing the basic of a while loop with minimal dependencies. Change t/cmd/while.t into a non-base test using "test.pl".
908
e0b8b6f1
JV
909commit b86b68b4eefa1069dabc8ea0401d712b24a67857
910Author: Jesse Vincent <jesse@bestpractical.com>
911Date: Sat Jan 8 00:14:29 2011 +0800
912
913 Update the policy on doc patches to maint
914
915
e0b8b6f1
JV
916commit 0b5e625bc99f5cb78697faf03b297b6cacadf60b
917Author: Reini Urban <rurban@x-ray.at>
918Date: Tue Sep 14 18:04:22 2010 +0200
919
920 build man pages on cygwin too
921
922commit 172830635ea7813c85e51e4ae2b4bed56ddbab83
923Author: Reini Urban <rurban@x-ray.at>
924Date: Tue Sep 14 17:54:15 2010 +0200
925
926 Improve cygwin rebase behaviour
927
928 If a dll is updated on cygwin reuse the old imagebase address.
929 This solves most rebase errors, esp when updating on core dll's.
930 See http://www.tishler.net/jason/software/rebase/rebase-2.4.2.README
931
932
e0b8b6f1
JV
933Platforms
934
e0b8b6f1
JV
935commit cc7e77fd5a0ee9f1498e54dddf566117da62754b
936Author: Reini Urban <rurban@x-ray.at>
937Date: Tue Sep 14 17:48:32 2010 +0200
938
939 CYG14 Dynaloader without USEIMPORTLIB, and search cyg prefix
940
941 part1: Support the standard cyg dll prefix, which is e.g. needed for FFI's.
942 Ctypes and C::DynaLib use DynaLoader to find dlls.
943
944 part2: With -DUSEIMPORTLIB DynaLoader symbols link against the prefixed
945 symbol names for the .dll.a importlib, but we need to link against the
946 symbols directly. We don't link Dynaloader against libperl.dll.a.
947
948 Otherwise:
949 $ g++-4 -o cygperl5_13_4.dll --shared perlsrc.o cygwin.o DynaLoader.o -ldl -lcrypt
950 Creating library file: libperl.dll.a
951 DynaLoader.o: In function `XS_DynaLoader_dl_undef_symbols':
952 ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_stack_sp'
953 ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_markstack_ptr'
954 ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_stack_base'
955
956commit c0a149a90b8b6e1c18de7294ca974265fb559cf5
957Author: Reini Urban <rurban@x-ray.at>
958Date: Tue Sep 14 18:06:38 2010 +0200
959
960 Update cygwin hints
961 do not use usemymalloc (double size + slow)
962 remove deprecated libcygipc info
963 remove overlarge stack size
964
e0b8b6f1
JV
965commit 2831a86cee065b53b74fd19ddcc6a4257484646d
966Author: Zsb√°n Ambrus <ambrus@math.bme.hu>
967Date: Sun Jan 2 20:25:55 2011 -0800
968
969 [perl #81032] Overhaul Porting/epigraphs.pod
970
971 This patch makes multiple changes to Porting/epigraphs.pod and
972 pod/perlhist.pod.
973
974 For those that don't know, Porting/epigraphs.pod is a new document that
975 collects the quotes (chosen by Pumpkins) in perl release announcements.
976
977 The changes are the following.
978
979 1. Add a link pointing to each release announcement in the mailing
980 list archives. These are from ysth's list, the source from which
981 Porting/epigraphs.pod was originally compiled, but they weren't in
982 Porting/epigraphs.pod so far.
983 2. Reorder Porting/epigraphs.pod chronologically, because I believe
984 that makes more sense -- pod/perlhist.pod is still sorted by version numbers.
985 3. Incidentally, some missing releases are added to pod/perlhist.pod too.
986 4. Fix a mistake where Porting/epigraphs.pod gives the wrong version number.
987 5. Add some epigraphs that appear in ysth's list but not in
988 Porting/epigraphs.pod.
989 6. I did some research in perl history before the part that ysth's list
990 covers, and added older perl announcements I found. This work is not
991 complete: I stopped somewhere in 2000.
992
993commit eccda089fc3dcaafc1ae0aac6b428f799231b824
994Author: Paul "LeoNerd" Evans <leonerd@leonerd.org.uk>
995Date: Mon Dec 13 17:50:06 2010 +0000
996
997 Implement Socket::getaddrinfo() and Socket::getnameinfo(), with related constants
998
e0b8b6f1
JV
999commit edcf105d70e5423fd928c776e086fe31a4a543f4
1000Author: Jesse Vincent <jesse@bestpractical.com>
1001Date: Sat Jan 1 18:46:20 2011 +0800
1002
1003 Document 'test_porting' and start a section on how committing to blead
1004
e0b8b6f1
JV
1005commit cce04bebd8af026c2a6731940ddb895d3c1fc3e4
1006Author: David Golden <dagolden@cpan.org>
1007Date: Mon Dec 13 17:36:33 2010 -0500
1008
1009 Reorganize perlhack.pod
1010
1011 Following on an IRC conversation, I've attempted to reorganize
1012 perlhack for greater clarity. I have only cut and paste blocks
1013 of text and amended section titles and levels. (I have not addressed
1014 any of the numerous factual issues which remain.)
1015
1016 The resulting guide should be clearer for those trying to skim the
1017 table of contents to understand what is covered in perlhack and
1018 whether it is worth an in-depth read.
1019
1020 I see this change as the first step towards future improvements.
1021
e0b8b6f1 1022=cut