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