=head1 Incompatible Changes
-XXX For a release on a stable branch, this section aspires to be:
-
- There are no changes intentionally incompatible with 5.11.3. If any
- exist, they are bugs and reports are welcome.
+=item Filehandles are blessed directly into C<IO::Handle::>, as L<FileHandle/> is merely a wrapper around L<IO::Handle/>.
=head1 Core Enhancements
=over 4
-=item C<XXX>
+=item C<warnings::fatal_enabled>
+
+ Add code and starting perldoc for warnings::fatal_enabled.
+
+ This is an analog for warnings::enabled, except it tests whether the
+ given category has been set fatal using "use warnings FATAL => foo".
+ This is mostly for symmetry.
+
+ Assumes that the fatal bit for a category will have an offset one higher
+ than the regular bit for the category, because otherwise much rewriting
+ of __chk would be required.
XXX
=over 4
-=item C<XXX>
+=item Don't make C<use legacy> die on unknown legacy names
+
+So we can use C<use legacy "qubits"> to avoid the new "qubit" behaviour,
+without worrying about perls that didn't have qubit support at all. :)
+
+NOTE: C<B<legacy>> will be removed before 5.12.0.
-XXX
=back
Update Archive::Extract to cpan version 0.36
XXX
+=item
+
+ File::Find was not resolving paths of the form "/..////../" correctly.
+ Fixed by adding a quantifier to the substitution parameter in
+ contract_name().
=back
Make distclean work again
XXX
+=head2 Testing improvements
+
+=over 4
+
+=item It's now possible to override C<PERL5OPT> and friends in F<t/TEST>
+
+=back
+
=head2 Platform Specific Changes
=over 4
=item Win32
+=over 4
+
+=item *
+
+Always add a manifest resource to C<perl.exe> to specify the <trustInfo>
+settings for Windows Vista and later. Without this setting Windows
+will treat C<perl.exe> as a legacy application and apply various
+heuristics like redirecting access to protected file system areas
+(like the "Program Files" folder) to the users "VirtualStore"
+instead of generating a proper "permission denied" error.
+
+For VC8 and VC9 this manifest setting is automatically generated by
+the compiler/linker (together with the binding information for their
+respective runtime libraries); for all other compilers we need to
+embed the manifest resource explicitly in the external resource file.
+
+This change also requests the Microsoft Common-Controls version 6.0
+(themed controls introduced in Windows XP) via the dependency list
+in the assembly manifest. For VC8 and VC9 this is specified using the
+C</manifestdependency> linker commandline option instead.
+
+=back
+
+=item cygwin
+
+=over 4
+
+=item Enable IPv6 support on cygwin 1.7 and newer
+
+=back
=item OpenVMS
+=over 4
+
+=item Make -UDEBUGGING the default on VMS for 5.12.0.
+
+Like it has been everywhere else for ages and ages. Also make
+command-line selection of -UDEBUGGING and -DDEBUGGING work in
+configure.com; before the only way to turn it off was by saying
+no in answer to the interactive question.
+
=back
=head1 Selected Bug Fixes
=item *
-XXX
+Ensure that pp_qr returns a new regexp SV each time. Resolves RT #69852.
+
+Instead of returning a(nother) reference to the (pre-compiled) regexp in the
+optree, use reg_temp_copy() to create a copy of it, and return a reference to
+that. This resolves issues about Regexp::DESTROY not being called in a timely
+fashion (the original bug tracked by RT #69852), as well as bugs related to
+blessing regexps, and of assigning to regexps, as described in correspondence
+added to the ticket.
+
+It transpires that we also need to undo the SvPVX() sharing when ithreads
+cloning a Regexp SV, because mother_re is set to NULL, instead of a cloned
+copy of the mother_re. This change might fix bugs with regexps and threads in
+certain other situations, but as yet neither tests nor bug reports have
+indicated any problems, so it might not actually be an edge case that it's
+possible to reach.
+
+=item *
+
+Several compilation errors and segfaults when perl was built with C<-Dmad> were fixed.
+
+=item *
+
+Fixes for lexer API changes in 5.11.2 which broke NYTProf's savesrc option.
=back
The included test has only been tested on Windows and Linux;
the device names for OS/2 and VMS are just best guesses...
-
-commit 2574563ed1cc89a9149d4a253b94199eab5bdf71
-Author: Tim Bunce <Tim.Bunce@pobox.com>
-Date: Tue Dec 15 23:04:11 2009 +0000
-
- Allow override of PERL5OPT etc in t/TEST
-
-commit 6a158b577769363e3a34f3dcb7321a0e933d3353
-Author: Rafael Garcia-Suarez <rgs@consttype.org>
-Date: Wed Dec 16 00:04:34 2009 +0100
-
- Don't make C<use legacy> die on unknown legacy names
-
- So we can use C<use legacy "qubits"> to avoid the new "qubit" behaviour,
- without worrying about perls that didn't have qubit support at all. :)
-
commit 0f907b96d618c97cd2e020841a70ae037954a616
[perl #70171] 5.10.0 -> 5.10.1 Regression in fafafbaf70 (Big slowdown in 5.10 @_ parameter passing)
- In this case my %x = %$x assigns a hash to itself. This causes the
- hv_clear in pp_aassign to wipe away the hash before it can be copied.
- The Ă¢\80\98panic: attempt to copy freed scalarĂ¢\80\99 error is triggered by this
- line, which copies the value:
- sv_setsv(tmpstr,*relem); /* value */
-
- The solution is to make sure the OPpASSIGN_COMMON flag is on in such
- cases, so that pp_aassign copies everything before doing the assignment.
-
commit 2ab54efd6265713df5cd4bd0927024245675c1c2
-Author: Michael Breen <perl@mbreen.com>
fix bug 67156: overload: nomethod(..., '!') return value inverted
[perl #71204] diagnostics.pm suppresses 'Use of uninitialized value in range (or flip)' warning
- (and bump version of diagnostics.pm)
-
-commit 2653dd3c22bd18d7877da53d515dc31c46d8fbea
-Author: Reini Urban <rurban@x-ray.at>
-Date: Mon Dec 14 13:04:37 2009 +0100
-
- cygwin IPv6 since 1.7
-
- Use g++ as default linker
- IPv6 support for 1.7
commit 69dc4b30f4725ad5f212d45d3c856ac1caaacf17
Author: Father Chrysostomos <sprout@cpan.org>
proper error on "grep $x (1,2,3)". Solves [perl #37314]
-commit 1cb985b013ea71b82afbc114ed06f94d451f5e04
-
- Throw away uncleanable scopes when exiting a pseudo-forked process.
-
- Commit adab9969 tried to clean up those additional scopes, but failed
- because some of the memory was allocated from a different pool. To
- avoid triggering the assert() in perl_destruct() this change instead
- moves the one remaining scope back to the root of the stack, effectively
- discarding the additional frames without any further processing.
-
commit 8a27a13e89107aaf68c0748b68ee71fbd86d774b
-Author: Father Chrysostomos <sprout@cpan.org>
-Date: Mon Dec 7 14:58:40 2009 +0100
[perl #71076] sort with active sub (5.10 regression)
[perl #70802] -i'*' refuses to work
-commit c2123ae380a372d506d1b6938667bd785fd8728b
-Author: Nicholas Clark <nick@ccl4.org>
-Date: Wed Dec 2 16:01:10 2009 +0000
-
- Ensure that pp_qr returns a new regexp SV each time. Resolves RT #69852.
-
- Instead of returning a(nother) reference to the (pre-compiled) regexp in the
- optree, use reg_temp_copy() to create a copy of it, and return a reference to
- that. This resolves issues about Regexp::DESTROY not being called in a timely
- fashion (the original bug tracked by RT #69852), as well as bugs related to
- blessing regexps, and of assigning to regexps, as described in correspondence
- added to the ticket.
-
- It transpires that we also need to undo the SvPVX() sharing when ithreads
- cloning a Regexp SV, because mother_re is set to NULL, instead of a cloned
- copy of the mother_re. This change might fix bugs with regexps and threads in
- certain other situations, but as yet neither tests nor bug reports have
- indicated any problems, so it might not actually be an edge case that it's
- possible to reach.
-
commit adab996997d7ef1b54d382f5ab4304f438cd1dd0
Cleanup all scopes before exiting a pseudo-forked process.
=item *
-Improvements to fix C++ compilation errors when -Dmad is defined
-
-Fixes for -Dmad: double free or corruption
commit 576b33a19ccaf98d4dfe201d529c55c3747f0cb6
Add error codes for getaddrinfo() and getnameinfo()
-commit 17cc9359ea8ee1b546aa067b91362160e3c1e1ee
-Author: Zefram <zefram@fysh.org>
-Date: Wed Nov 25 22:17:52 2009 +0000
-
- perl-5.11.2 breaks NYTProf savesrc option (Lexer API suspected)
-
- Tim Bunce wrote:
- >The primary issue is the off-by-one error in the array indexing.
-
- There's a bit more to it than that. The indexing was off-by-one for
- *some* places that process a new line, but correct for others, so the
- saved source as a whole was mangled rather than simply offset. Also,
- there were some redundant calls to update_debugger_info(), so some lines
- got saved twice, in some cases off-by-one for one saving and not for
- the other. The saved source is, therefore, hopelessly broken in 5.11.2.
-
- Attached patch fixes the source saving. Includes a new test, which works
- through all reachable places that source lines get saved. This should
- close RT #70804.
-
- -zefram
-
-commit ec983580254c32fd44889fde43973ac5dd74257b
-
- Add code and starting perldoc for warnings::fatal_enabled.
-
- This is an analog for warnings::enabled, except it tests whether the
- given category has been set fatal using "use warnings FATAL => foo".
- This is mostly for symmetry.
-
- Assumes that the fatal bit for a category will have an offset one higher
- than the regular bit for the category, because otherwise much rewriting
- of __chk would be required.
-
-commit 6b1226db4432ba7f08619ebe4c5365f692dcbbf7
-
- Add missing library to VC++ section of Win32 dmake makefile
-
-commit 5e8632492467a144fabe819ac1f4206ecde8d14d
-
- Avoid circularity in $(LINK_FLAGS) definition in Win32 dmake makefile
-
-commit dbb3120a48c1483138e02a3fadf359e5b664ae11
-
- Fix code-before-declaration error on Win32 with recent VC++ compilers
-
- (We only #define SET_INVALID_PARAMETER_HANDLER for VC2005 and later, so
- users of earlier compilers will not have seen this error)
-
commit 61fc5122f0d8a509834282b8ecb3252d2e4c9f5d
Make unicode semantics the default
Author: Craig A. Berry <craigberry@mac.com>
Date: Sat Nov 21 11:17:38 2009 -0600
- Make -UDEBUGGING the default on VMS for 5.12.0.
-
- Like it has been everywhere else for ages and ages. Also make
- command-line selection of -UDEBUGGING and -DDEBUGGING work in
- configure.com; before the only way to turn it off was by saying
- no in answer to the interactive question.
-
-commit 4ebea3c679ca93eb90d62be76bf8eb3cd7d14160
-Author: Jan Dubois <jand@activestate.com>
-Date: Thu Apr 30 16:53:20 2009 -0700
-
- Always add a manifest resource to perl.exe to specify the <trustInfo>
- settings for Windows Vista and later. Without this setting Windows
- will treat perl.exe as a legacy application and apply various
- heuristics like redirecting access to protected file system areas
- (like the "Program Files" folder) to the users "VirtualStore"
- instead of generating a proper "permission denied" error.
-
- For VC8 and VC9 this manifest setting is automatically generated by
- the compiler/linker (together with the binding information for their
- respective runtime libraries); for all other compilers we need to
- embed the manifest resource explicitly in the external resource file.
-
- This change also requests the Microsoft Common-Controls version 6.0
- (themed controls introduced in Windows XP) via the dependency list
- in the assembly manifest. For VC8 and VC9 this is specified using the
- /manifestdependency linker commandline option instead.
-
-commit 51393fc07355ffd0a4b6b212fd676ee37de23e09
-
- File::Find was not resolving paths of the form "/..////../" correctly.
- Fixed by adding a quantifier to the substitution parameter in
- contract_name().
-
-commit 31c9a3ace4f559b79a21319b8903e92f53b44868
-Author: Nicholas Clark <nick@ccl4.org>
-Date: Fri Nov 20 10:23:54 2009 +0000
-
- Always bless filehandles into IO::Handle:: - don't try for FileHandle:: first.