autoconf is non-deterministic on Perl 5.18 and later

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

autoconf is non-deterministic on Perl 5.18 and later

In Perl 5.18 I changed Perl to use a randomly chosen hash seed each
invocation (I am p5p committer). This means that any code that depends
on the native key order of a hash is non-deterministic.

autoconf includes various places where this is the case, which makes
it annoying to see what *actually* changed from run to run.

The attached patch ensures that all use of keys() in list context is
sorted, including indirectly places like Data::Dumper.

I took the approach that autoconf is not performance sensitive and
that sorting things that strictly speaking do not need to be sorted is
not an issue, especially if it reduces cognitive load in trying  to
tell if such use *could* be an issue.

This patch is not well tested, however I believe it should be safe. It
passes make check.


perl -Mre=debug -e "/just|another|perl|hacker/"

autoconf.patch (9K) Download Attachment