In perl.git, the branch smoke-me/yves-hv_h_split has been created

<http://perl5.git.perl.org/perl.git/commitdiff/e2183dd1583911a709201025e7d0020fde8b1862?hp=0000000000000000000000000000000000000000>

        at  e2183dd1583911a709201025e7d0020fde8b1862 (commit)

- Log -----------------------------------------------------------------
commit e2183dd1583911a709201025e7d0020fde8b1862
Author: Yves Orton <[email protected]>
Date:   Tue Feb 19 13:25:53 2013 +0100

    semi-Randomize hash insertion order

M       hv.c

commit b33589ebd581733d90cb08d27eab2cf13f44a0d9
Author: Yves Orton <[email protected]>
Date:   Tue Feb 19 12:14:44 2013 +0100

    Ensure that Module::Pluggable returns plugins in a predictable order
    
    As of 5.18 hash traversal order will vary per-hash, and indeed more
    frequently. The likelihood this results in one of the tests in M::P
    failing becomes very high.
    
    In general the test expectations were fragile, but probably almost
    never failed. With hash traversal randomization they will fail
    regularly.
    
    Note the use a temporary array in part of this patch is because
    sort in scalar context is undefined.

M       cpan/Module-Pluggable/lib/Module/Pluggable.pm
M       cpan/Module-Pluggable/lib/Module/Pluggable/Object.pm
M       cpan/Module-Pluggable/t/19can_ok_clobber.t

commit b23fbb6034fcc892c44527b955be9c682131de88
Author: Yves Orton <[email protected]>
Date:   Tue Feb 19 12:12:34 2013 +0100

    Fix code which modifies a hash while each()ing over it
    
    It has never been correct to modify a hash during traversal by each().
    
    In older perls this was unlikely to break the tests. In newer perls
    it is relatively likely, and in 5.18 it will be almost certain.
    
    This includes a version bump. Needs to be merged upstream.

M       cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
M       cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
M       cpan/ExtUtils-MakeMaker/t/basic.t

commit 728e03041b31deae2692138beb96fd7ca6f6519f
Author: Yves Orton <[email protected]>
Date:   Mon Feb 18 16:13:08 2013 +0100

    reset HvRAND() every hsplit, and properly rotate the bucket_rand. :-)

M       hv.c

commit 66c5e7c96ab95ab7fba6b5eeb1f7175bd8138b05
Author: Yves Orton <[email protected]>
Date:   Mon Feb 18 10:18:48 2013 +0100

    randomize bucket split insertion in hsplit()

M       hv.c

commit a4c171affab792d1ea2c4b05cc4a305c42a43f17
Author: Yves Orton <[email protected]>
Date:   Mon Feb 18 09:36:35 2013 +0100

    turn the ptr_hash inline code into a true sub
    
    Borrowed from autobox, which is released under the same terms as Perl.

M       embed.fnc
M       embed.h
M       hv.c
M       proto.h

commit c2669ab8fb2498011780806aa2073f809a3d61ab
Author: Yves Orton <[email protected]>
Date:   Mon Feb 18 08:11:18 2013 +0100

    Enable hash traversal order randomization
    
    This patch causes Perl to use a random order per hash when traversing 
hashes via keys(), values() and each().
    
    The random order is determined by add a new property xhv_rand to struct 
xpvhv. This property
    is calculated on per traverse of the hash by using a pointer/integer hash 
function on the
    address of the bucket array, and then XORing it with the bucket index 
counter during traverse.
    This causes each hash to have a different order for traversing the buckets.
    
    The purpose of this change is to make hash seed discovery attacks harder. 
An attacker loses
    a lot of information when the keys are "randomized".

M       hv.c
M       hv.h
M       t/op/smartkve.t

commit 9e7b62a91521411e68934310e57f7737119c45ef
Author: Yves Orton <[email protected]>
Date:   Mon Feb 18 07:56:25 2013 +0100

    Fix test fails due to hash traversal randomization
    
    One cannot assume two hashes with the same keys will have the
    the same key order. And after hash traversal randomization one
    can assume they WONT.

M       cpan/Pod-Simple/t/closeys.t

