Front page | perl.perl5.porters |
Postings from July 2013
Re: upcoming release of 5.18.1
Thread Previous
|
Thread Next
From:
David Golden
Date:
July 24, 2013 15:51
Subject:
Re: upcoming release of 5.18.1
Message ID:
CAOeq1c-LvtpE2WEnj_7N2eDvRiTXjUkgk8kR56jiUsjNeLb6uQ@mail.gmail.com
Looking at the selected bug fixes from 5.19.1 and 5.19.2, here are the
ones that seem like possible backport candidates per perlpolicy if
someone were to dig up the relevant commits for them:
[side note: organizing "selected bug fixes" in perldelta along these
lines in the future would make it easier to triage for backport
candidates]
Build related:
* The OP allocation code now returns correctly aligned memory in all
cases for "struct pmop". Previously it could return memory only
aligned to a 4-byte boundary, which is not correct for an ithreads
build with 64 bit IVs on some 32 bit platforms. Notably, this caused
the build to fail completely on sparc GNU/Linux. [RT #118055]
* "./Configure -de -Dusevendorprefix" didn't default [RT #64126]
Crash bugs:
* Fixed a small number of regexp constructions that could either fail to
match or crash perl when the string being matched against was
allocated above the 2GB line on 32-bit systems. [RT #118175]
* Through certain conundrums, it is possible to cause the current
package to be freed. Certain operators ("bless", "reset", "open",
"eval") could not cope and would crash. They have been made more
resilient. [RT #117941]
Regressions:
* The debugger's "man" command been fixed. It was broken in the v5.18.0
release. The "man" command is aliased to the names "doc" and "perldoc"
- all now work again.
* @_ is now correctly visible in the debugger, fixing a regression
introduced in v5.18.0's debugger. [RT #118169]
* Perl v5.16 inadvertently introduced a bug whereby calls to XSUBs that
were not visible at compile time were treated as lvalues and could be
assigned to, even when the subroutine was not an lvalue sub. This has
been fixed. [RT #117947]
* In Perl v5.18.0 dualvars that had an empty string for the string part
but a non-zero number for the number part starting being treated as
true. In previous versions they were treated as false, the string
representation taking precedeence. The old behaviour has been
restored. [RT #118159]
* Perl v5.18 inadvertently introduced a bug whereby interpolating mixed
up- and down-graded UTF-8 strings in a regex could result in malformed
UTF-8 in the pattern: specifically if a downgraded character in the
range "\x80..\xff" followed a UTF-8 string, e.g.
utf8::upgrade( my $u = "\x{e5}");
utf8::downgrade(my $d = "\x{e5}");
/$u$d/
[RT #118297]
* Certain uses of the "sort" operator are optimised to modify an array
in place, such as "@a = sort @a". During the sorting, the array is
made read-only. If a sort block should happen to die, then the array
remained read-only even outside the "sort". This has been fixed.
* Method calls on typeglobs (e.g., "*ARGV->getline") used to stringify
the typeglob and then look it up again. Combined with changes in Perl
5.18.0, this allowed "*foo->bar" to call methods on the "foo" package
(like "foo->bar"). In some cases it could cause the method to be
called on the wrong handle. Now a typeglob argument is treated as a
handle (just like "(\*foo)->bar"), or, if its IO slot is empty, an
error is raised.
* Since Perl v5.12, inlining of constants that override built-in
keywords of the same name had countermanded "use subs", causing
subsequent mentions of the constant to use the built-in keyword
instead. This has been fixed.
Fixes to new features:
* Lexical constants ("my sub a() { 42 }") no longer crash when inlined.
* Syntax errors in lexical subroutines in combination with calls to the
same subroutines no longer cause crashes at compile time.
* Parameter prototypes attached to lexical subroutines are now respected
when compiling sub calls without parentheses. Previously, the
prototypes were honoured only for calls with parentheses. [RT #116735]
* The dtrace sub-entry probe now works with lexical subs, instead of
crashing [perl #118305].
* Undefining an inlinable lexical subroutine ("my sub foo() { 42 } undef
&foo") would result in a crash if warnings were turned on.
Memory leaks:
* Various memory leaks involving the parsing of the "(?[...])" regular
expression construct have been fixed.
* "delete local $ENV{nonexistent_env_var}" no longer leaks memory.
--
David Golden <xdg@xdg.me>
Take back your inbox! → http://www.bunchmail.com/
Twitter/IRC: @xdg
Thread Previous
|
Thread Next