diff options
author | schnetter <schnetter@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2003-10-07 14:50:37 +0000 |
---|---|---|
committer | schnetter <schnetter@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2003-10-07 14:50:37 +0000 |
commit | f9fd939abbc7e148722bbf27d74d65b6ae7be603 (patch) | |
tree | 6df3346a89a1d7872f81e96b1f510999fc4482c6 /lib/sbin/CreateFunctionBindings.pl | |
parent | 8f7c1066b45074fa2c566081f5d0a0a2f5ffd2a8 (diff) |
Traverse all hashes alphabetically, so that all output files of the
CST stage will be identical. This is necessary at least since perl
5.8.1 to avoid redundant recompilation.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@3425 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'lib/sbin/CreateFunctionBindings.pl')
-rw-r--r-- | lib/sbin/CreateFunctionBindings.pl | 64 |
1 files changed, 32 insertions, 32 deletions
diff --git a/lib/sbin/CreateFunctionBindings.pl b/lib/sbin/CreateFunctionBindings.pl index 28c4ba77..4f2966dd 100644 --- a/lib/sbin/CreateFunctionBindings.pl +++ b/lib/sbin/CreateFunctionBindings.pl @@ -238,7 +238,7 @@ sub CreateFunctionBindings my $thorn; - foreach $thorn (keys %{$function_db}) + foreach $thorn (sort keys %{$function_db}) { $debug and print "thorn is $thorn\n"; @@ -779,7 +779,7 @@ sub RegisterAllFunctions my $thorn; - foreach $thorn (keys %FunctionDatabase) + foreach $thorn (sort keys %FunctionDatabase) { my $Function; my $AddThisThorn = 0; @@ -807,7 +807,7 @@ sub RegisterAllFunctions push(@data," retval = 0;"); push(@data,""); - foreach $thorn (keys %FunctionDatabase) + foreach $thorn (sort keys %FunctionDatabase) { my $AddThisThorn = 0; my $Function; @@ -898,12 +898,13 @@ sub AliasedFunctions my %AliasedFunctionList = {}; - foreach $thornFunctionList (values %FunctionDatabase) + foreach my $thornFunctionKey (sort keys %FunctionDatabase) { + $thornFunctionList = $FunctionDatabase{$thornFunctionKey}; if ($thornFunctionList) { my $FunctionKey; - foreach $FunctionKey (keys %{$thornFunctionList}) + foreach $FunctionKey (sort keys %{$thornFunctionList}) { my $Function = $thornFunctionList->{$FunctionKey}; if ($Function) @@ -917,9 +918,10 @@ sub AliasedFunctions } } - my $Function; - foreach $Function (values %AliasedFunctionList) + my $FunctionKey; + foreach $FunctionKey (sort keys %AliasedFunctionList) { + my $Function = $AliasedFunctionList{$FunctionKey}; if ($Function) { $debug and print "provided Function is ",$Function->{"Name"},"\n"; @@ -1493,6 +1495,7 @@ sub IsFunctionAliased push(@data, ''); # Insert function protypes: + my %names; foreach $thornFunctionList (values %FunctionDatabase) { foreach $Function (values %{$thornFunctionList}) @@ -1501,12 +1504,15 @@ sub IsFunctionAliased { if ($Function->{"Used"}) { - my $name = $Function->{"Name"}; - push(@data, "CCTK_INT IsAliased$name(void);"); + $names{$Function->{"Name"}} = undef; } } } } + foreach my $name (sort keys %names) + { + push(@data, "CCTK_INT IsAliased$name(void);"); + } push(@data,"CCTK_INT CCTK_IsFunctionAliased(const char *function);"); push(@data,""); @@ -1517,24 +1523,14 @@ sub IsFunctionAliased push(@data," (void) (function + 0);"); push(@data,""); - foreach $thornFunctionList (values %FunctionDatabase) + foreach my $name (sort keys %names) { my $else = ""; - foreach $Function (values %{$thornFunctionList}) - { - if ($Function) - { - if ($Function->{"Used"}) - { - my $name = $Function->{"Name"}; - push(@data, " ${else}if (! strcmp(function, \"$name\"))"); - push(@data, " {"); - push(@data, " retval = IsAliased".$name."();"); - push(@data, " }"); - $else = "else "; - } - } - } + push(@data, " ${else}if (! strcmp(function, \"$name\"))"); + push(@data, " {"); + push(@data, " retval = IsAliased".$name."();"); + push(@data, " }"); + $else = "else "; } push(@data," return retval;"); @@ -1581,7 +1577,7 @@ sub ThornMasterIncludes # Header Data push(@data, '/*@@'); - push(@data, ' @header cctk_FunctionAliases.h'); + push(@data, ' @header cctk_Functions.h'); push(@data, ' @author Automatically generated by CreateFunctionBindings.pl'); push(@data, ' @desc'); push(@data, ' Prototypes for overloaded functions used by all thorns'); @@ -1672,8 +1668,9 @@ sub UsesPrototypes my $Function; $debug and print "UsesPrototypes: thorn is $thorn\n"; - foreach $Function (values %FunctionList) + foreach my $FunctionKey (sort keys %FunctionList) { + $Function = $FunctionList{$FunctionKey}; $debug and print " Function is ", $Function->{"Name"},"\n"; if ($Function) { @@ -1754,8 +1751,9 @@ sub ProvidedFunctions push(@data,""); - foreach $Function (values %FunctionList) + foreach my $FunctionKey (sort keys %FunctionList) { + $Function = $FunctionList{$FunctionKey}; if ($Function) { if ($Function->{"Provided"}) @@ -1866,8 +1864,9 @@ sub ProvidedFunctions push(@data,"CCTK_INT Register_$thorn(void);"); # Provide prototypes for Alias<Function Name>_[CF] functions: - foreach $Function (values %FunctionList) + foreach my $FunctionKey (sort keys %FunctionList) { + $Function = $FunctionList{$FunctionKey}; if ($Function && $Function->{"Provided"}) { push(@data,&printRegisterAliasedPrototypes("C",$Function)); @@ -1883,8 +1882,9 @@ sub ProvidedFunctions push(@data," ierr = 0;"); push(@data,""); - foreach $Function (values %FunctionList) + foreach my $FunctionKey (sort keys %FunctionList) { + $Function = $FunctionList{$FunctionKey}; if ($Function) { if ($Function->{"Provided"}) @@ -2083,7 +2083,7 @@ sub printCallingSequence if ($Arg->{"Function pointer"}) { # my $key; -# foreach $key (keys %{$Arg->{"Name"}}) +# foreach $key (sort keys %{$Arg->{"Name"}}) # { # print $key." ".$Arg->{"Name"}{$key}."\n"; # } @@ -2298,7 +2298,7 @@ sub printArg { # It's a FPOINTER # my $key; -# foreach $key (keys %{$Arg{"Name"}}) +# foreach $key (sort keys %{$Arg{"Name"}}) # { # print $key." ".$Arg{"Name"}{$key}."\n"; # } |