commit 3de8f6566a419504551f35063c2bfeb560ac019b
Author: Yves Orton <[email protected]>
Date:   Mon Feb 18 06:37:29 2013 +0100

    Fix tests that fail due to hash traversal randomization
    
    One cannot assume two hashes with the same keys will have the
    the same key order. And after hash traversal randomization one
    can assume they WONT.

M       cpan/JSON-PP/t/019_incr.t

commit d6998a16edfcd657911312b7a2b5ec7ca27cab42
Author: Yves Orton <[email protected]>
Date:   Sun Feb 17 16:39:23 2013 +0100

    Fix failing porting tests by bumping version number and tweaking pod

M       ext/Hash-Util/lib/Hash/Util.pm

commit f06d65f6bfe67affa8060b7efaecb108f57ceed8
Author: Yves Orton <[email protected]>
Date:   Tue Feb 12 05:06:48 2013 +0100

    default to PERL_FUNC_ONE_AT_A_TIME_HARD for all builds
    
    For testing, but maybe for ever

M       hv_func.h

commit dde6507f6c663a80982cda4191aad37b94f9f34c
Author: Yves Orton <[email protected]>
Date:   Mon Feb 11 19:33:00 2013 +0100

    Remove XXHash (for now)
    
    For some reason I could never get it working anyway, due to strange
    segfaults that I did not have the time to track down.

M       hv_func.h

commit fdd341f739b6a3d1cdf0a0c31022ee929ece8982
Author: Yves Orton <[email protected]>
Date:   Mon Jan 21 17:11:31 2013 +0100

    random tweaks

M       hv_func.h

commit c2f11f23a02254081892f6faf5d06c427e6bd733
Author: Yves Orton <[email protected]>
Date:   Wed Dec 12 00:13:53 2012 +0100

    fixup wording

M       ext/Hash-Util/lib/Hash/Util.pm

commit 79d83e2632143c5c2e79ee5eb0bb600d66721b47
Author: Yves Orton <[email protected]>
Date:   Tue Dec 11 23:46:37 2012 +0100

    add a "hash quality score" to Hash::Util::bucket_stats()

M       ext/Hash-Util/lib/Hash/Util.pm

commit 249ee3a00dcef203712cfec5a4e1ea8ddf672068
Author: Yves Orton <[email protected]>
Date:   Tue Dec 11 08:50:58 2012 +0100

    Attempt to eliminate a signed mistmatch in comparison warning
    
    as far as I can tell 'i' can only be positive here.

M       hv_func.h

commit d8012ff49000b391b64b3862ce174177a126e345
Author: Yves Orton <[email protected]>
Date:   Mon Dec 10 09:43:59 2012 +0100

    include missing headers so XS modules rebuild when they change

M       cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
M       cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm

commit c0d8f8055aa52e9f6479de38224142d5590f23ec
Author: Yves Orton <[email protected]>
Date:   Mon Dec 10 08:36:43 2012 +0100

    add a hardened one-at-a-time hash variant
    
    Mix in additional randomness into the final value.

M       hv_func.h

commit 7670e2c61be23e7e1d77d77c45115686919c61cc
Author: Yves Orton <[email protected]>
Date:   Mon Dec 10 00:40:43 2012 +0100

    add xxhash

M       hv_func.h

commit e5f2e94c1f8f32213a70eec1f7a8505d964b6384
Author: Yves Orton <[email protected]>
Date:   Sun Dec 9 17:01:46 2012 +0100

    Split out hash functions into new file and turn into inline static functions
    
    This includes various tweaks related to building SipHash.

M       Cross/Makefile-cross-SH
M       MANIFEST
M       Makefile.SH
M       Makefile.micro
M       NetWare/Makefile
M       configpm
M       hv.h
A       hv_func.h
M       win32/Makefile
M       win32/Makefile.ce

commit 6683561a15179efdef2cc846cee4ef0a2c4b0e01
Author: Yves Orton <[email protected]>
Date:   Sat Dec 8 16:26:01 2012 +0100

    remove toy code

M       hv.h

commit 74a3a5584e5154343168ce4f4dda5cc6837bd491
Author: Yves Orton <[email protected]>
Date:   Sat Dec 8 16:24:06 2012 +0100

    remove unused define

M       hv.h
-----------------------------------------------------------------------

--
Perl5 Master Repository

Reply via email to