This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta: pv_escape
[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
0d157ee2 68
9f7a72d0 69=head1 Security
0d157ee2 70
9f7a72d0
Z
71XXX Any security-related notices go here. In particular, any security
72vulnerabilities closed should be noted here rather than in the
73L</Selected Bug Fixes> section.
bd8e866d 74
9f7a72d0 75[ List each security issue as a =head2 entry ]
bd8e866d 76
3a5c9134
CBW
77=head1 Incompatible Changes
78
9f7a72d0 79XXX For a release on a stable branch, this section aspires to be:
3a5c9134 80
9f7a72d0
Z
81 There are no changes intentionally incompatible with 5.XXX.XXX. If any
82 exist, they are bugs and reports are welcome.
3a5c9134 83
9f7a72d0 84[ List each incompatible change as a =head2 entry ]
d66e82e8 85
3a5c9134
CBW
86=head1 Deprecations
87
9f7a72d0
Z
88XXX Any deprecated features, syntax, modules etc. should be listed here.
89In particular, deprecated modules should be listed here even if they are
90listed as an updated module in the L</Modules and Pragmata> section.
5609d5f9 91
9f7a72d0 92[ List each deprecation as a =head2 entry ]
5609d5f9 93
9f7a72d0 94=head1 Performance Enhancements
5609d5f9 95
9f7a72d0
Z
96XXX Changes which enhance performance without changing behaviour go here. There
97may well be none in a stable release.
5609d5f9 98
9f7a72d0 99[ List each enhancement as a =item entry ]
3a5c9134
CBW
100
101=over 4
102
103=item *
104
9f7a72d0 105XXX
e1165778 106
9f7a72d0 107=back
121e1895 108
9f7a72d0 109=head1 Modules and Pragmata
2638c0ff 110
9f7a72d0
Z
111XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
112go here. If Module::CoreList is updated, generate an initial draft of the
113following sections using F<Porting/corelist-perldelta.pl>, which prints stub
114entries to STDOUT. Results can be pasted in place of the '=head2' entries
115below. A paragraph summary for important changes should then be added by hand.
116In an ideal world, dual-life modules would have a F<Changes> file that could be
117cribbed.
2638c0ff 118
9f7a72d0 119[ Within each section, list entries as a =item entry ]
17096837 120
9f7a72d0 121=head2 New Modules and Pragmata
2638c0ff 122
9f7a72d0 123=over 4
17096837 124
e1165778
Z
125=item *
126
e8a07a12
DG
127L<CPAN::Meta::YAML> 0.002 has been added as a dual-life module. It supports a
128subset of YAML sufficient for reading and writing META.yml and MYMETA.yml files
129included with CPAN distributions or generated by the module installation
130toolchain. It should not be used for any other general YAML parsing or
131generation task.
17096837 132
935c8d19
DG
133=item *
134
435aa301 135L<HTTP::Tiny> 0.009 has been added as a dual-life module. It is a very
a3ab329f
DG
136small, simple HTTP/1.1 client designed for simple GET requests and file
137mirroring. It has has been added to enable CPAN.pm and CPANPLUS to
138"bootstrap" HTTP access to CPAN using pure Perl without relying on external
139binaries like F<curl> or F<wget>.
140
141=item *
142
6cf6332a 143L<Module::Metadata> 1.000003 has been added as a dual-life module. It gathers
e8b333e6
DG
144package and POD information from Perl module files. It is a standalone module
145based on Module::Build::ModuleInfo for use by other module installation
146toolchain components. Module::Build::ModuleInfo has been deprecated in
147favor of this module instead.
148
149=item *
150
935c8d19
DG
151L<Perl::OSType> 1.002 has been added as a dual-life module. It maps Perl
152operating system names (e.g. 'dragonfly' or 'MSWin32') to more generic types
153with standardized names (e.g. "Unix" or "Windows"). It has been refactored
154out of Module::Build and ExtUtils::CBuilder and consolidates such mappings into
155a single location for easier maintenance.
156
9f7a72d0 157=back
e1165778 158
9f7a72d0 159=head2 Updated Modules and Pragmata
f295f417 160
9f7a72d0 161=over 4
17096837 162
f295f417
FC
163=item *
164
6447e912
CBW
165C<Archive::Extract> has been upgraded from version 0.46 to 0.48
166
167=item *
168
89ae55b4
CBW
169C<Archive::Tar> has been upgraded from version 1.74 to 1.76
170
171=item *
172
2a1594f6
CBW
173C<CGI> has been upgraded from version 3.50 to 3.51
174
175=item *
5ebf8416
CBW
176
177C<Compress::Raw::Bzip2> has been upgraded from version 2.031 to 2.033
178
179=item *
e2f1db54
CBW
180
181C<Compress::Raw::Zlib> has been upgraded from version 2.030 to 2.033
182
183=item *
2a1594f6 184
a52237f3
DG
185C<CPAN> has been upgraded from version 1.94_62 to 1.94_63
186
187=item *
188
f1aaabf8
CBW
189C<CPANPLUS> has been upgraded from version 0.9010 to 0.9011
190
191=item *
192
ae0f8eee
CBW
193C<CPANPLUS::Dist::Build> has been upgraded from version 0.50 to 0.52
194
195=item *
196
197C<DB_File> has been upgraded from version 1.820 to 1.821
deb99cce
CBW
198
199=item *
200
6d4f9cf2
KW
201C<Encode> has been upgraded from version 2.40 to 2.42.
202Now, all 66 Unicode non-characters are treated the same way U+FFFF has
203always been treated; if it was disallowed, all 66 are disallowed; if it
204warned, all 66 warn.
50afc8f8
CBW
205
206=item *
207
eee47ba6 208C<File::Fetch> has been upgraded from version 0.28 to 0.32
f37ee46a
CBW
209
210=item *
211
cd0c0e65
CBW
212C<IO::Compress> has been upgraded from version 2.030 to 2.033
213
214=item *
215
f37ee46a
CBW
216C<IPC::Cmd> has been upgraded from version 0.66 to 0.68
217
ac066c2a
CBW
218=item *
219
b5ce1198
CBW
220C<Log::Message> has been upgraded from version 0.02 to 0.04
221
222=item *
223
c0395286
CBW
224C<Log::Message::Simple> has been upgraded from version 0.06 to 0.08
225
226=item *
227
ae0f8eee 228C<Module::Load::Conditional> has been upgraded from version 0.38 to 0.40
4fc94532
CBW
229
230=item *
231
ae0f8eee 232C<Object::Accessor> has been upgraded from version 0.36 to 0.38
0019012a
CBW
233
234=item *
235
ae0f8eee 236C<Params::Check> has been upgraded from version 0.26 to 0.28
8cb3aa53
CBW
237
238=item *
239
9c88a88b
CBW
240C<Pod::LaTeX> has been upgraded from version 0.58 to 0.59
241
242=item *
243
6df88f97 244C<Term::UI> has been upgraded from version 0.20 to 0.24
8e1e0801
CBW
245
246=item *
247
f5d41534
CBW
248C<threads> has been upgraded from version 1.81_03 to 1.82
249
250=item *
251
252C<threads::shared> has been upgraded from version 1.35 to 1.36
253
254=item *
255
23046b7e 256C<Time::Local> has been upgraded from version 1.1901_01 to 1.2000.
17096837 257
788ba0f4
CBW
258=item *
259
260C<Unicode::Normalize> has been upgraded from version 1.07 to 1.10
261
9f7a72d0 262=back
e1165778 263
9f7a72d0 264=head2 Removed Modules and Pragmata
b373eab8 265
9f7a72d0 266=over 4
b373eab8
FC
267
268=item *
269
9f7a72d0 270XXX
b6ae81ab 271
9f7a72d0 272=back
ca88a729 273
9f7a72d0 274=head1 Documentation
17096837 275
9f7a72d0
Z
276XXX Changes to files in F<pod/> go here. Consider grouping entries by
277file and be sure to link to the appropriate page, e.g. L<perlfunc>.
b6ae81ab 278
9f7a72d0 279=head2 New Documentation
e1165778 280
9f7a72d0 281XXX Changes which create B<new> files in F<pod/> go here.
17096837 282
9f7a72d0 283=head3 L<XXX>
e1165778 284
9f7a72d0 285XXX Description of the purpose of the new file here
e1165778 286
9f7a72d0 287=head2 Changes to Existing Documentation
17096837 288
9f7a72d0
Z
289XXX Changes which significantly change existing files in F<pod/> go here.
290However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
291section.
e1165778 292
9f7a72d0 293=head3 L<XXX>
d4238815 294
9f7a72d0 295=over 4
17096837 296
d4238815
FC
297=item *
298
9f7a72d0 299XXX Description of the change here
e1165778 300
9f7a72d0 301=back
17096837 302
9f7a72d0 303=head1 Diagnostics
17096837 304
9f7a72d0
Z
305The following additions or changes have been made to diagnostic output,
306including warnings and fatal error messages. For the complete list of
307diagnostic messages, see L<perldiag>.
e1165778 308
9f7a72d0
Z
309XXX New or changed warnings emitted by the core's C<C> code go here. Also
310include any changes in L<perldiag> that reconcile it to the C<C> code.
68adb2b0 311
9f7a72d0 312[ Within each section, list entries as a =item entry ]
17096837 313
9f7a72d0 314=head2 New Diagnostics
3a5c9134 315
9f7a72d0 316XXX Newly added diagnostic messages go here
17096837 317
9f7a72d0 318=over 4
17096837 319
c2e0289e
FC
320=item *
321
9f7a72d0 322XXX
17096837 323
9f7a72d0 324=back
e6f1cc4d 325
9f7a72d0 326=head2 Changes to Existing Diagnostics
e1165778 327
9f7a72d0 328XXX Changes (i.e. rewording) of diagnostic messages go here
17096837 329
9f7a72d0 330=over 4
17096837 331
e1165778
Z
332=item *
333
9f7a72d0 334XXX
17096837 335
3a5c9134
CBW
336=back
337
9f7a72d0 338=head1 Utility Changes
e1165778 339
9f7a72d0
Z
340XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
341here. Most of these are built within the directories F<utils> and F<x2p>.
e1165778 342
9f7a72d0
Z
343[ List utility changes as a =head3 entry for each utility and =item
344entries for each change
345Use L<XXX> with program names to get proper documentation linking. ]
e1165778 346
9f7a72d0 347=head3 L<XXX>
e1165778 348
9f7a72d0 349=over 4
e1165778
Z
350
351=item *
352
9f7a72d0 353XXX
e1165778 354
9f7a72d0 355=back
e1165778 356
9f7a72d0 357=head1 Configuration and Compilation
e1165778 358
9f7a72d0
Z
359XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
360go here. Any other changes to the Perl build process should be listed here.
361However, any platform-specific changes should be listed in the
362L</Platform Support> section, instead.
e1165778 363
9f7a72d0 364[ List changes as a =item entry ].
e1165778 365
9f7a72d0 366=over 4
3a5c9134
CBW
367
368=item *
369
9f7a72d0 370XXX
3a5c9134
CBW
371
372=back
373
9f7a72d0 374=head1 Testing
3a5c9134 375
9f7a72d0
Z
376XXX Any significant changes to the testing of a freshly built perl should be
377listed here. Changes which create B<new> files in F<t/> go here as do any
378large changes to the testing harness (e.g. when parallel testing was added).
379Changes to existing files in F<t/> aren't worth summarising, although the bugs
380that they represent may be covered elsewhere.
3a5c9134 381
9f7a72d0 382[ List each test improvement as a =item entry ]
3a5c9134 383
3a5c9134
CBW
384=over 4
385
386=item *
387
9f7a72d0 388XXX
3a5c9134
CBW
389
390=back
391
9f7a72d0 392=head1 Platform Support
3a5c9134 393
9f7a72d0 394XXX Any changes to platform support should be listed in the sections below.
3a5c9134 395
9f7a72d0
Z
396[ Within the sections, list each platform as a =item entry with specific
397changes as paragraphs below it. ]
3a5c9134 398
9f7a72d0 399=head2 New Platforms
3a5c9134 400
9f7a72d0
Z
401XXX List any platforms that this version of perl compiles on, that previous
402versions did not. These will either be enabled by new files in the F<hints/>
403directories, or new subdirectories and F<README> files at the top level of the
404source tree.
3a5c9134 405
3a5c9134
CBW
406=over 4
407
9f7a72d0 408=item XXX-some-platform
3a5c9134 409
9f7a72d0 410XXX
51bed910 411
3a5c9134
CBW
412=back
413
9f7a72d0
Z
414=head2 Discontinued Platforms
415
416XXX List any platforms that this version of perl no longer compiles on.
3a5c9134 417
3a5c9134
CBW
418=over 4
419
9f7a72d0 420=item XXX-some-platform
3a5c9134 421
9f7a72d0 422XXX
3a5c9134
CBW
423
424=back
425
3a5c9134
CBW
426=head2 Platform-Specific Notes
427
9f7a72d0
Z
428XXX List any changes for specific platforms. This could include configuration
429and compilation changes or changes in portability/compatibility. However,
430changes within modules for platforms should generally be listed in the
431L</Modules and Pragmata> section.
3a5c9134 432
9f7a72d0 433=over 4
3a5c9134 434
9f7a72d0 435=item XXX-some-platform
fb3a2d89 436
9f7a72d0 437XXX
fb3a2d89 438
3a5c9134
CBW
439=back
440
441=head1 Internal Changes
442
9f7a72d0
Z
443XXX Changes which affect the interface available to C<XS> code go here.
444Other significant internal changes for future core maintainers should
445be noted as well.
3a5c9134 446
9f7a72d0 447[ List each test improvement as a =item entry ]
3a5c9134 448
9f7a72d0 449=over 4
3a5c9134 450
c61b6d0f
FC
451=item *
452
0a0e3cc5
NC
453The opcode bodies for C<chop> and C<chomp> and for C<schop> and C<schomp> have
454been merged. The implementation functions C<Perl_do_chop()> and
455C<Perl_do_chomp()>, never part of the public API, have been merged and moved to
456a static function in F<pp.c>. This shrinks the perl binary slightly, and should
457not affect any code outside the core (unless it is relying on the order of side
458effects when C<chomp> is passed a I<list> of values).
c61b6d0f 459
6d4f9cf2
KW
460=item *
461
462Some of the flags parameters to the uvuni_to_utf8_flags() and
463utf8n_to_uvuni() have changed. This is a result of Perl now allowing
464internal storage and manipulation of code points that are problematic
465in some situations. Hence, the default actions for these functions has
466been complemented to allow these code points. The new flags are
467documented in L<perlapi>. Code that requires the problematic code
468points to be rejected needs to change to use these flags. Some flag
469names are retained for backward source compatibility, though they do
470nothing, as they are now the default. However the flags
471C<UNICODE_ALLOW_FDD0>, C<UNICODE_ALLOW_FFFF>, C<UNICODE_ILLEGAL>, and
472C<UNICODE_IS_ILLEGAL> have been removed, as they stem from a
473fundamentally broken model of how the Unicode non-character code points
474should be handled, which is now described in
475L<perlunicode/Non-character code points>. See also L</Selected Bug Fixes>.
476
a62b1201
KW
477=item *
478
479Certain shared flags in the C<pmop.op_pmflags> and C<regexp.extflags>
480structures have been removed. These are: C<Rxf_Pmf_LOCALE>,
481C<Rxf_Pmf_UNICODE>, and C<PMf_LOCALE>. Instead there are encodes and
482three static in-line functions for accessing the information:
483C<get_regex_charset()>, C<set_regex_charset()>, and C<get_regex_charset_name()>,
484which are defined in the places where the orginal flags were.
485
b030240b
FC
486=item *
487
488A new option has been added to C<pv_escape> to dump all characters above
489ASCII in hexadecimal. Before, one could get all characters as hexadecimal
490or the Latin1 non-ASCII as octal
491
3a5c9134
CBW
492=back
493
494=head1 Selected Bug Fixes
495
9f7a72d0
Z
496XXX Important bug fixes in the core language are summarised here.
497Bug fixes in files in F<ext/> and F<lib/> are best summarised in
498L</Modules and Pragmata>.
b373eab8 499
9f7a72d0 500[ List each fix as a =item entry ]
b373eab8 501
9f7a72d0 502=over 4
4c9d53d5 503
0c7420e7
FC
504=item *
505
6d4f9cf2
KW
506The handling of Unicode non-characters has changed.
507Previously they were mostly considered illegal, except that only one of
508the 66 of them was known about in places. The Unicode standard
509considers them legal, but forbids the "open interchange" of them.
510This is part of the change to allow the internal use of any code point
511(see L</Core Enhancements>). Together, these changes resolve
512L<# 38722|https://rt.perl.org/rt3/Ticket/Display.html?id=38722>,
513L<# 51918|http://rt.perl.org/rt3/Ticket/Display.html?id=51918>,
514L<# 51936|http://rt.perl.org/rt3/Ticket/Display.html?id=51936>,
515L<# 63446|http://rt.perl.org/rt3/Ticket/Display.html?id=63446>
0c7420e7 516
9f7a72d0 517=back
460c4bfb 518
9f7a72d0 519=head1 Known Problems
460c4bfb 520
9f7a72d0
Z
521XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
522tests that had to be C<TODO>ed for the release would be noted here, unless
523they were specific to a particular platform (see below).
26de4ac8 524
9f7a72d0
Z
525This is a list of some significant unfixed bugs, which are regressions
526from either 5.XXX.XXX or 5.XXX.XXX.
26de4ac8 527
9f7a72d0 528[ List each fix as a =item entry ]
ab7fb400 529
9f7a72d0 530=over 4
ab7fb400 531
836d5805
Z
532=item *
533
9f7a72d0 534XXX
836d5805 535
3a5c9134
CBW
536=back
537
9f7a72d0 538=head1 Obituary
3a5c9134 539
9f7a72d0
Z
540XXX If any significant core contributor has died, we've added a short obituary
541here.
b0c3724f 542
9f7a72d0 543=head1 Acknowledgements
b0c3724f 544
9f7a72d0 545XXX The list of people to thank goes here.
3a5c9134
CBW
546
547=head1 Reporting Bugs
548
549If you find what you think is a bug, you might check the articles
550recently posted to the comp.lang.perl.misc newsgroup and the perl
551bug database at http://rt.perl.org/perlbug/ . There may also be
552information at http://www.perl.org/ , the Perl Home Page.
553
554If you believe you have an unreported bug, please run the L<perlbug>
555program included with your release. Be sure to trim your bug down
556to a tiny but sufficient test case. Your bug report, along with the
557output of C<perl -V>, will be sent off to perlbug@perl.org to be
558analysed by the Perl porting team.
559
560If the bug you are reporting has security implications, which make it
561inappropriate to send to a publicly archived mailing list, then please send
562it to perl5-security-report@perl.org. This points to a closed subscription
563unarchived mailing list, which includes all the core committers, who be able
564to help assess the impact of issues, figure out a resolution, and help
565co-ordinate the release of patches to mitigate or fix the problem across all
566platforms on which Perl is supported. Please only use this address for
567security issues in the Perl core, not for modules independently
568distributed on CPAN.
569
570=head1 SEE ALSO
571
572The F<Changes> file for an explanation of how to view exhaustive details
573on what changed.
574
575The F<INSTALL> file for how to build Perl.
576
577The F<README> file for general stuff.
578
579The F<Artistic> and F<Copying> files for copyright information.
580
581=cut
e0b8b6f1
JV
582
583=for later
584
585Below, you'll find a cut-down version of the git log from 5.13.8 to 1b9043bb.
586Jesse went through and took a first pass at cutting out non-changelog items. He may have been over-(or under-)zealous.
587
588It hasn't yet been deduped with the entries that _are_ in the perldelta.
589
590
591 Major spell-checking pass throughout the core
592
593 Remove references to compat3.sym and interp.sym, deleted over 10 years ago.
594
595 Remove Mac OS classic code from numerous places throughout the core
596
e0b8b6f1
JV
597commit 7fe50b8b8a4dc38fc341e3b403545aaca937f50e
598Author: Leon Timmermans <fawaka@gmail.com>
599Date: Tue Jan 18 16:40:07 2011 +0100
600
601 Also unblock signal handlers throwing an exception
602
603 Also handle and test the edge case of a signal handler throwing an
604 exception
605
606
607
608
609Numberous POD warnings fixed
610
611
612
613 Update Unicode-Collate to CPAN version 0.71
614
615
616internals
617
618
619 regexec.c: Remove break statements from macros
620
621 This is so future coders won't be tempted to rely on them.
622
623 regexec.c: Don't rely on break stmts in macros
624
625 It is safer and clearer to have the break statement in each case statement at
626 the source level
627
628commit b57e41186b2ceb48bef4f0588dcd19e105cc8a38
629Author: Karl Williamson <public@khwilliamson.com>
630Date: Tue Jan 18 15:03:41 2011 -0700
631
632 regcomp: Disallow multi-char folds in lookbehind
633
634 The addition of the ANYOFV regnode to treat multi-char folds in a bracketed
635 character class has exposed a bug, in which those classes have long been able
636 to be varying length (due to the multi-char fold), but the compiler wasn't
637 aware of it. Now it is, and hence won't allow those which have multi-char
638 folds to be part of a lookbehind pattern, which requires a constant length.
639
640 This patch disallows multi-char folds in a lookbehind bracketed character
641 class.
642
643Author: Nicholas Clark <nick@ccl4.org>
644Date: Tue Jan 18 16:14:43 2011 +0000
645
646 Remove Mac OS classic code from scripts in utils/
647
648
649 Convert DosGlob.t to Test::More.
650
651commit d6dc8a6dc95226ddff7719cd1e0bd053c4e5725e
652Author: Nicholas Clark <nick@ccl4.org>
653Date: Tue Jan 18 13:08:11 2011 +0000
654
655 Remove Mac OS Classic docs from DirHandle and File::{Copy,DosGlob,Find}
656
657 The documentation for the different behaviour on Mac OS Classic was not
658 removed when the relevant code was removed in 862f843bac3434c2. That commit
659 also remove all callers to several Mac OS classic support functions, but not
660 the functions themselves. Rectify this.
661
662commit 8254cbf193c939338449097a80163197fc755150
663Author: Nicholas Clark <nick@ccl4.org>
664Date: Tue Jan 18 11:10:41 2011 +0000
665
666 Build perltoc.pod with pragmata sorted by name.
667
668 Previously they were actually sorted by full pathname, which isn't logical.
669 I presume that this is an artefact of all pragmata being in lib/ when
670 pod/buildtoc was originally written.
671
672commit 1d45ec279e4e105512a2803e3d0bd974a151a0f6
673Author: Father Chrysostomos <sprout@cpan.org>
674Date: Mon Jan 17 22:32:52 2011 -0800
675
676 perlcall: Fixes for various grammatical errors
677
678commit faaf68361923e4bb95d1eb919bc724a0dcc5a4ce
679Author: Leon Timmermans <fawaka@gmail.com>
680Date: Mon Jan 17 17:59:33 2011 +0100
681
682 Clarify limitation in safe signals.
683
684commit 0c1bf4c7d433bb0ad80bfe5511b1301db32b7b95
685Author: Leon Timmermans <fawaka@gmail.com>
686Date: Mon Jan 17 16:29:11 2011 +0100
687
688 Added tests for conditional unblocking
689
690commit 555344425f04e96a72e4d29eab96b34bff8f96ae
691Author: Leon Timmermans <fawaka@gmail.com>
692Date: Thu Jan 13 18:30:29 2011 +0100
693
694 Conditionally unblock after signal handler[#82040]
695
696 Only unblock signal after a safe-signal handler is executed if that signal was
697 also unblocked before the handler.
698commit 435aa301127ed481169903cb35187bde1ea44928
699Author: David Golden <dagolden@cpan.org>
700Date: Mon Jan 17 20:39:14 2011 -0500
701
702 Update HTTP::Tiny to CPAN version 0.009
703
704commit 78cd53afbb1923bf0a68f361040ad8fe93a7d0d5
705Author: David Mitchell <davem@iabyn.com>
706Date: Tue Jan 18 00:46:30 2011 +0000
707
708 vastly speed up t/porting/diag.t
709
710 This used to take about 3 minutes of CPU. Reduce this to around
711 6 seconds (!!) by coalescing and pre-compiling various patterns
712 that get applied to nearly every line of every source file.
713
714commit cfaf538b6276c6a8ef80ff6c66e106c6a4f1caaa
715Author: Karl Williamson <public@khwilliamson.com>
716Date: Mon Jan 17 08:58:53 2011 -0700
717
718 Add /a regex modifier
719
720 This restricts certain constructs, like \w, to matching in the ASCII range only.
721
722commit 56ae17b45d2513d65903d13468e8f6a16b20f916
723Author: Karl Williamson <public@khwilliamson.com>
724Date: Sun Jan 16 17:41:30 2011 -0700
725
726 regcomp.c: Convert \d \D to a switch{}
727
728commit eee47ba661717bca7751443be1b6ac8f8f64585a
729Author: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
730Date: Mon Jan 17 12:35:54 2011 +0000
731
732 Update File-Fetch to CPAN version 0.32
733
734commit e66820012d29519f903709f005e56a2c334ae183
735Author: Tony Cook <tony@develop-help.com>
736Date: Mon Jan 17 19:22:08 2011 +1100
737
738 test_prep now depends on the pods needed for porting/buildtoc.t
739
740 In the other makefiles test_prep (or test-prep) depends on all, so
741 they shouldn't need updating.
742
743
744commit a52237f3a547cdefddd4c4be6224bfdf67c84263
745Author: David Golden <dagolden@cpan.org>
746Date: Sun Jan 16 21:32:21 2011 -0500
747
748 Update CPAN to CPAN version 1.94_63
749
750commit 63ac0dadb1aafcf0c171d3c1422c1923b611b2fc
751Author: Karl Williamson <public@khwilliamson.com>
752Date: Tue Dec 28 16:13:49 2010 -0700
753
754 regex: Use BOUNDU regnodes
755
756 This refactors one area in regexec.c to use BOUNDU, NBOUNDU for
757 efficiciency, and easier adding of the future BOUNDA.
758
759commit 980866de2cf8ecdb4bb72b7f9294763057008f50
760Author: Karl Williamson <public@khwilliamson.com>
761Date: Mon Dec 27 12:04:58 2010 -0700
762
763 regex: Separate nodes for Unicode semantics \s \w
764
765 This patch converts the \s, \w and complements Unicode semantics to
766 instead of using the flags field of their nodes to instead use separate
767 nodes. This gains some efficiency, especially useful in tight loops and
768 backtracking of regexec.c, and prepares the way for easily adding other
769 semantic variations, such as /a.
770
771 It refactors the CCC_TRY... macros. I tried to break this piece up into
772 smaller chunks, but found it much easier to get to this in one step.
773 Further patches will do some more refactoring of these.
774
775 As part of the CCC_TRY macro refactoring, the lines that include the
776 test if (! nextchr) are changed to just look for the end-of-string by
777 position instead of it being NUL. In locales, it could be (however
778 unlikely), that NUL is a real alphabetic, digit, or space character.
779commit 50e911483ad5c29e25c54c9f81f92df974dd2cc0
780Author: Karl Williamson <public@khwilliamson.com>
781Date: Sun Dec 26 10:35:58 2010 -0700
782
783 Change name of /d to DEPENDS
784
785 I much prefer David Golden's name for /d whose meaning 'depends' on
786 circumstances, instead of 'dual' meaning it could be one or another.
787 Change it before this gets out in a stable release, and we're stuck with
788 the old name.
789
790commit 73134a2eb4055c76fe5b154da95e09118f716fd8
791Author: Karl Williamson <public@khwilliamson.com>
792Date: Sun Dec 26 10:35:20 2010 -0700
793
794 CH] Change usage of regex/op common to common names
795
796 This patch changes the core functions to use the common names for the
797 fields that are shared between op.c and regcomp.c, just for consistency
798 of using one name throughout the core for the same thing.
799
800 A grep of cpan shows that both names are used in various modules; so
801 both names must be retained.
802
803commit a3ab329f3fc9494e700f51c38cef42021c130b6e
804Author: David Golden <dagolden@cpan.org>
805Date: Sun Jan 16 20:57:02 2011 -0500
806
807 Add HTTP::Tiny as a dual-life core module
808
809 HTTP::Tiny has been added as a dual-life module. It is a very
810 small, simple HTTP/1.1 client designed for simple GET requests and file
811 mirroring. It has has been added to enable CPAN.pm and CPANPLUS to
812 "bootstrap" HTTP access to CPAN using pure Perl without relying on external
813 binaries like F<curl> or F<wget>.
814
815commit 211cc5012284f4bd900fcaa630adbcac69ca6112
816Author: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
817Date: Sun Jan 16 23:23:03 2011 +0000
818
819 Update Unicode-Collate to CPAN version 0.70 and enable XS version
820
821commit a62b1201c068dc7b099bcb7182e188c4d2fbf34c
822Author: Karl Williamson <public@khwilliamson.com>
823Date: Sun Dec 26 10:31:16 2010 -0700
824
825 Use multi-bit field for regex character set
826
827 The /d, /l, and /u regex modifiers are mutually exclusive. This patch
828 changes the field that stores the character set to use more than one bit
829 with an enum determining which one. This data structure more
830 closely follows the semantics of their being mutually exclusive, and
831 conserves bits as well, and is better expandable.
832
833 A small API is added to set and query the bit field.
834
835 This patch is not .xs source backwards compatible. A handful of cpan
836 programs are affected.
837
838
839tools
840
841 Significant updates to buildtoc
842
843 Update Unicode-Normalize to CPAN version 1.10
844
845commit 11454c594f22abc5945e69a46fc965363dbf326e
846Author: Karl Williamson <public@khwilliamson.com>
847Date: Sat Jan 15 13:42:58 2011 -0700
848
849 Fix \xa0 matching both [\s] [\S], et.al.
850
851 This bug stemmed from Latin1 characters not matching any (non-complemented)
852 character class in /d semantics when the target string is no utf8; but having
853 unicode semantics when it isn't. The solution here is to add a special flag.
854
855 There were several tests that relied on the broken behavior, specifically they
856 tested that \xff isn't a printable word character even in utf8. I changed the
857 deparse test to instead use a non-printable code point, and I changed the ones
858 in re_tests to be TODOs, and will change them back using /a when that is
859 shortly added.
860
861
862SECURITY
863
864 restrict \p{IsUserDefined} to In\w+ and In\w+
865
866 In L<perlunicode/"User-Defined Character Properties">, it says you can
867 create custom properties by defining subroutines whose names begin with
868 "In" or "Is". However, perl doesn't actually enforce that naming
869 restriction, so \p{foo::bar} will call foo::Bar() if it exists.
870
871 This commit finally enforces this convention. Note that this broke a
872 number of existing tests for properties, since they didn't always use an
873 Is/In prefix.
874
875TESTING
876
877 test that perl.pod, pod.lst, MANIFEST and the file system are consistent
878
879commit f56b6394f7cf57733135f56e4e4ac49abe9ac9cc
880Author: Karl Williamson <public@khwilliamson.com>
881Date: Thu Jan 13 22:36:36 2011 -0700
882
883 regex: Use ANYOFV
884
885 This patch restructures the regex ANYOF code to generate ANYOFV nodes instead
886 when there is a possibility that it could match more than one character. Note
887 that this doesn't affect the optimizer, as it essentially ignores things that
888 fit into this category. (But it means that the optimizer will no longer reject
889 these when it shouldn't have.)
890
891 The handling of the LATIN SHARP s is modified to correspond with this new node
892 type.
893
894 The initial handling of ANYOFV is placed in regexec.c. More analysis will come
895 on that. But there was significant change to the part that handles matching
896 multi-char strings. This has long been buggy, with it previously comparing a
897 folded-version on one side with a non-folded version on the other.
898
899 This patch fixes about 60% of the problems that my undelivered test suite gives
900 for multi-char folds. But there are still 17K test failures left, so I'm still
901 not delivering that. The TODOs that this fixes will be cleaned up in a later commit
902
903
904 Update Pod-LaTeX to CPAN version 0.59
905
906commit 680818c0361b180bb6f09d4bb11c4d5cd467fe62
907Author: Nicholas Clark <nick@ccl4.org>
908Date: Thu Jan 13 16:24:52 2011 +0000
909
910 ithread_create() was relying on the stack not moving. Fix this.
911
912 4cf5eae5e58faebb changed S_ithread_create() to avoid creating an AV, by
913 passing the thread creation arguments as pointers to a block of memory
914 holding SVs. Unfortunately, this inadvertently introduced a subtle bug,
915 because the block of memory is on the Perl stack, which can move as a side
916 effect of being reallocated to extend it. Hence pass in the offset on the
917 stack instead, read the current value of the relevant interpreter's stack
918 at the point of access, and copy all the SVs away before making any further
919 calls which might cause reallocation.
920
921 Update to Win32-0.44 from CPAN
922 Update Term-UI to CPAN version 0.24
923 Update IO-Compress to CPAN version 2.033
924 Update Compress-Raw-Zlib to CPAN version 2.033
925 Update Compress-Raw-Bzip2 to CPAN version 2.033
926 Update DB_File to CPAN version 1.821
927
928DIAGNOSTICS
929 Correct the "unimplemented" message for get{host,net,proto,serv}ent aliases.
930
931 Previously, if all of gethost{byaddr,byname,ent} were unimplemented on a
932 platform, they would all return 'Unsupported socket function "gethostent"
933 called', with the analogous results for getnet{byaddr,byname,ent},
934 getproto{byname,bynumber,ent} and getserv{byname,byport,ent}. This bug was
935 introduced by change af51a00e97d5c559 - prior to this, all 12 functions would
936 report their own name when unimplemented.
937
938commit 9ae3ac1a84c63b0eadf5baf47ce7096482280f32
939Author: Karl Williamson <public@khwilliamson.com>
940Date: Sun Jan 9 15:33:28 2011 -0700
941
942 Add warnings for use of problematic code points
943
944 The non-Unicode code points have no Unicode semantics, so applying operations
945 such as casing on them warns.
946
947 This patch also includes the changes to test the warnings added by recent
948 commits for handling the surrogates and above-Unicode code points
949
950commit 949cf4983af707fbd15e422845f4f3df20505f97
951Author: Karl Williamson <public@khwilliamson.com>
952Date: Sun Jan 9 13:50:18 2011 -0700
953
954 utf8.c(): Default to allow problematic code points
955
956 Surrogates, non-character code points, and code points that aren't in Unicode
957 are now allowed by default, instead of having to specify a flag to allow them.
958 (Most code did specify those flags anyway.)
959
960 This affects uvuni_to_utf8_flags(), utf8n_to_uvuni() and various routines that
961 are specialized interfaces to them.
962
963 Now there is a new set of flags to disallow those code points. Further, all 66
964 of the non-character code points are known about and handled consistently,
965 instead of just U+FFFF.
966
967 Code that requires these code points to be forbidden will have to change to use
968 the new flags. I have looked at all the (few) instances in CPAN where these
969 routines are used, and the only one I found that appears to have need to do
970 this, Encode, has already been patched to accommodate this change. Of course,
971 I may have overlooked some subtleties.
972
973
974commit 7627e6d0fe772ac90fce9e03fea273109521e261
975Author: Nicholas Clark <nick@ccl4.org>
976Date: Sat Jan 8 15:56:22 2011 +0000
977
978 Generate "Unsupported socket function" stubs using PL_ppaddr.
979
980 Instead of having each socket op conditionally compile as either the
981 implementation or a DIE() depending on #HAS_SOCKET
982
983 1: remove the conditional code from the ops themselves
984 2: only compile the ops if HAS_SOCKET is defined
985 3: general conditional code for the intialisation of PL_ppaddr - as appropriate
986 either the ops, or Perl_unimplemented_op
987 4: Amend Perl_unimplemented_op to generate the appropriate DIE() for socket
988 ops (ie not the "panic"... message)
989
990 Whilst this complicates the support code in regen/opcode.pl, it's already a
991 net saving of 5 lines in the C code.
992
993commit 897d398936dd2fc088a265fba2a7b62fa97ed458
994Author: Nicholas Clark <nick@ccl4.org>
995Date: Sun Jan 9 10:54:58 2011 +0000
996
997 Generate pp_* prototypes in pp_proto.h, and remove pp.sym
998
999 Eliminate the #define pp_foo Perl_pp_foo(pTHX) macros, and update the 13
1000 locations that relied on them.
1001
1002 regen/opcode.pl now generates prototypes for the PP functions directly, into
1003 pp_proto.h. It no longer writes pp.sym, and regen/embed.pl no longer reads
1004 this, removing the only ordering dependency in the regen scripts. opcode.pl
1005 is now responsible for prototypes for pp_* functions. (embed.pl remains
1006 responsible for ck_* functions, reading from regen/opcodes)
1007
1008commit f1aaabf80b19a3cc6dc435510732b561ab46361e
1009Author: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
1010Date: Sun Jan 9 00:16:46 2011 +0000
1011
1012 Update CPANPLUS to CPAN version 0.9011
1013 Update CPANPLUS-Dist-Build to CPAN version 0.52
1014 Update Term-UI to CPAN version 0.22
1015 Update Params-Check to CPAN version 0.28
1016
1017commit a4a4c9e2c086dd5f7b7b05789161614dbbe8385b
1018Author: Karl Williamson <public@khwilliamson.com>
1019Date: Sat Jan 8 14:44:05 2011 -0700
1020
1021 perldiag.pod: Add missing message severities
1022
1023commit 0019012ad86d597fb507f71577d70ecd4c416bba
1024Author: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
1025Date: Sat Jan 8 23:09:04 2011 +0000
1026
1027 Update Object-Accessor to CPAN version 0.38
1028 Update Module-Load-Conditional to CPAN version 0.40
1029 Update Log-Message to CPAN version 0.04
1030 Update IPC-Cmd to CPAN version 0.68
1031
1032
1033TESTING
1034 add test for split without a pattern
1035
1036 Add some while tests, about the context of the last statement in a block and about reinitializaiton of lexical variables.
1037
1038 modernise t/cmd/while.t
1039
1040 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".
1041
1042commit ac066c2ab5bc31260104aeee778921b186894769
1043
1044 Update File-Fetch to CPAN version 0.30
1045 Update Archive-Tar to CPAN version 1.76
1046 Update Archive-Extract to CPAN version 0.48
1047
1048commit b86b68b4eefa1069dabc8ea0401d712b24a67857
1049Author: Jesse Vincent <jesse@bestpractical.com>
1050Date: Sat Jan 8 00:14:29 2011 +0800
1051
1052 Update the policy on doc patches to maint
1053
1054
1055commit e8b333e679eb9a7a62c1d86b647515f01821eb60
1056Author: David Golden <dagolden@cpan.org>
1057Date: Wed Jan 5 22:47:41 2011 -0500
1058
1059 Add Module::Metadata as a dual-life core module
1060
1061 This commit adds Module::Metadata 1.000002 as a dual-life module. It
1062 gathers package and POD information from Perl module files. It is a
1063 standalone module based on Module::Build::ModuleInfo for use by other
1064 module installation toolchain components. Module::Build::ModuleInfo
1065 has been deprecated in favor of this module instead.
1066
1067commit a8fb8d791b74ff90850140d94407aad99ec86fe3
1068Author: John Peacock <jpeacock@jpeacock-hp.doesntexist.org>
1069Date: Thu Jan 6 20:02:37 2011 -0500
1070
1071 Sync with version 0.88 on CPAN
1072
1073commit c1b879e57aecbfe520b3f44dd28472d1862f037d
1074Author: Craig A. Berry <craigberry@mac.com>
1075Date: Wed Jan 5 19:14:06 2011 -0600
1076
1077 Make newline on last record explicit.
1078
1079 On VMS, the last line written to a file will get a trailing newline
1080 willy nilly. This has its advantages insofar as you never get the
1081 "no newline at end of file" warnings from various utilities, but
1082 reality conflicts with expectations when you explicitly test for
1083 the last (or only) line *not* ending with newline, which is what
1084 the recent addtion to ref.t (5e3072707906cc4cb8a364c4cf7c487df0300caa)
1085 was doing. Adding an explicit newline makes everyone happy.
1086
1087commit 935c8d19ecf9ad3ea7589ffd1721e6ba1c671ed9
1088Author: David Golden <dagolden@cpan.org>
1089Date: Wed Jan 5 22:25:23 2011 -0500
1090
1091 Add Perl::OSType as a dual-life core module
1092
1093 This commit adds Perl::OSType 1.002 as a dual-life module. It maps Perl
1094 operating system names (e.g. 'dragonfly' or 'MSWin32') to more generic
1095 types with standardized names (e.g. "Unix" or "Windows"). It has been
1096 refactored out of Module::Build and ExtUtils::CBuilder and consolidates
1097 such mappings into a single location for easier maintenance.
1098
1099 c.f.
1100 http://www.nntp.perl.org/group/perl.perl5.porters/2010/05/msg160280.html
1101
1102commit 2a1594f630b57637ddd7a38daaa1e17f66da396a
1103Author: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
1104Date: Wed Jan 5 23:35:15 2011 +0000
1105
1106 Update CGI to CPAN version 3.51
1107
1108 [SECURITY]
1109 - Further improvements have been made to guard against newline injections
1110 in headers. (Thanks to Max Kanat-Alexander, Yanick Champoux, Mark Stosberg)
1111
1112
1113commit 0b5e625bc99f5cb78697faf03b297b6cacadf60b
1114Author: Reini Urban <rurban@x-ray.at>
1115Date: Tue Sep 14 18:04:22 2010 +0200
1116
1117 build man pages on cygwin too
1118
1119commit 172830635ea7813c85e51e4ae2b4bed56ddbab83
1120Author: Reini Urban <rurban@x-ray.at>
1121Date: Tue Sep 14 17:54:15 2010 +0200
1122
1123 Improve cygwin rebase behaviour
1124
1125 If a dll is updated on cygwin reuse the old imagebase address.
1126 This solves most rebase errors, esp when updating on core dll's.
1127 See http://www.tishler.net/jason/software/rebase/rebase-2.4.2.README
1128
1129
1130NEW TESTS
1131
1132 t/porting/filenames.t to make sure that filenames and paths are reasonably portable
1133
1134
1135Platforms
1136
1137 Actually excise 'Apollo DomainOS' support. We officially killed it in 5.11.0. It
1138 hadn't worked for years before that.
1139
1140commit cc7e77fd5a0ee9f1498e54dddf566117da62754b
1141Author: Reini Urban <rurban@x-ray.at>
1142Date: Tue Sep 14 17:48:32 2010 +0200
1143
1144 CYG14 Dynaloader without USEIMPORTLIB, and search cyg prefix
1145
1146 part1: Support the standard cyg dll prefix, which is e.g. needed for FFI's.
1147 Ctypes and C::DynaLib use DynaLoader to find dlls.
1148
1149 part2: With -DUSEIMPORTLIB DynaLoader symbols link against the prefixed
1150 symbol names for the .dll.a importlib, but we need to link against the
1151 symbols directly. We don't link Dynaloader against libperl.dll.a.
1152
1153 Otherwise:
1154 $ g++-4 -o cygperl5_13_4.dll --shared perlsrc.o cygwin.o DynaLoader.o -ldl -lcrypt
1155 Creating library file: libperl.dll.a
1156 DynaLoader.o: In function `XS_DynaLoader_dl_undef_symbols':
1157 ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_stack_sp'
1158 ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_markstack_ptr'
1159 ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_stack_base'
1160
1161commit c0a149a90b8b6e1c18de7294ca974265fb559cf5
1162Author: Reini Urban <rurban@x-ray.at>
1163Date: Tue Sep 14 18:06:38 2010 +0200
1164
1165 Update cygwin hints
1166 do not use usemymalloc (double size + slow)
1167 remove deprecated libcygipc info
1168 remove overlarge stack size
1169
1170commit ac0650a4c9f69cdc9e7af31df29011c42b42b770
1171Author: Father Chrysostomos <sprout@cpan.org>
1172Date: Sun Jan 2 23:14:37 2011 -0800
1173
1174 Restore the old description of $[
1175
1176 The new entry is a bit too futuristic: assignment to $[ still works
1177 and it is not read-only.
1178
1179 This does not fully restore the old description, as it contained
1180 grammatical errors and parts of it were not updated when 5.10 changed
1181 the scoping.
1182
1183commit 2831a86cee065b53b74fd19ddcc6a4257484646d
1184Author: Zsbán Ambrus <ambrus@math.bme.hu>
1185Date: Sun Jan 2 20:25:55 2011 -0800
1186
1187 [perl #81032] Overhaul Porting/epigraphs.pod
1188
1189 This patch makes multiple changes to Porting/epigraphs.pod and
1190 pod/perlhist.pod.
1191
1192 For those that don't know, Porting/epigraphs.pod is a new document that
1193 collects the quotes (chosen by Pumpkins) in perl release announcements.
1194
1195 The changes are the following.
1196
1197 1. Add a link pointing to each release announcement in the mailing
1198 list archives. These are from ysth's list, the source from which
1199 Porting/epigraphs.pod was originally compiled, but they weren't in
1200 Porting/epigraphs.pod so far.
1201 2. Reorder Porting/epigraphs.pod chronologically, because I believe
1202 that makes more sense -- pod/perlhist.pod is still sorted by version numbers.
1203 3. Incidentally, some missing releases are added to pod/perlhist.pod too.
1204 4. Fix a mistake where Porting/epigraphs.pod gives the wrong version number.
1205 5. Add some epigraphs that appear in ysth's list but not in
1206 Porting/epigraphs.pod.
1207 6. I did some research in perl history before the part that ysth's list
1208 covers, and added older perl announcements I found. This work is not
1209 complete: I stopped somewhere in 2000.
1210
1211commit eccda089fc3dcaafc1ae0aac6b428f799231b824
1212Author: Paul "LeoNerd" Evans <leonerd@leonerd.org.uk>
1213Date: Mon Dec 13 17:50:06 2010 +0000
1214
1215 Implement Socket::getaddrinfo() and Socket::getnameinfo(), with related constants
1216
1217commit d54243158c0e4ba0127eb487c5b2e2a10484e8d0
1218Author: David Golden <dagolden@cpan.org>
1219Date: Thu Dec 30 23:43:44 2010 -0500
1220
1221 Add JSON::PP to the Perl core
1222
1223 Per discussions with Jesse Vincent, JSON::PP has been added
1224 to the Perl core to support the new CPAN meta file specification
1225
1226commit 4155e4fe81b9987a30efea627e43a574f5460f73
1227Author: Father Chrysostomos <sprout@cpan.org>
1228Date: Sun Jan 2 14:51:21 2011 -0800
1229
1230 [perl #36347] Object destruction incomplete
1231
1232 do_clean_objs only looks for objects referenced by RVs, so blessed
1233 array references and lexical variables (and probably other SVs, too)
1234 are not DESTROYed.
1235
1236 This commit adds a new visit() call to sv_clean_objs, which curses
1237 (DESTROYs and un-blesses, leaving the reference count as it is) any
1238 objects that are still left after do_clean_named_io_objs. The new
1239 do_curse routine (a pointer to which is passeds to visit()) follows
1240 do_clean_named_io_objs’ example and explicitly skips the STDOUT and
1241 STDERR handles, in case destructors need to use them.
1242
1243 The cursing code, which is now called from two places, is moved out of
1244 sv_clear and put in its own routine. The check that the reference
1245 count is zero does not apply when called from sv_clean_objs, so the
1246 new S_curse routine takes a boolean argument that determines whether
1247 that check should take place.
1248
1249commit 3d450a5dd4e8f9a7b2aba0b018f9fe078fb6aa30
1250Author: David Leadbeater <dgl@dgl.cx>
1251Date: Sun Jan 2 14:33:16 2011 -0800
1252
1253 [perl #73630] Build separate DTrace for miniperl
1254
1255 As outlined in the RT ticket due to miniperl's dependencies differing to
1256 the final perl binary dtrace -G needs to be called separately for each.
1257
1258 Build tested on Mac OS X 10.6, Solaris 11 and Scientific Linux with
1259 SystemTap from git.
1260
1261 (Solaris is the only system I have access to where DTRACE_O actually gets
1262 defined. Neither the dtrace binary on OS X nor SystemTap's dtrace
1263 compatibility layer accept the -G option.)
1264
1265commit 42467a219c70177fc2004ed9b73d6c3db59dba5c
1266Author: David Golden <dagolden@cpan.org>
1267Date: Sun Jan 2 17:34:44 2011 -0500
1268
1269 Update CPAN::Meta::YAML to 0.003
1270
1271commit 9426e1a55981168c83a030df9bce5e0b46586581
1272Author: David Mitchell <davem@iabyn.com>
1273Date: Sun Jan 2 19:38:30 2011 +0000
1274
1275 make <expr> always overload if expr is overloaded
1276
1277 Due to the way that '<> as glob' was parsed differently from
1278 '<> as filehandle' from 5.6 onwards, something like <$foo[0]>
1279 didn't handle overloading, even where $foo[0] was an overloaded object.
1280 This was contrary to the docs for overload, and meant that <> couldn't
1281 be used as a general overloaded iterator operator.
1282
1283commit e4ef33329eb648489bad5296e9673c409f5577f9
1284Author: Jesse Vincent <jesse@bestpractical.com>
1285Date: Sun Jan 2 10:50:21 2011 +0800
1286
1287 perlbug did not previously generate a From: header. While some MTAs do
1288 the "right" thing and insert a valid "From:", not all of them do,
1289 potentially resulting in dropped mail.
1290
1291
1292commit edcf105d70e5423fd928c776e086fe31a4a543f4
1293Author: Jesse Vincent <jesse@bestpractical.com>
1294Date: Sat Jan 1 18:46:20 2011 +0800
1295
1296 Document 'test_porting' and start a section on how committing to blead
1297
1298commit b85802c5d04fcd6e5c969a5c56136e05061f05d7
1299Author: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
1300Date: Sat Jan 1 10:37:04 2011 +0000
1301
1302 Update Encode to CPAN version 2.42
1303
1304
1305commit fbcda526a9bbe2ee1302d6f4507b07f83661fc0d
1306Author: Nicholas Clark <nick@ccl4.org>
1307Date: Thu Dec 30 17:30:24 2010 +0000
1308
1309 Most socket ops weren't warning for unopened handles unless 'closed' was enabled
1310
1311 They were checking that category 'closed' was enabled for warnings before
1312 calling report_evil_fh(), which in turn was (correctly) checking category
1313 'unopened'.
1314commit c521cf7c8af1697e5efd8ce3ad75ed00606db13b
1315Author: Nicholas Clark <nick@ccl4.org>
1316Date: Thu Dec 30 16:52:22 2010 +0000
1317
1318 pp_leavewrite wasn't warning for unopened handles unless 'closed' was enabled.
1319
1320 It was checking that category 'closed' was enabled for warnings before calling
1321 report_evil_fh(), which in turn was (correctly) checking category 'unopened'.
1322
1323commit 8985fe98dcc5c0af2fadeac15dfbc13f553ee7fc
1324Author: David Mitchell <davem@iabyn.com>
1325Date: Thu Dec 30 10:32:44 2010 +0000
1326
1327 Better handling of magic methods freeing the SV
1328
1329 This is a fix for RT #81230 (and more). Currently, mg_get() works around
1330 the case where the called magic (e.g. FETCH) frees the magic SV. It does
1331 this by unconditionally pushing the SV on the tmps stack before invoking
1332 the method.
1333
1334 There are two issues with this. Firstly, it may artificially extend the
1335 life of the SV. This was the root of the problem with #81230. There, the
1336 DB_File code, under -T, created a tainted tied object. Accessing the
1337 object (within FETCH as it happens), caused mg_get() to be invoked on the
1338 object (due to the taint magic), and thus extend the life of the object.
1339 This then caused c<untie %h if $h{k}> to give the warning
1340 untie attempted while 1 inner references still exist.
1341 This only became noticeable after efaf36747029c85b4d8825318cb4d485a0bb350e,
1342 which stopped wrapping magic method calls in SAVETMPS/FREETMPS.
1343
1344 The second issue issue that this protection only applies to mg_get();
1345 functions like mg_set() can still segfault if the SV is deleted.
1346
1347 This commit fixes both problems as follows:
1348
1349 First, the protection mechanism is moved out of mg_get() and into
1350 save_magic() / restore_magic(), so that it protects more things.
1351 Secondly, the protection is now:
1352
1353 * in save_magic(), SvREFCNT_inc() the SV, thus protecting it from being
1354 freed during FETCH (or whatever)
1355
1356 * in restore_magic(), SvREFCNT_dec() the SV, undoing the protection
1357 without extending the life of the SV, *except* if the refcount is
1358 1 (ie FETCH tried to free it), then push it on the mortals stack
1359 to extend it life a bit so our callers wont choke on it.
1360
1361
1362commit e8a07a125ebebaf06dc890127439c7461a063b35
1363Author: David Golden <dagolden@cpan.org>
1364Date: Mon Dec 27 14:50:31 2010 -0500
1365
1366 Add CPAN::Meta::YAML as a dual-life core module
1367
1368commit 6fae7aa4cab68dd6bb59af7f22c85e77eb8a1b0c
1369Author: Zsbán Ambrus <ambrus@math.bme.hu>
1370Date: Sun Dec 26 18:10:57 2010 -0800
1371
1372 [perl #81016] Document ord("")
1373
1374 The following patch clarifies what ord("") does in pod/perlfunc.pod.
1375
1376 From the current documentation, it's not documented what it does, and one
1377 could guess several different things: returns zero, returns undef, returns
1378 zero with a warning, returns undef with a warning, dies. (There's precedent
1379 for dying: some BASIC implementations give an error if you ask for ASC("")
1380 -- here ASC is their equivalent of our ord function.)
1381
1382commit 23e2fda90bc3d33c854bd36de712a45aca7a7711
1383Author: Jerry D. Hedden <jdhedden@cpan.org>
1384Date: Fri Dec 24 12:53:28 2010 -0500
1385
1386 Upgrade to Thread::Queue 2.12
1387 Upgrade to Thread::Semaphore 2.12
1388
1389commit cce04bebd8af026c2a6731940ddb895d3c1fc3e4
1390Author: David Golden <dagolden@cpan.org>
1391Date: Mon Dec 13 17:36:33 2010 -0500
1392
1393 Reorganize perlhack.pod
1394
1395 Following on an IRC conversation, I've attempted to reorganize
1396 perlhack for greater clarity. I have only cut and paste blocks
1397 of text and amended section titles and levels. (I have not addressed
1398 any of the numerous factual issues which remain.)
1399
1400 The resulting guide should be clearer for those trying to skim the
1401 table of contents to understand what is covered in perlhack and
1402 whether it is worth an in-depth read.
1403
1404 I see this change as the first step towards future improvements.
1405
1406commit 0b76a1aba72393931944e93dffe81e1937ff3ac4
1407Author: Jerry D. Hedden <jdhedden@cpan.org>
1408Date: Fri Dec 24 22:29:14 2010 +0000
1409
1410 [PATCH] Upgrade to threads::shared 1.36
1411 [PATCH] Upgrade to threads 1.82
1412
1413commit c89df6cf6f70d6460ca3fec9d465e5e6e17fb3a7
1414Author: Karl Williamson <public@khwilliamson.com>
1415Date: Sun Dec 19 11:08:47 2010 -0700
1416
1417 Change regexes to debug dump non-ASCII as hex.
1418
1419 instead of the less familiar octal for larger values. Perhaps they
1420 should actually print the actual character, but this is far easier than
1421 the previous to understand.
1422
e0b8b6f1 1423=cut