summaryrefslogtreecommitdiff
path: root/lib/sbin/CreateFunctionBindings.pl
diff options
context:
space:
mode:
authorschnetter <schnetter@17b73243-c579-4c4c-a9d2-2d5706c11dac>2003-10-07 14:50:37 +0000
committerschnetter <schnetter@17b73243-c579-4c4c-a9d2-2d5706c11dac>2003-10-07 14:50:37 +0000
commitf9fd939abbc7e148722bbf27d74d65b6ae7be603 (patch)
tree6df3346a89a1d7872f81e96b1f510999fc4482c6 /lib/sbin/CreateFunctionBindings.pl
parent8f7c1066b45074fa2c566081f5d0a0a2f5ffd2a8 (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.pl64
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";
# }