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

Reply via email to