In perl.git, the branch smoke-me/unsux-HP has been created
<http://perl5.git.perl.org/perl.git/commitdiff/2653c1e3b10f71430de1ab8ab0417ca5b048ab19?hp=0000000000000000000000000000000000000000>
at 2653c1e3b10f71430de1ab8ab0417ca5b048ab19 (commit)
- Log -----------------------------------------------------------------
commit 2653c1e3b10f71430de1ab8ab0417ca5b048ab19
Author: David Mitchell <[email protected]>
Date: Wed Apr 11 13:37:09 2012 +0100
stop %^H pointing to being-freed hash; #112326
The leave_scope() action SAVEt_HINTS does the following to
GvHV(PL_hintgv): first it SvREFCNT_dec()'s it, then sets it to NULL.
If the current %^H contains a destructor, then that will be
executed while %^H still points to the hash being freed.
This can cause bad things to happen, like iterating over the hash being
freed.
Instead, setGvHV(PL_hintgv) to NULL first, *then* free the hash.
M scope.c
M t/comp/hints.t
commit 629e8f5e3a9b318b663e6fbb0025a6b0c03deffe
Author: Father Chrysostomos <[email protected]>
Date: Tue Apr 10 21:50:03 2012 -0700
Increase $attributes::VERSION to 0.19
M ext/attributes/attributes.pm
commit 46df87afe682864c981a397eb071789227e11d29
Author: Father Chrysostomos <[email protected]>
Date: Tue Apr 10 21:42:29 2012 -0700
Put bulk 88âs real name in AUTHORS
at his request
M AUTHORS
commit 62b571839b077ecb0d4bbf84a69a5652e0ea529b
Author: Father Chrysostomos <[email protected]>
Date: Tue Apr 10 21:41:33 2012 -0700
Revert "doco improvement for attributes.pm"
This reverts commit f29a7c30d92b9e3714cce5604d86fb97c1b099e8.
M ext/attributes/attributes.pm
commit 915a83fef170f61282d667f6efebfd1093e261ae
Author: Father Chrysostomos <[email protected]>
Date: Tue Apr 10 21:40:38 2012 -0700
[perl #112352] Make âuse v5.15â always enable unicode_eval
When the unicode_eval feature was added, the code for compiling an
eval was modified to check whether the feature was enabled, before
flagging the op.
For efficiencyâs sake, since there was already a block that checked to
see whether %^H was localised (which happens automatically when it is
modified), and since features always used %^H, I put the check inside
that block, so it would be skipped altogether without %^H set. (Itâs
debatable whether it was actually any faster.)
Later, in commit 6634bb9d0ed1, when I changed implicit features to use
$^H, I didnât update the eval code. So it would only check to see
whether the feature was enabled if %^H was also enabled.
This fixes that by moving it below the %^H block.
M op.c
M t/lib/feature/implicit
commit 52e67aba07fa1e33f37f56e48e0dd93a008ecede
Author: Father Chrysostomos <[email protected]>
Date: Tue Apr 10 14:52:29 2012 -0700
Add bulk 88 to AUTHORS
I would not have been able to do the previous commit without his help.
M AUTHORS
commit 253649d90a449f693eda6b1f50f33c291d5ae594
Author: Father Chrysostomos <[email protected]>
Date: Mon Apr 9 20:11:47 2012 -0700
[perl #109718] Clone PL_comppad properly
fork emulation on Windows, which clones a new thread via
perl_clone_using, expects to be able to access the current pad imme-
diately after the cloning, and crashes if there is no current pad.
PL_comppad was not being cloned explicitly, but simply looked up in
the pointer table, it being assumed that it had already been cloned.
For string evals, before commit 676a678, PL_compcv happened to point
to the evalâs CV. PL_compcv is cloned just before PL_comppad is set,
so that worked.
As of commit 676a678, PL_compcv does not point to the evalâs CV
at the evalâs run time, so the pad has not been cloned yet when
PL_comppad is set.
In the case of string evals, the CV does get cloned, but later on,
after PL_comppad is set, when the stacks are cloned.
Changing the setting of PL_comppad to do an actual cloning works, as,
when the evalâs CV is cloned later (during stack cloning), it will
simply pick up the pad that has already been cloned and is waiting for
it in the pointer table.
This stops eval 'fork' from crashing on Windows.
M pad.h
-----------------------------------------------------------------------
--
Perl5 Master Repository