3 [ Any text flagged as XXX needs to be processed before release. ]
5 perldelta - what is new for perl v5.11.1
9 This document describes differences between the 5.11.0 release and
16 =head1 Incompatible Changes
18 XXX For a release on a stable branch, this section aspires to be:
20 There are no changes intentionally incompatible with 5.XXX.XXX. If any
21 exist, they are bugs and reports are welcome.
24 =head1 Core Enhancements
26 XXX New core language features go here. Summarise user-visible core language
27 enhancements. Particularly prominent performance optimisations could go
28 here, but most should go in the L</Performance Enhancements> section.
32 XXX List any platforms that this version of perl compiles on, that previous
33 versions did not. These will either be enabled by new files in the F<hints/>
34 directories, or new subdirectories and F<README> files at the top level of the
37 =head1 Modules and Pragmata
39 XXX All changes to installed files in F<ext/> and F<lib/> go here, in a list
40 ordered by distribution name. Minimally it should be the module version,
41 but it's more useful to the end user to give a paragraph's summary of the
42 module's changes. In an ideal world, dual-life modules would have a
43 F<Changes> file that could be cribbed.
45 =head2 New Modules and Pragmata
55 =head2 Pragmata Changes
65 =head2 Updated Modules
75 =head1 Utility Changes
77 XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
78 here. Most of these are built within the directories F<utils> and F<x2p>.
88 =head1 New Documentation
90 XXX Changes which create B<new> files in F<pod/> go here.
100 =head1 Changes to Existing Documentation
102 XXX Changes which significantly change existing files in F<pod/> go here.
103 Any changes to F<pod/perldiag.pod> should go in L</New or Changed Diagnostics>.
106 =head1 Performance Enhancements
108 XXX Changes which enhance performance without changing behaviour go here. There
109 may well be none in a stable release.
119 =head1 Installation and Configuration Improvements
121 XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
124 =head2 Configuration improvements
128 =head2 Compilation improvements
132 =head2 Platform Specific Changes
136 =item XXX-some-platform
142 =head1 Selected Bug Fixes
144 XXX Important bug fixes in the core language are summarised here.
145 Bug fixes in files in F<ext/> and F<lib/> are best summarised in
146 L</Modules and Pragmata>.
156 =head1 New or Changed Diagnostics
158 XXX New or changed warnings emitted by the core's C<C> code go here.
168 =head1 Changed Internals
170 XXX Changes which affect the interface available to C<XS> code go here.
182 XXX Changes which create B<new> files in F<t/> go here. Changes to
183 existing files in F<t/> aren't worth summarising, although the bugs that
184 they represent may be.
188 =item Significant cleanups to core tests to ensure that language and interpreter features are not used before they're tested.
194 =head1 Known Problems
196 XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
197 tests that had to be C<TODO>ed for the release would be noted here, unless
198 they were specific to a particular platform (see below).
200 This is a list of some significant unfixed bugs, which are regressions
201 from either 5.10.1 or 5.11.0.
213 XXX Add any new known deprecations here.
215 The following items are now deprecated.
225 =head1 Platform Specific Notes
227 XXX Any changes specific to a particular platform. VMS and Win32 are the usual
228 stars here. It's probably best to group changes under the same section layout
229 as the main perldelta
234 XXX If any significant core contributor has died, we've added a short obituary
237 =head1 Acknowledgements
239 XXX The list of people to thank goes here.
242 =head1 Reporting Bugs
244 If you find what you think is a bug, you might check the articles
245 recently posted to the comp.lang.perl.misc newsgroup and the perl
246 bug database at http://rt.perl.org/perlbug/ . There may also be
247 information at http://www.perl.org/ , the Perl Home Page.
249 If you believe you have an unreported bug, please run the B<perlbug>
250 program included with your release. Be sure to trim your bug down
251 to a tiny but sufficient test case. Your bug report, along with the
252 output of C<perl -V>, will be sent off to perlbug@perl.org to be
253 analysed by the Perl porting team.
255 If the bug you are reporting has security implications, which make it
256 inappropriate to send to a publicly archived mailing list, then please send
257 it to perl5-security-report@perl.org. This points to a closed subscription
258 unarchived mailing list, which includes all the core committers, who be able
259 to help assess the impact of issues, figure out a resolution, and help
260 co-ordinate the release of patches to mitigate or fix the problem across all
261 platforms on which Perl is supported. Please only use this address for
262 security issues in the Perl core, not for modules independently
267 The F<Changes> file for an explanation of how to view exhaustive details
270 The F<INSTALL> file for how to build Perl.
272 The F<README> file for general stuff.
274 The F<Artistic> and F<Copying> files for copyright information.
278 This is all changes through 704e1b1e
281 Update CPANPLUS to CPAN version 0.89_02
283 Upgrade to threads::shared 1.32
285 Help ExtUtils::Install's tests find PERL_SRC on VMS.
287 commit d1d15184c41c6ad4f16829561163cd118e5ae917
288 Author: Nicholas Clark <nick@ccl4.org>
289 Date: Tue Oct 13 16:04:18 2009 +0100
291 Enable deprecation warnings by default.
293 locked is deprecated, so use :lvalue instead.
295 Can't use C<shift INC> to avoid @ in a commandline now, so use eval and octal.
297 shift with barewords is deprecated, so this test from perl 1 needs updating.
299 push and pop on barewords are deprecated, so need no warnings 'deprecated';
301 Opening dirhandle DIR also as a file needs no warnings 'deprecated';
303 defined @array and defined %hash need no warnings 'deprecated';
305 localisation of $[ is deprecated, so needs no warnings 'deprecated';
307 Tests for barewords and hash operators need no warnings 'deprecated';
309 do subname() is deprecated, so tests for it need no warnings 'deprecated';
311 Bracket deprecated features with no warnings 'deprecated';
313 Move the test for the deprecated feature <<; out of t/base/lext.t
315 Tests in base can't utilise pragmata, specifically no warnings 'deprecated';
317 Add no warnings 'deprecated' to a test that assigns to $[
319 commit a44d0896a6c4bfe01ea532694b8c1c073ea6a2f1
320 Author: Nicholas Clark <nick@ccl4.org>
321 Date: Thu Oct 15 23:37:41 2009 +0100
323 Skip testing the be_BY.CP1131 locale on Darwin 10, as it's still buggy.
325 Correct infelicities in the regexp used to identify buggy locales on Darwin 8
328 POSIX::strftime() should be able to handle Unicode characters in the format
331 commit 2e0eeeaafce11cb0128a6d1e245f1a5b806e3a87
332 Author: Nicholas Clark <nick@ccl4.org>
333 Date: Thu Oct 15 15:12:49 2009 +0100
335 Move the boolkeys op to the group of hash ops.
337 This breaks binary compatibility.
339 commit 867fa1e2da145229b4db2c6e8d5b51700c15f114
340 Author: demerphq <demerphq@gmail.com>
341 Date: Thu Oct 15 14:27:30 2009 +0100
343 Optimise if (%foo) to be faster than if(keys %foo)
345 Thread was "[PATCH] Make if (%hash) {} act the same as if (keys %hash) {}"
346 http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-11/msg00432.html
347 but the implementation evolved from the approach described in the subject, to
348 instead add a new opcode pp_boolkeys, to exactly preserve the existing
351 Various conflicts with the passage of time resolved, 'register' removed, and a
354 commit 1c85afcecc8ee030e2780aa5bfa85692c8db64df
355 Author: demerphq <demerphq@gmail.com>
356 Date: Thu Oct 15 14:22:47 2009 +0100
358 Support for pp_boolkeys in B::Deparse.
360 Part of "[PATCH] Make if (%hash) {} act the same as if (keys %hash) {}"
361 http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-11/msg00432.html
362 which evolved from the approach described in the subject, to instead add a new
363 opcode pp_boolkeys, to exactly preserve the existing behaviour.
365 Plus a $VERSION bump.
367 commit 55b77936aef50881a71470fd06e66edffd66d9de
368 Author: Sisyphus <sisyphus1@optusnet.com.au>
369 Date: Wed Oct 14 10:02:16 2009 -0400
371 Add mingw64 support for win32
373 commit d4c22fec77d7244882ce42a93a4ad25bdada2519
374 Author: Sisyphus <sisyphus1@optusnet.com.au>
375 Date: Wed Oct 14 06:58:49 2009 -0400
377 Patch t/win32/system.t for mingw32/64
379 commit e4d771f5006ebd70b76422437cce60e9ac40c830
380 Author: Jan Dubois <jand@activestate.com>
381 Date: Tue Oct 13 16:46:58 2009 -0700
383 The winsock select() implementation doesn't support all empty 'fd_set's.
385 The code already contained a workaround for the special case
387 select(undef, undef, undef, $sleep);
389 but didn't handle the case when actual bit vectors were passed in
390 that didn't have any bits set.
392 Fixes http://rt.perl.org/rt3/Public/Bug/Display.html?id=54544
399 Podify the social contract about contributed module. Turn it into a policy document. Move the new "perl policy" document into pod/
402 Author: Smylers <Smylers@stripey.com>
403 Date: Tue Oct 13 14:14:46 2009 +0200
405 perlvar $1 clarification
407 $1 is currently documented as being set by the "last pattern match".
408 But it is left alone by unsuccessful pattern match attempts (continuing
409 to hold a value from an earlier successful match).
411 Saying "last successful pattern match" clarifies this; it's also the
412 phrase used to document $&.
414 Second, the entry for $1 in perlvar doesn't actually contain the text
415 "$1" anywhere. As such, doing man perlvar then using /\$1 to search for
416 it in less doesn't locate it (though does match other places in that
417 file where $1 happens to be used).
422 Replace Perl_deprecate() with a macro that calls Perl_ck_warner()
423 Perl_deprecate was not part of the public API, and did not have a deprecate()
424 shortcut macro defined without -DPERL_CORE. Neither codesearch.google.com nor
425 CPAN::Unpack show any users outside the core.
430 Remove category 'syntax' from 5 warnings that should just be in 'deprecated'.
432 None were documented as also being in 'syntax'. Effectively, this completes the
433 reorganisation of commits 12bcd1a617c74d6e and 9014280dc8264580. See
434 http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2009-10/msg00601.html and
435 http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-03/msg00850.html
439 commit c989e6a3e4b89b26d315693449c76cdcb754611f
440 Author: Geoffrey T. Dairiki <dairiki at dairiki.org>
441 Date: Tue Aug 4 17:54:34 2009 -0700
443 overload no longer implicitly unsets fallback on repeated 'use overload' lines - Fix for RT#68916
446 commit 5f5991a0d6d8ef99d2643b88a7d9285e35277331
447 Author: Nicholas Clark <nick@ccl4.org>
448 Date: Mon Oct 12 15:54:30 2009 +0100
450 Normalise 3 fatal pack/unpack error messages to "panic: %s"
452 commit 04e82a462b85b3d6265b04aa07a405316616dc66
453 Author: Nicholas Clark <nick@ccl4.org>
454 Date: Sun Oct 11 18:56:01 2009 +0100
456 porting/manifest.t now tests that all files listed in MANIFEST are present.
458 commit 41239ce77fcd273e18c4017d3d96a5f42e228594
459 Author: Nicholas Clark <nick@ccl4.org>
460 Date: Sun Oct 11 17:28:02 2009 +0100
462 Default to running tests in cpan/ with relative paths for perl and @INC
464 Explicitly turn paths absolute for the 33 extensions in cpan/ that fail tests
467 commit fc5e5837c991d3d3224259ff5c1d728d4e0636e2
468 Author: Nicholas Clark <nick@ccl4.org>
469 Date: Sun Oct 11 15:05:58 2009 +0100
471 MakeMaker::Test::Utils::perl_lib now copes with relative paths for core testing.
473 In the core, @INC already contains the moral equivalent of blib/lib. However,
474 it's a relative path (by default), so make it absolute. It's easier to KISS if
475 this is done *before* any change of directory, so document this, and change the
476 non-core case to add the absolute path of 'blib/lib' to @INC, rather than the
477 absolute path of '../blib/lib'.
480 Upgrade to Test-Simple-0.94
482 Upgrade to Storable-2.21
484 Upgrade to Pod-Simple-3.08
486 Upgrade to Parse-CPAN-Meta-1.40
488 Upgrade to ExtUtils-Manifest-1.57
490 Upgrade to ExtUtils-CBuilder-0.260301
493 Upgrade to CGI.pm-3.48
495 commit 6c1b5ced18901286f16f6d5f6914ba4b5e3db601
496 Author: Simon 'corecode' Schubert <corecode@fs.ei.tum.de>
497 Date: Sat Oct 10 17:55:26 2009 +0100
499 [perl #69686] Fix DragonFly thread lib selection
503 Merge: 8e32470 e92f586
504 Author: Rafael Garcia-Suarez <rgs@consttype.org>
505 Date: Thu Oct 8 15:13:18 2009 +0200
507 Merge branch 'feature/package-name-version' into blead
509 commit f03173f2c707a804ec3e9c291d2ab1adb9db4abc
510 Author: Rafael Garcia-Suarez <rgs@consttype.org>
511 Date: Thu Oct 8 11:44:21 2009 +0200
513 Make tell() fail properly if called without an argument and when no previous file was read
515 This makes tell() return -1, and sets errno to EBADF, thus
516 restoring the 5.8.x behaviour
518 commit a916b30221d5aac718ed67c9a5bc9c0905daddd0
519 Author: Rafael Garcia-Suarez <rgs@consttype.org>
520 Date: Thu Oct 8 11:33:06 2009 +0200
522 Properly return a syntax error instead of segfaulting if each/keys/values is used without an argument
524 =item Updated Object-Accessor to CPAN version 0.36
527 Add perltodo: write an XS cookbook
529 Porting/checkAUTHORS.pl now runs clean
531 commit 6fa4d285bff5644bebb95aff09143322042282cc
532 Author: David Golden <dagolden@cpan.org>
533 Date: Tue Oct 6 06:48:48 2009 -0400
535 Add 'package NAME VERSION' syntax
537 This patch adds support for setting the $VERSION of a namespace
538 when the namespace is declared with 'package'. It eliminates the
539 need for 'our $VERSION = ...' and similar constructs. E.g.
541 package Foo::Bar 1.23;
542 # $Foo::Bar::VERSION == 1.23
544 There are several advantages to this:
546 * VERSION is parsed in *exactly* the same way as 'use NAME VERSION'
548 * $VERSION is set at compile time
550 * Eliminates '$VERSION = ...' and 'eval $VERSION' clutter
552 * As it requires VERSION to be a numeric literal or v-string
553 literal, it can be statically parsed by toolchain modules
554 without 'eval' the way MM->parse_version does for '$VERSION = ...'
556 * Alpha versions with underscores do not need to be quoted; static
557 parsing will preserve the underscore, but during compilation, Perl
558 will remove underscores as it does for all numeric literals
560 During development of this, there was discussion on #corehackers and
561 elsewhere that this should also allow other metadata to be set such as
562 "status" (stable/alpha) or "author/authority". On reflection, those
563 metadata are not very well defined yet and likely should never be
564 encoded into Perl core parsing so they can be freely changed in the
565 future. (They could perhaps be achieved via a comment on the same line
566 as 'package NAME VERSION'.)
568 Version numbers, however, already have a very specific definition and
569 use defined in the core through 'use NAME VERSION'. This patch merely
570 provides appropriate symmetry for setting $VERSION with the exact same
571 parsing and semantics as 'use'.
573 It does not break old code with only 'package NAME', but code that
574 uses 'package NAME VERSION' will need to be restricted to perl 5.11.X.
575 This is analogous to the change to open() from two-args to three-args.
576 Users requiring the latest Perl will benefit, and perhaps N years from
577 now it will become standard practice when Perl 5.12 is targeted the
578 way that 5.6 is today.
580 The patch does not prevent 'package NAME VERSION' from being used
581 multiple times for the same package with different version numbers, but
582 nothing prevents $VERSION from being modified arbitrarily at runtime,
583 either, so I see no urgen reason to add limitations or warnings so
584 long as Perl uses a global $VERSION variable for package version
587 I am posting this patch to the p5p list for discussion and review. If
588 there seems to be general assent (or lack of dissent), I will go ahead
589 and commit the patch to blead.
591 commit a67b1afafddaaed84e79a867acc888c9ccfb6460
592 Author: Max Maischein <corion@corion.net>
593 Date: Mon Oct 5 22:49:09 2009 +0200
595 New porting tests to automatically check POD in lib/, ext/ and pod/
597 commit 2d5f1d01166a325b29ccc86102d26e68def13786
598 Author: David Golden <dagolden@cpan.org>
599 Date: Mon Oct 5 17:46:36 2009 -0400
601 Explain using git send-email for patches
603 =item Update ExtUtils::ParseXS to 2.21
605 =item Upgrade File::Path to 2.08 (and add taint.t test)
607 commit b2680017d861a93d2d51b07bce2f1731086bc8c3
608 Author: Yves Orton <demerphq@gmail.com>
609 Date: Mon Oct 5 09:34:52 2009 +0200
611 in regexec.c move the BOUND logic out of the way of the special CC logic
613 This is a first step towards macroizing the special CC handler logic so
614 it is easier to maintain them, for instance interestng optimisations are
615 being used in one, but not all, even though the logic is sharable. By
616 moving the BOUND logic out of the way the code repition is much clearer.
618 commit e74a3e73f5e128a77b691fcfc83214f58419a493
619 Author: Jesse Vincent <jesse@bestpractical.com>
620 Date: Sun Oct 4 05:22:17 2009 +0900
622 Correcting mistaken description of 'delete local' in perl5110delta
624 Reported by nothingmuch++ and rjbs++
626 =TODO FOR RELENG GUIDE Make Module::Corelist recognise $] as a version number on 5.11.0
628 =item Bump version to 2.20
630 commit 6f6ac1dea8501596050bc974dc468632797d51eb
631 Author: Rafael Garcia-Suarez <rgs@consttype.org>
632 Date: Sat Oct 3 09:56:42 2009 +0200
634 Change warning "Unicode character is illegal" to more accurate description
636 That now reads "Unicode non-character is illegal in interchange" and the
637 perldiag documentation is expanded a bit.