In perl.git, the branch sprout/nonelem has been created

<https://perl5.git.perl.org/perl.git/commitdiff/480bf6d3f34da50d2e908a36e7ba574a2857b20e?hp=0000000000000000000000000000000000000000>

        at  480bf6d3f34da50d2e908a36e7ba574a2857b20e (commit)

- Log -----------------------------------------------------------------
commit 480bf6d3f34da50d2e908a36e7ba574a2857b20e
Author: Father Chrysostomos <spr...@cpan.org>
Date:   Sun Jan 21 21:55:00 2018 -0800

    ‘Nonelems’ for pushing sparse array on the stack
    
    To avoid having to create deferred elements every time a sparse array
    is pushed on to the stack, store a magic scalar in the array itself,
    which av_exists and refto recognise as not existing.
    
    This means there is only a one-time cost for putting such arrays on
    the stack.
    
    It also means that deferred elements that live long enough don’t
    start pointing to the wrong array entry if the array gets shifted (or
    unshifted/spliced) in the mean time.  Instead, the scalar is already
    in the array, so it cannot lose its place.  This fix only applies
    when the array as a whole is pushed on to the stack, but it could be
    extended in future commits to apply to other places where we currently
    use deferred elements.

-----------------------------------------------------------------------

-- 
Perl5 Master Repository

Reply via email to