This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Generate Errno and Pod::Functions with deterministic order.
authorNicholas Clark <nick@ccl4.org>
Fri, 12 Jul 2013 14:50:13 +0000 (16:50 +0200)
committerNicholas Clark <nick@ccl4.org>
Sat, 13 Jul 2013 09:28:49 +0000 (11:28 +0200)
Previously the order of duplicate names in Errno was determined by hash
iteration order, as was the order of the list of types for built-ins in
Pod::Functions. With hash randomisation this meant that the generated file
could differ between builds, which isn't ideal if the input is the same.

(Spotted as a side effect of running a diff on two installation trees.)

ext/Errno/Errno_pm.PL
ext/Pod-Functions/Functions_pm.PL

index b707911..b372875 100644 (file)
@@ -2,7 +2,7 @@ use ExtUtils::MakeMaker;
 use Config;
 use strict;
 
-our $VERSION = "1.18";
+our $VERSION = "1.19";
 
 my %err = ();
 my %wsa = ();
@@ -305,7 +305,7 @@ BEGIN {
     %err = (
 EDQ
 
-    my @err = sort { $err{$a} <=> $err{$b} }
+    my @err = sort { $err{$a} <=> $err{$b} || $a cmp $b }
        grep { $err{$_} =~ /-?\d+$/ } keys %err;
 
     foreach $err (@err) {
index 0d38aef..7cf0b51 100644 (file)
@@ -198,7 +198,7 @@ L<perlfunc/"Perl Functions by Category"> section.
 
 =cut
 
-our $VERSION = '1.06';
+our $VERSION = '1.07';
 
 require Exporter;
 
@@ -265,7 +265,7 @@ foreach my $func (sort_funcs(keys %Flavor)) {
     my $desc = $Flavor{$func};
     die "No types listed for $func" unless $Type{$func};
     next if $Omit{$func};
-    print $fh join("\t", $func, @{$Type{$func}}, $desc), "\n";
+    print $fh join("\t", $func, (sort @{$Type{$func}}), $desc), "\n";
 }
 
 close $fh or die "Can't close '$temp': $!";