Branch: refs/heads/blead
Home: https://github.com/Perl/perl5
Commit: 7897d65681bfc9a40f649bbb52b0956611970b97
https://github.com/Perl/perl5/commit/7897d65681bfc9a40f649bbb52b0956611970b97
Author: Yves Orton <[email protected]>
Date: 2022-03-10 (Thu, 10 Mar 2022)
Changed paths:
M INSTALL
Log Message:
-----------
INSTALL - fix broken pod in PERL_PERTURB_KEYS docs
Commit: 3314e65f9bafcb81cac0884c4bf8f1b70213fe30
https://github.com/Perl/perl5/commit/3314e65f9bafcb81cac0884c4bf8f1b70213fe30
Author: Yves Orton <[email protected]>
Date: 2022-03-10 (Thu, 10 Mar 2022)
Changed paths:
M t/test.pl
Log Message:
-----------
test.pl - allow more than 676 tempfiles() in one process
This reworks testfile() to allow more than 26**2 (676) calls to
tempfile() in the course of a single test process.
In order to keep the filenames short (which I believe is an objective of
this code) I switched the presentation of the pid to using base 26 as
well. Also added comments and a nicer error message if you reach the new
max of 26**3 (17576)
Commit: b9f2b8209d51bb42ac00b6ccfbb057fff883c3fc
https://github.com/Perl/perl5/commit/b9f2b8209d51bb42ac00b6ccfbb057fff883c3fc
Author: Yves Orton <[email protected]>
Date: 2022-03-10 (Thu, 10 Mar 2022)
Changed paths:
M t/test.pl
Log Message:
-----------
test.pl - add unlink_tempfiles()
Commit: a37ef82cb4c593152815a7ddce35056a9243a30e
https://github.com/Perl/perl5/commit/a37ef82cb4c593152815a7ddce35056a9243a30e
Author: Yves Orton <[email protected]>
Date: 2022-03-10 (Thu, 10 Mar 2022)
Changed paths:
M t/run/runenv.t
M t/test.pl
Log Message:
-----------
test.pl - move runperl_and_capture() out of runenv.t
We will reuse this, and so might others, so might as well add it to
test.pl
Commit: ed56936b9aac3c2dfc7beef2c9fc8b6d65ae074e
https://github.com/Perl/perl5/commit/ed56936b9aac3c2dfc7beef2c9fc8b6d65ae074e
Author: Yves Orton <[email protected]>
Date: 2022-03-10 (Thu, 10 Mar 2022)
Changed paths:
M t/test.pl
Log Message:
-----------
test.pl - rework runperl_and_capture() to be a bit easier to use
Parts of runperl_and_capture() were a bit odd, also it lacked
debugging features that are helpful, so rework it a bit and add the
debugging options.
Commit: 8a35994ac8fcc50aaed538b7625ba79635683630
https://github.com/Perl/perl5/commit/8a35994ac8fcc50aaed538b7625ba79635683630
Author: Yves Orton <[email protected]>
Date: 2022-03-10 (Thu, 10 Mar 2022)
Changed paths:
M hv_func.h
M sbox32_hash.h
Log Message:
-----------
hv_func.h - switch sbox32 initializer to use the 128 bit seeding logic
The 96 bit seed initializer was not mixing the seed bits very well and a
a 1 bit change to the seed used for the sbox initialization was not
propagating throughout the full SBOX buffer. The 128 bit variant is more
robust, and this patch makes it even more so by churning it longer, and
mixing in the seed twice.
This change also removes the old 96 bit variant and code that uses it
as I don't think it should be used anymore at all.
Commit: c3c9d6b15f57fdce79988a553671a1ceb54c0f10
https://github.com/Perl/perl5/commit/c3c9d6b15f57fdce79988a553671a1ceb54c0f10
Author: Yves Orton <[email protected]>
Date: 2022-03-10 (Thu, 10 Mar 2022)
Changed paths:
M MANIFEST
M embed.fnc
M embed.h
M hv.c
M perl.c
M perl.h
M pod/perlrun.pod
M proto.h
A t/run/runenv_hashseed.t
M t/test.pl
M util.c
Log Message:
-----------
hv.c - rework PL_hash_rand_bits update logic, add tests, -Dh debug mode
This moves all run time mutations of PL_hash_rand_bits into a set of
macros which allow us to debug what is happening. It also moves away
from our poor mans RNG based on mixing in various sources of data as
we go and switches to using an XORSHIFT RNG for generating the random
bits. This particular RNG is very efficient, using three xor operations
and three shift operations, so it shouldn't hurt us to use it. As a
bonus it also removes the conditional logic involved, as we use seed()
to initialize things at the very beginning when we are running under
RANDOMIZE mode, which should fix any problems with running on platforms
that do not use process space randomization like cygwin.
It adds support for -Dh under DEBUGGING to allow introspection of the
the state of PL_hash_rand_bits and source and cause of changes to it.
With -Dhv you can also get an idea of the keys which are triggering
these mutations as well. -Dh has also been changed to imply
PERL_HASH_SEED_DEBUG as a convenience.
This goes alongside a new test, based on one from Nicholas R (atoomic)
to test that the various PERL_PERTURB_KEYS options behave as expected
and that 1 bit mutations of the seed actually *do* affect the key order
and hashing of our strings. The test is run many times to ensure that
it passes under many different randomly generated hash seeds. Parts of
this test would fail without the preceding commit to this one adjusting
how SBOX32 is initialized.
Compare: https://github.com/Perl/perl5/compare/2cfe7629cc28...c3c9d6b15f57