changeset 672:ea992fc94130

...
author anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Wed, 19 Aug 2020 12:44:41 +0900
parents dbefe3a266ec
children f7c0509e3ab6
files src/parallel_execution/generate_context.pl src/parallel_execution/generate_stub.pl
diffstat 2 files changed, 11 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/parallel_execution/generate_context.pl	Wed Aug 19 09:20:43 2020 +0900
+++ b/src/parallel_execution/generate_context.pl	Wed Aug 19 12:44:41 2020 +0900
@@ -139,6 +139,7 @@
             $constructor{$implementation} = [$interface, $constructorArgs];
         }
     }
+    close $fd;
 
     open my $cx,"<","context.h" or die("can't open context.h $!");
     my $inUnionData = 0;
@@ -266,7 +267,10 @@
 }
 EOFEOF
 
+    #gears or xv6
+
     if ($project->{name} eq "gears") {
+
       $meta_call .= <<"EOFEOF";
 __code exit_code(struct Context* ${context_name}) {
     free(${context_name}->code);
@@ -276,6 +280,7 @@
 }
 EOFEOF
 
+      #xv6 case
     } else {
 
 $meta_call .= <<"EOFEOF";
--- a/src/parallel_execution/generate_stub.pl	Wed Aug 19 09:20:43 2020 +0900
+++ b/src/parallel_execution/generate_stub.pl	Wed Aug 19 12:44:41 2020 +0900
@@ -302,7 +302,7 @@
 
 sub generateStubArgs {
     my($codeGearName, $varName, $typeName, $ptrType, $typeField, $interface,$output) = @_;
-    my $varname1 = $output?"O_$varName":$varName;
+    my $varname1 = $output ? "O_$varName" : $varName;
     for my $n ( @{$dataGearVar{$codeGearName}} ) {
         # we already have it
         return 0 if ( $n eq $varname1);
@@ -779,21 +779,20 @@
   # return sub is create clojure
   return sub {
     my ($codeGearName, $filename) = @_;
-    my $cbc_files_ref = $cbc_name2_source_path->{$codeGearName} // [];
-    my @cbc_files = @$cbc_files_ref;
+    my $cbc_files = $cbc_name2_source_path->{$codeGearName} // [];
 
-    if (scalar(@cbc_files) == 0) { # Not Found
+    if (scalar(@{$cbc_files}) == 0) { # Not Found
       return 0; #false case
     }
 
-    if (scalar(@cbc_files) == 1) { # this case  $codeGearName.cbc is single (SingleLinkedQueue.cbc)
-      return shift @cbc_files;     # return "/Users/anatofuz/src/firefly/hg/Gears/Gears/src/parallel_execution/SingleLinkedQueue.cbc"
+    if (scalar(@{$cbc_files}) == 1) { # this case  $codeGearName.cbc is single (SingleLinkedQueue.cbc)
+      return $cbc_files->[0];     # return "/Users/anatofuz/src/firefly/hg/Gears/Gears/src/parallel_execution/SingleLinkedQueue.cbc"
     }
 
 
     my $cbc_dir_name = dirname $filename;
 
-    for my $cbc_file (@cbc_files) {
+    for my $cbc_file (@{$cbc_files}) {
       if ($cbc_file =~ /$cbc_dir_name/) {
         return $cbc_file;
       }