This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta: 949cf498 (allowing all non-chars) is already done
[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
9f7a72d0 298=back
e1165778 299
9f7a72d0 300=head2 Removed Modules and Pragmata
b373eab8 301
9f7a72d0 302=over 4
b373eab8
FC
303
304=item *
305
9f7a72d0 306XXX
b6ae81ab 307
9f7a72d0 308=back
ca88a729 309
9f7a72d0 310=head1 Documentation
17096837 311
9f7a72d0
Z
312XXX Changes to files in F<pod/> go here. Consider grouping entries by
313file and be sure to link to the appropriate page, e.g. L<perlfunc>.
b6ae81ab 314
9f7a72d0 315=head2 New Documentation
e1165778 316
9f7a72d0 317XXX Changes which create B<new> files in F<pod/> go here.
17096837 318
9f7a72d0 319=head3 L<XXX>
e1165778 320
9f7a72d0 321XXX Description of the purpose of the new file here
e1165778 322
9f7a72d0 323=head2 Changes to Existing Documentation
17096837 324
9f7a72d0
Z
325XXX Changes which significantly change existing files in F<pod/> go here.
326However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
327section.
e1165778 328
0d7fe741 329=head3 L<perlfunc>
d4238815 330
9f7a72d0 331=over 4
17096837 332
d4238815
FC
333=item *
334
0d7fe741 335It has now been documented that C<ord> returns 0 for an empty string.
e1165778 336
9f7a72d0 337=back
17096837 338
9f7a72d0 339=head1 Diagnostics
17096837 340
9f7a72d0
Z
341The following additions or changes have been made to diagnostic output,
342including warnings and fatal error messages. For the complete list of
343diagnostic messages, see L<perldiag>.
e1165778 344
9f7a72d0
Z
345XXX New or changed warnings emitted by the core's C<C> code go here. Also
346include any changes in L<perldiag> that reconcile it to the C<C> code.
68adb2b0 347
9f7a72d0 348[ Within each section, list entries as a =item entry ]
17096837 349
9f7a72d0 350=head2 New Diagnostics
3a5c9134 351
9f7a72d0 352XXX Newly added diagnostic messages go here
17096837 353
9f7a72d0 354=over 4
17096837 355
c2e0289e
FC
356=item *
357
9f7a72d0 358XXX
17096837 359
9f7a72d0 360=back
e6f1cc4d 361
9f7a72d0 362=head2 Changes to Existing Diagnostics
e1165778 363
9f7a72d0 364XXX Changes (i.e. rewording) of diagnostic messages go here
17096837 365
9f7a72d0 366=over 4
17096837 367
e1165778
Z
368=item *
369
9f7a72d0 370XXX
17096837 371
3a5c9134
CBW
372=back
373
9f7a72d0 374=head1 Utility Changes
e1165778 375
9f7a72d0
Z
376XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
377here. Most of these are built within the directories F<utils> and F<x2p>.
e1165778 378
9f7a72d0
Z
379[ List utility changes as a =head3 entry for each utility and =item
380entries for each change
381Use L<XXX> with program names to get proper documentation linking. ]
e1165778 382
fcc3a61f 383=head3 L<perlbug>
e1165778 384
9f7a72d0 385=over 4
e1165778
Z
386
387=item *
388
fcc3a61f
FC
389C<perlbug> did not previously generate a From: header, potentially
390resulting in dropped mail. Now it does include that header.
e1165778 391
9f7a72d0 392=back
e1165778 393
9f7a72d0 394=head1 Configuration and Compilation
e1165778 395
9f7a72d0
Z
396XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
397go here. Any other changes to the Perl build process should be listed here.
398However, any platform-specific changes should be listed in the
399L</Platform Support> section, instead.
e1165778 400
9f7a72d0 401[ List changes as a =item entry ].
e1165778 402
9f7a72d0 403=over 4
3a5c9134
CBW
404
405=item *
406
9f7a72d0 407XXX
3a5c9134
CBW
408
409=back
410
9f7a72d0 411=head1 Testing
3a5c9134 412
9f7a72d0
Z
413XXX Any significant changes to the testing of a freshly built perl should be
414listed here. Changes which create B<new> files in F<t/> go here as do any
415large changes to the testing harness (e.g. when parallel testing was added).
416Changes to existing files in F<t/> aren't worth summarising, although the bugs
417that they represent may be covered elsewhere.
3a5c9134 418
9f7a72d0 419[ List each test improvement as a =item entry ]
3a5c9134 420
3a5c9134
CBW
421=over 4
422
423=item *
424
4d1face8
FC
425A new test script, C<t/porting/filenames.t>, makes sure that filenames and
426paths are reasonably portable.
3a5c9134
CBW
427
428=back
429
9f7a72d0 430=head1 Platform Support
3a5c9134 431
9f7a72d0 432XXX Any changes to platform support should be listed in the sections below.
3a5c9134 433
9f7a72d0
Z
434[ Within the sections, list each platform as a =item entry with specific
435changes as paragraphs below it. ]
3a5c9134 436
9f7a72d0 437=head2 New Platforms
3a5c9134 438
9f7a72d0
Z
439XXX List any platforms that this version of perl compiles on, that previous
440versions did not. These will either be enabled by new files in the F<hints/>
441directories, or new subdirectories and F<README> files at the top level of the
442source tree.
3a5c9134 443
3a5c9134
CBW
444=over 4
445
9f7a72d0 446=item XXX-some-platform
3a5c9134 447
9f7a72d0 448XXX
51bed910 449
3a5c9134
CBW
450=back
451
9f7a72d0
Z
452=head2 Discontinued Platforms
453
454XXX List any platforms that this version of perl no longer compiles on.
3a5c9134 455
3a5c9134
CBW
456=over 4
457
7c53e0a1 458=item Apollo DomainOS
3a5c9134 459
7c53e0a1
FC
460The last vestiges of support for this platform have been excised from the
461Perl distribution. It was officially discontinued in version 5.12.0. It had
462not worked for years before that.
3a5c9134
CBW
463
464=back
465
3a5c9134
CBW
466=head2 Platform-Specific Notes
467
9f7a72d0
Z
468XXX List any changes for specific platforms. This could include configuration
469and compilation changes or changes in portability/compatibility. However,
470changes within modules for platforms should generally be listed in the
471L</Modules and Pragmata> section.
3a5c9134 472
9f7a72d0 473=over 4
3a5c9134 474
1c90c725 475=item Solaris
fb3a2d89 476
1c90c725
FC
477DTrace is now supported on Solaris. There used to be build failures, but
478these have been fixed
479L<[perl #73630]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=73630>.
fb3a2d89 480
3a5c9134
CBW
481=back
482
483=head1 Internal Changes
484
9f7a72d0
Z
485XXX Changes which affect the interface available to C<XS> code go here.
486Other significant internal changes for future core maintainers should
487be noted as well.
3a5c9134 488
9f7a72d0 489[ List each test improvement as a =item entry ]
3a5c9134 490
9f7a72d0 491=over 4
3a5c9134 492
c61b6d0f
FC
493=item *
494
0a0e3cc5
NC
495The opcode bodies for C<chop> and C<chomp> and for C<schop> and C<schomp> have
496been merged. The implementation functions C<Perl_do_chop()> and
497C<Perl_do_chomp()>, never part of the public API, have been merged and moved to
498a static function in F<pp.c>. This shrinks the perl binary slightly, and should
499not affect any code outside the core (unless it is relying on the order of side
500effects when C<chomp> is passed a I<list> of values).
c61b6d0f 501
6d4f9cf2
KW
502=item *
503
504Some of the flags parameters to the uvuni_to_utf8_flags() and
505utf8n_to_uvuni() have changed. This is a result of Perl now allowing
506internal storage and manipulation of code points that are problematic
507in some situations. Hence, the default actions for these functions has
508been complemented to allow these code points. The new flags are
509documented in L<perlapi>. Code that requires the problematic code
510points to be rejected needs to change to use these flags. Some flag
511names are retained for backward source compatibility, though they do
512nothing, as they are now the default. However the flags
513C<UNICODE_ALLOW_FDD0>, C<UNICODE_ALLOW_FFFF>, C<UNICODE_ILLEGAL>, and
514C<UNICODE_IS_ILLEGAL> have been removed, as they stem from a
515fundamentally broken model of how the Unicode non-character code points
516should be handled, which is now described in
517L<perlunicode/Non-character code points>. See also L</Selected Bug Fixes>.
518
a62b1201
KW
519=item *
520
521Certain shared flags in the C<pmop.op_pmflags> and C<regexp.extflags>
522structures have been removed. These are: C<Rxf_Pmf_LOCALE>,
523C<Rxf_Pmf_UNICODE>, and C<PMf_LOCALE>. Instead there are encodes and
524three static in-line functions for accessing the information:
525C<get_regex_charset()>, C<set_regex_charset()>, and C<get_regex_charset_name()>,
526which are defined in the places where the orginal flags were.
527
b030240b
FC
528=item *
529
530A new option has been added to C<pv_escape> to dump all characters above
531ASCII in hexadecimal. Before, one could get all characters as hexadecimal
532or the Latin1 non-ASCII as octal
533
3a5c9134
CBW
534=back
535
536=head1 Selected Bug Fixes
537
9f7a72d0
Z
538XXX Important bug fixes in the core language are summarised here.
539Bug fixes in files in F<ext/> and F<lib/> are best summarised in
540L</Modules and Pragmata>.
b373eab8 541
9f7a72d0 542[ List each fix as a =item entry ]
b373eab8 543
9f7a72d0 544=over 4
4c9d53d5 545
0c7420e7
FC
546=item *
547
6d4f9cf2
KW
548The handling of Unicode non-characters has changed.
549Previously they were mostly considered illegal, except that only one of
550the 66 of them was known about in places. The Unicode standard
551considers them legal, but forbids the "open interchange" of them.
552This is part of the change to allow the internal use of any code point
553(see L</Core Enhancements>). Together, these changes resolve
554L<# 38722|https://rt.perl.org/rt3/Ticket/Display.html?id=38722>,
555L<# 51918|http://rt.perl.org/rt3/Ticket/Display.html?id=51918>,
556L<# 51936|http://rt.perl.org/rt3/Ticket/Display.html?id=51936>,
557L<# 63446|http://rt.perl.org/rt3/Ticket/Display.html?id=63446>
0c7420e7 558
f3fe4ed7
FC
559=item *
560
561Sometimes magic (ties, tainted, etc.) attached to variables could cause an
562object to last longer than it should, or cause a crash if a tied variable
563were freed from within a tie method. These have been fixed
564L<[perl #81230]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=81230>.
565
712ef7ca
FC
566=item *
567
568Most I/O functions were not warning for unopened handles unless the
569'closed' and 'unopened' warnings categories were both enabled. Now only
570C<use warnings 'unopened'> is necessary to trigger these warnings (as was
571always meant to be the case.
572
ecede56a
FC
573=item *
574
575C<< <expr> >> always respects overloading now if the expression is
576overloaded.
577
578Due to the way that '<> as glob' was parsed differently from
579'<> as filehandle' from 5.6 onwards, something like C<< <$foo[0]> >> did
580not handle overloading, even if C<$foo[0]> was an overloaded object. This
581was contrary to the documentation for overload, and meant that C<< <> >>
582could not be used as a general overloaded iterator operator.
583
d4560299
FC
584=item *
585
586Destructors on objects were not called during global destruction on objects
587that were not referenced by any scalars. This could happen if an array
588element were blessed (e.g., C<bless \$a[0]>) or if a closure referenced a
589blessed variable (C<bless \my @a; sub foo { @a }>).
590
591Now there is an extra pass during global destruction to fire destructors on
592any objects that might be left after the usual passes that check for
593objects referenced by scalars
594L<[perl #36347]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=36347>.
595
9f7a72d0 596=back
460c4bfb 597
9f7a72d0 598=head1 Known Problems
460c4bfb 599
9f7a72d0
Z
600XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
601tests that had to be C<TODO>ed for the release would be noted here, unless
602they were specific to a particular platform (see below).
26de4ac8 603
9f7a72d0
Z
604This is a list of some significant unfixed bugs, which are regressions
605from either 5.XXX.XXX or 5.XXX.XXX.
26de4ac8 606
9f7a72d0 607[ List each fix as a =item entry ]
ab7fb400 608
9f7a72d0 609=over 4
ab7fb400 610
836d5805
Z
611=item *
612
d4560299
FC
613The fix for [perl #81230] causes test failures for C<Tk> version 804.029.
614This is still being investigated.
836d5805 615
3a5c9134
CBW
616=back
617
9f7a72d0 618=head1 Obituary
3a5c9134 619
9f7a72d0
Z
620XXX If any significant core contributor has died, we've added a short obituary
621here.
b0c3724f 622
9f7a72d0 623=head1 Acknowledgements
b0c3724f 624
9f7a72d0 625XXX The list of people to thank goes here.
3a5c9134
CBW
626
627=head1 Reporting Bugs
628
629If you find what you think is a bug, you might check the articles
630recently posted to the comp.lang.perl.misc newsgroup and the perl
631bug database at http://rt.perl.org/perlbug/ . There may also be
632information at http://www.perl.org/ , the Perl Home Page.
633
634If you believe you have an unreported bug, please run the L<perlbug>
635program included with your release. Be sure to trim your bug down
636to a tiny but sufficient test case. Your bug report, along with the
637output of C<perl -V>, will be sent off to perlbug@perl.org to be
638analysed by the Perl porting team.
639
640If the bug you are reporting has security implications, which make it
641inappropriate to send to a publicly archived mailing list, then please send
642it to perl5-security-report@perl.org. This points to a closed subscription
643unarchived mailing list, which includes all the core committers, who be able
644to help assess the impact of issues, figure out a resolution, and help
645co-ordinate the release of patches to mitigate or fix the problem across all
646platforms on which Perl is supported. Please only use this address for
647security issues in the Perl core, not for modules independently
648distributed on CPAN.
649
650=head1 SEE ALSO
651
652The F<Changes> file for an explanation of how to view exhaustive details
653on what changed.
654
655The F<INSTALL> file for how to build Perl.
656
657The F<README> file for general stuff.
658
659The F<Artistic> and F<Copying> files for copyright information.
660
661=cut
e0b8b6f1
JV
662
663=for later
664
665Below, you'll find a cut-down version of the git log from 5.13.8 to 1b9043bb.
666Jesse went through and took a first pass at cutting out non-changelog items. He may have been over-(or under-)zealous.
667
668It hasn't yet been deduped with the entries that _are_ in the perldelta.
669
670
671 Major spell-checking pass throughout the core
672
673 Remove references to compat3.sym and interp.sym, deleted over 10 years ago.
674
675 Remove Mac OS classic code from numerous places throughout the core
676
e0b8b6f1
JV
677commit 7fe50b8b8a4dc38fc341e3b403545aaca937f50e
678Author: Leon Timmermans <fawaka@gmail.com>
679Date: Tue Jan 18 16:40:07 2011 +0100
680
681 Also unblock signal handlers throwing an exception
682
683 Also handle and test the edge case of a signal handler throwing an
684 exception
685
686
687
688
689Numberous POD warnings fixed
690
691
692
693 Update Unicode-Collate to CPAN version 0.71
694
695
696internals
697
698
699 regexec.c: Remove break statements from macros
700
701 This is so future coders won't be tempted to rely on them.
702
703 regexec.c: Don't rely on break stmts in macros
704
705 It is safer and clearer to have the break statement in each case statement at
706 the source level
707
708commit b57e41186b2ceb48bef4f0588dcd19e105cc8a38
709Author: Karl Williamson <public@khwilliamson.com>
710Date: Tue Jan 18 15:03:41 2011 -0700
711
712 regcomp: Disallow multi-char folds in lookbehind
713
714 The addition of the ANYOFV regnode to treat multi-char folds in a bracketed
715 character class has exposed a bug, in which those classes have long been able
716 to be varying length (due to the multi-char fold), but the compiler wasn't
717 aware of it. Now it is, and hence won't allow those which have multi-char
718 folds to be part of a lookbehind pattern, which requires a constant length.
719
720 This patch disallows multi-char folds in a lookbehind bracketed character
721 class.
722
723Author: Nicholas Clark <nick@ccl4.org>
724Date: Tue Jan 18 16:14:43 2011 +0000
725
726 Remove Mac OS classic code from scripts in utils/
727
728
729 Convert DosGlob.t to Test::More.
730
731commit d6dc8a6dc95226ddff7719cd1e0bd053c4e5725e
732Author: Nicholas Clark <nick@ccl4.org>
733Date: Tue Jan 18 13:08:11 2011 +0000
734
735 Remove Mac OS Classic docs from DirHandle and File::{Copy,DosGlob,Find}
736
737 The documentation for the different behaviour on Mac OS Classic was not
738 removed when the relevant code was removed in 862f843bac3434c2. That commit
739 also remove all callers to several Mac OS classic support functions, but not
740 the functions themselves. Rectify this.
741
742commit 8254cbf193c939338449097a80163197fc755150
743Author: Nicholas Clark <nick@ccl4.org>
744Date: Tue Jan 18 11:10:41 2011 +0000
745
746 Build perltoc.pod with pragmata sorted by name.
747
748 Previously they were actually sorted by full pathname, which isn't logical.
749 I presume that this is an artefact of all pragmata being in lib/ when
750 pod/buildtoc was originally written.
751
752commit 1d45ec279e4e105512a2803e3d0bd974a151a0f6
753Author: Father Chrysostomos <sprout@cpan.org>
754Date: Mon Jan 17 22:32:52 2011 -0800
755
756 perlcall: Fixes for various grammatical errors
757
758commit faaf68361923e4bb95d1eb919bc724a0dcc5a4ce
759Author: Leon Timmermans <fawaka@gmail.com>
760Date: Mon Jan 17 17:59:33 2011 +0100
761
762 Clarify limitation in safe signals.
763
764commit 0c1bf4c7d433bb0ad80bfe5511b1301db32b7b95
765Author: Leon Timmermans <fawaka@gmail.com>
766Date: Mon Jan 17 16:29:11 2011 +0100
767
768 Added tests for conditional unblocking
769
770commit 555344425f04e96a72e4d29eab96b34bff8f96ae
771Author: Leon Timmermans <fawaka@gmail.com>
772Date: Thu Jan 13 18:30:29 2011 +0100
773
774 Conditionally unblock after signal handler[#82040]
775
776 Only unblock signal after a safe-signal handler is executed if that signal was
777 also unblocked before the handler.
778commit 435aa301127ed481169903cb35187bde1ea44928
779Author: David Golden <dagolden@cpan.org>
780Date: Mon Jan 17 20:39:14 2011 -0500
781
782 Update HTTP::Tiny to CPAN version 0.009
783
784commit 78cd53afbb1923bf0a68f361040ad8fe93a7d0d5
785Author: David Mitchell <davem@iabyn.com>
786Date: Tue Jan 18 00:46:30 2011 +0000
787
788 vastly speed up t/porting/diag.t
789
790 This used to take about 3 minutes of CPU. Reduce this to around
791 6 seconds (!!) by coalescing and pre-compiling various patterns
792 that get applied to nearly every line of every source file.
793
794commit cfaf538b6276c6a8ef80ff6c66e106c6a4f1caaa
795Author: Karl Williamson <public@khwilliamson.com>
796Date: Mon Jan 17 08:58:53 2011 -0700
797
798 Add /a regex modifier
799
800 This restricts certain constructs, like \w, to matching in the ASCII range only.
801
802commit 56ae17b45d2513d65903d13468e8f6a16b20f916
803Author: Karl Williamson <public@khwilliamson.com>
804Date: Sun Jan 16 17:41:30 2011 -0700
805
806 regcomp.c: Convert \d \D to a switch{}
807
e0b8b6f1
JV
808commit e66820012d29519f903709f005e56a2c334ae183
809Author: Tony Cook <tony@develop-help.com>
810Date: Mon Jan 17 19:22:08 2011 +1100
811
812 test_prep now depends on the pods needed for porting/buildtoc.t
813
814 In the other makefiles test_prep (or test-prep) depends on all, so
815 they shouldn't need updating.
816
817
818commit a52237f3a547cdefddd4c4be6224bfdf67c84263
819Author: David Golden <dagolden@cpan.org>
820Date: Sun Jan 16 21:32:21 2011 -0500
821
822 Update CPAN to CPAN version 1.94_63
823
824commit 63ac0dadb1aafcf0c171d3c1422c1923b611b2fc
825Author: Karl Williamson <public@khwilliamson.com>
826Date: Tue Dec 28 16:13:49 2010 -0700
827
828 regex: Use BOUNDU regnodes
829
830 This refactors one area in regexec.c to use BOUNDU, NBOUNDU for
831 efficiciency, and easier adding of the future BOUNDA.
832
833commit 980866de2cf8ecdb4bb72b7f9294763057008f50
834Author: Karl Williamson <public@khwilliamson.com>
835Date: Mon Dec 27 12:04:58 2010 -0700
836
837 regex: Separate nodes for Unicode semantics \s \w
838
839 This patch converts the \s, \w and complements Unicode semantics to
840 instead of using the flags field of their nodes to instead use separate
841 nodes. This gains some efficiency, especially useful in tight loops and
842 backtracking of regexec.c, and prepares the way for easily adding other
843 semantic variations, such as /a.
844
845 It refactors the CCC_TRY... macros. I tried to break this piece up into
846 smaller chunks, but found it much easier to get to this in one step.
847 Further patches will do some more refactoring of these.
848
849 As part of the CCC_TRY macro refactoring, the lines that include the
850 test if (! nextchr) are changed to just look for the end-of-string by
851 position instead of it being NUL. In locales, it could be (however
852 unlikely), that NUL is a real alphabetic, digit, or space character.
853commit 50e911483ad5c29e25c54c9f81f92df974dd2cc0
854Author: Karl Williamson <public@khwilliamson.com>
855Date: Sun Dec 26 10:35:58 2010 -0700
856
857 Change name of /d to DEPENDS
858
859 I much prefer David Golden's name for /d whose meaning 'depends' on
860 circumstances, instead of 'dual' meaning it could be one or another.
861 Change it before this gets out in a stable release, and we're stuck with
862 the old name.
863
864commit 73134a2eb4055c76fe5b154da95e09118f716fd8
865Author: Karl Williamson <public@khwilliamson.com>
866Date: Sun Dec 26 10:35:20 2010 -0700
867
868 CH] Change usage of regex/op common to common names
869
870 This patch changes the core functions to use the common names for the
871 fields that are shared between op.c and regcomp.c, just for consistency
872 of using one name throughout the core for the same thing.
873
874 A grep of cpan shows that both names are used in various modules; so
875 both names must be retained.
876
877commit a3ab329f3fc9494e700f51c38cef42021c130b6e
878Author: David Golden <dagolden@cpan.org>
879Date: Sun Jan 16 20:57:02 2011 -0500
880
881 Add HTTP::Tiny as a dual-life core module
882
883 HTTP::Tiny has been added as a dual-life module. It is a very
884 small, simple HTTP/1.1 client designed for simple GET requests and file
885 mirroring. It has has been added to enable CPAN.pm and CPANPLUS to
886 "bootstrap" HTTP access to CPAN using pure Perl without relying on external
887 binaries like F<curl> or F<wget>.
888
889commit 211cc5012284f4bd900fcaa630adbcac69ca6112
890Author: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
891Date: Sun Jan 16 23:23:03 2011 +0000
892
893 Update Unicode-Collate to CPAN version 0.70 and enable XS version
894
895commit a62b1201c068dc7b099bcb7182e188c4d2fbf34c
896Author: Karl Williamson <public@khwilliamson.com>
897Date: Sun Dec 26 10:31:16 2010 -0700
898
899 Use multi-bit field for regex character set
900
901 The /d, /l, and /u regex modifiers are mutually exclusive. This patch
902 changes the field that stores the character set to use more than one bit
903 with an enum determining which one. This data structure more
904 closely follows the semantics of their being mutually exclusive, and
905 conserves bits as well, and is better expandable.
906
907 A small API is added to set and query the bit field.
908
909 This patch is not .xs source backwards compatible. A handful of cpan
910 programs are affected.
911
912
913tools
914
915 Significant updates to buildtoc
916
917 Update Unicode-Normalize to CPAN version 1.10
918
919commit 11454c594f22abc5945e69a46fc965363dbf326e
920Author: Karl Williamson <public@khwilliamson.com>
921Date: Sat Jan 15 13:42:58 2011 -0700
922
923 Fix \xa0 matching both [\s] [\S], et.al.
924
925 This bug stemmed from Latin1 characters not matching any (non-complemented)
926 character class in /d semantics when the target string is no utf8; but having
927 unicode semantics when it isn't. The solution here is to add a special flag.
928
929 There were several tests that relied on the broken behavior, specifically they
930 tested that \xff isn't a printable word character even in utf8. I changed the
931 deparse test to instead use a non-printable code point, and I changed the ones
932 in re_tests to be TODOs, and will change them back using /a when that is
933 shortly added.
934
935
936SECURITY
937
938 restrict \p{IsUserDefined} to In\w+ and In\w+
939
940 In L<perlunicode/"User-Defined Character Properties">, it says you can
941 create custom properties by defining subroutines whose names begin with
942 "In" or "Is". However, perl doesn't actually enforce that naming
943 restriction, so \p{foo::bar} will call foo::Bar() if it exists.
944
945 This commit finally enforces this convention. Note that this broke a
946 number of existing tests for properties, since they didn't always use an
947 Is/In prefix.
948
949TESTING
950
951 test that perl.pod, pod.lst, MANIFEST and the file system are consistent
952
953commit f56b6394f7cf57733135f56e4e4ac49abe9ac9cc
954Author: Karl Williamson <public@khwilliamson.com>
955Date: Thu Jan 13 22:36:36 2011 -0700
956
957 regex: Use ANYOFV
958
959 This patch restructures the regex ANYOF code to generate ANYOFV nodes instead
960 when there is a possibility that it could match more than one character. Note
961 that this doesn't affect the optimizer, as it essentially ignores things that
962 fit into this category. (But it means that the optimizer will no longer reject
963 these when it shouldn't have.)
964
965 The handling of the LATIN SHARP s is modified to correspond with this new node
966 type.
967
968 The initial handling of ANYOFV is placed in regexec.c. More analysis will come
969 on that. But there was significant change to the part that handles matching
970 multi-char strings. This has long been buggy, with it previously comparing a
971 folded-version on one side with a non-folded version on the other.
972
973 This patch fixes about 60% of the problems that my undelivered test suite gives
974 for multi-char folds. But there are still 17K test failures left, so I'm still
975 not delivering that. The TODOs that this fixes will be cleaned up in a later commit
976
977
978 Update Pod-LaTeX to CPAN version 0.59
979
980commit 680818c0361b180bb6f09d4bb11c4d5cd467fe62
981Author: Nicholas Clark <nick@ccl4.org>
982Date: Thu Jan 13 16:24:52 2011 +0000
983
984 ithread_create() was relying on the stack not moving. Fix this.
985
986 4cf5eae5e58faebb changed S_ithread_create() to avoid creating an AV, by
987 passing the thread creation arguments as pointers to a block of memory
988 holding SVs. Unfortunately, this inadvertently introduced a subtle bug,
989 because the block of memory is on the Perl stack, which can move as a side
990 effect of being reallocated to extend it. Hence pass in the offset on the
991 stack instead, read the current value of the relevant interpreter's stack
992 at the point of access, and copy all the SVs away before making any further
993 calls which might cause reallocation.
994
995 Update to Win32-0.44 from CPAN
e0b8b6f1
JV
996 Update IO-Compress to CPAN version 2.033
997 Update Compress-Raw-Zlib to CPAN version 2.033
998 Update Compress-Raw-Bzip2 to CPAN version 2.033
999 Update DB_File to CPAN version 1.821
1000
1001DIAGNOSTICS
1002 Correct the "unimplemented" message for get{host,net,proto,serv}ent aliases.
1003
1004 Previously, if all of gethost{byaddr,byname,ent} were unimplemented on a
1005 platform, they would all return 'Unsupported socket function "gethostent"
1006 called', with the analogous results for getnet{byaddr,byname,ent},
1007 getproto{byname,bynumber,ent} and getserv{byname,byport,ent}. This bug was
1008 introduced by change af51a00e97d5c559 - prior to this, all 12 functions would
1009 report their own name when unimplemented.
1010
1011commit 9ae3ac1a84c63b0eadf5baf47ce7096482280f32
1012Author: Karl Williamson <public@khwilliamson.com>
1013Date: Sun Jan 9 15:33:28 2011 -0700
1014
1015 Add warnings for use of problematic code points
1016
1017 The non-Unicode code points have no Unicode semantics, so applying operations
1018 such as casing on them warns.
1019
1020 This patch also includes the changes to test the warnings added by recent
1021 commits for handling the surrogates and above-Unicode code points
1022
e0b8b6f1
JV
1023
1024commit 7627e6d0fe772ac90fce9e03fea273109521e261
1025Author: Nicholas Clark <nick@ccl4.org>
1026Date: Sat Jan 8 15:56:22 2011 +0000
1027
1028 Generate "Unsupported socket function" stubs using PL_ppaddr.
1029
1030 Instead of having each socket op conditionally compile as either the
1031 implementation or a DIE() depending on #HAS_SOCKET
1032
1033 1: remove the conditional code from the ops themselves
1034 2: only compile the ops if HAS_SOCKET is defined
1035 3: general conditional code for the intialisation of PL_ppaddr - as appropriate
1036 either the ops, or Perl_unimplemented_op
1037 4: Amend Perl_unimplemented_op to generate the appropriate DIE() for socket
1038 ops (ie not the "panic"... message)
1039
1040 Whilst this complicates the support code in regen/opcode.pl, it's already a
1041 net saving of 5 lines in the C code.
1042
1043commit 897d398936dd2fc088a265fba2a7b62fa97ed458
1044Author: Nicholas Clark <nick@ccl4.org>
1045Date: Sun Jan 9 10:54:58 2011 +0000
1046
1047 Generate pp_* prototypes in pp_proto.h, and remove pp.sym
1048
1049 Eliminate the #define pp_foo Perl_pp_foo(pTHX) macros, and update the 13
1050 locations that relied on them.
1051
1052 regen/opcode.pl now generates prototypes for the PP functions directly, into
1053 pp_proto.h. It no longer writes pp.sym, and regen/embed.pl no longer reads
1054 this, removing the only ordering dependency in the regen scripts. opcode.pl
1055 is now responsible for prototypes for pp_* functions. (embed.pl remains
1056 responsible for ck_* functions, reading from regen/opcodes)
1057
e0b8b6f1
JV
1058commit a4a4c9e2c086dd5f7b7b05789161614dbbe8385b
1059Author: Karl Williamson <public@khwilliamson.com>
1060Date: Sat Jan 8 14:44:05 2011 -0700
1061
1062 perldiag.pod: Add missing message severities
1063
e0b8b6f1
JV
1064
1065TESTING
1066 add test for split without a pattern
1067
1068 Add some while tests, about the context of the last statement in a block and about reinitializaiton of lexical variables.
1069
1070 modernise t/cmd/while.t
1071
1072 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".
1073
e0b8b6f1
JV
1074commit b86b68b4eefa1069dabc8ea0401d712b24a67857
1075Author: Jesse Vincent <jesse@bestpractical.com>
1076Date: Sat Jan 8 00:14:29 2011 +0800
1077
1078 Update the policy on doc patches to maint
1079
1080
e0b8b6f1
JV
1081commit 0b5e625bc99f5cb78697faf03b297b6cacadf60b
1082Author: Reini Urban <rurban@x-ray.at>
1083Date: Tue Sep 14 18:04:22 2010 +0200
1084
1085 build man pages on cygwin too
1086
1087commit 172830635ea7813c85e51e4ae2b4bed56ddbab83
1088Author: Reini Urban <rurban@x-ray.at>
1089Date: Tue Sep 14 17:54:15 2010 +0200
1090
1091 Improve cygwin rebase behaviour
1092
1093 If a dll is updated on cygwin reuse the old imagebase address.
1094 This solves most rebase errors, esp when updating on core dll's.
1095 See http://www.tishler.net/jason/software/rebase/rebase-2.4.2.README
1096
1097
e0b8b6f1
JV
1098Platforms
1099
e0b8b6f1
JV
1100commit cc7e77fd5a0ee9f1498e54dddf566117da62754b
1101Author: Reini Urban <rurban@x-ray.at>
1102Date: Tue Sep 14 17:48:32 2010 +0200
1103
1104 CYG14 Dynaloader without USEIMPORTLIB, and search cyg prefix
1105
1106 part1: Support the standard cyg dll prefix, which is e.g. needed for FFI's.
1107 Ctypes and C::DynaLib use DynaLoader to find dlls.
1108
1109 part2: With -DUSEIMPORTLIB DynaLoader symbols link against the prefixed
1110 symbol names for the .dll.a importlib, but we need to link against the
1111 symbols directly. We don't link Dynaloader against libperl.dll.a.
1112
1113 Otherwise:
1114 $ g++-4 -o cygperl5_13_4.dll --shared perlsrc.o cygwin.o DynaLoader.o -ldl -lcrypt
1115 Creating library file: libperl.dll.a
1116 DynaLoader.o: In function `XS_DynaLoader_dl_undef_symbols':
1117 ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_stack_sp'
1118 ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_markstack_ptr'
1119 ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_stack_base'
1120
1121commit c0a149a90b8b6e1c18de7294ca974265fb559cf5
1122Author: Reini Urban <rurban@x-ray.at>
1123Date: Tue Sep 14 18:06:38 2010 +0200
1124
1125 Update cygwin hints
1126 do not use usemymalloc (double size + slow)
1127 remove deprecated libcygipc info
1128 remove overlarge stack size
1129
e0b8b6f1
JV
1130commit 2831a86cee065b53b74fd19ddcc6a4257484646d
1131Author: Zsb√°n Ambrus <ambrus@math.bme.hu>
1132Date: Sun Jan 2 20:25:55 2011 -0800
1133
1134 [perl #81032] Overhaul Porting/epigraphs.pod
1135
1136 This patch makes multiple changes to Porting/epigraphs.pod and
1137 pod/perlhist.pod.
1138
1139 For those that don't know, Porting/epigraphs.pod is a new document that
1140 collects the quotes (chosen by Pumpkins) in perl release announcements.
1141
1142 The changes are the following.
1143
1144 1. Add a link pointing to each release announcement in the mailing
1145 list archives. These are from ysth's list, the source from which
1146 Porting/epigraphs.pod was originally compiled, but they weren't in
1147 Porting/epigraphs.pod so far.
1148 2. Reorder Porting/epigraphs.pod chronologically, because I believe
1149 that makes more sense -- pod/perlhist.pod is still sorted by version numbers.
1150 3. Incidentally, some missing releases are added to pod/perlhist.pod too.
1151 4. Fix a mistake where Porting/epigraphs.pod gives the wrong version number.
1152 5. Add some epigraphs that appear in ysth's list but not in
1153 Porting/epigraphs.pod.
1154 6. I did some research in perl history before the part that ysth's list
1155 covers, and added older perl announcements I found. This work is not
1156 complete: I stopped somewhere in 2000.
1157
1158commit eccda089fc3dcaafc1ae0aac6b428f799231b824
1159Author: Paul "LeoNerd" Evans <leonerd@leonerd.org.uk>
1160Date: Mon Dec 13 17:50:06 2010 +0000
1161
1162 Implement Socket::getaddrinfo() and Socket::getnameinfo(), with related constants
1163
e0b8b6f1
JV
1164commit edcf105d70e5423fd928c776e086fe31a4a543f4
1165Author: Jesse Vincent <jesse@bestpractical.com>
1166Date: Sat Jan 1 18:46:20 2011 +0800
1167
1168 Document 'test_porting' and start a section on how committing to blead
1169
e0b8b6f1
JV
1170commit cce04bebd8af026c2a6731940ddb895d3c1fc3e4
1171Author: David Golden <dagolden@cpan.org>
1172Date: Mon Dec 13 17:36:33 2010 -0500
1173
1174 Reorganize perlhack.pod
1175
1176 Following on an IRC conversation, I've attempted to reorganize
1177 perlhack for greater clarity. I have only cut and paste blocks
1178 of text and amended section titles and levels. (I have not addressed
1179 any of the numerous factual issues which remain.)
1180
1181 The resulting guide should be clearer for those trying to skim the
1182 table of contents to understand what is covered in perlhack and
1183 whether it is worth an in-depth read.
1184
1185 I see this change as the first step towards future improvements.
1186
e0b8b6f1 1187=cut