Changeset 4851 for script

Show
Ignore:
Timestamp:
06/19/05 18:16:50 (4 years ago)
Author:
autrijus
svk:copy_cache_prev:
6641
Message:

* no longer use dump.ast -- -C now prints directly to stdout.

Suggested by Juerd.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • script/pugscc

    r3102 r4851  
    88use File::Basename; 
    99use File::Glob 'bsd_glob'; 
     10use IPC::Open2; 
    1011 
    1112if (!@ARGV || grep /^--help$/, @ARGV) { 
     
    6364 
    6465unlink "dump.ast"; 
    65 system("pugs", "-C$backend" => @ARGV); 
    66 exit 1 unless -e "dump.ast"; 
     66 
     67my ($rh, $wh); 
     68my $pid = open2($rh, $wh, 'pugs', -C => $backend, @ARGV); 
     69my $program = do { local $/; <$rh> }; 
     70waitpid($pid, 0); 
     71 
     72exit 1 unless length $program; 
     73 
     74sub writeFile { 
     75    my ($file, $str) = @_; 
     76    open my $fh, '>', $file or die $!; 
     77    print $fh $str; 
     78    close $fh; 
     79} 
    6780 
    6881if ($backend eq 'Parrot') { 
    69     rename "dump.ast" => $out; 
     82    writeFile($out, $program); 
    7083    chmod 0755, $out; 
    7184} 
    7285else { 
    73     rename "dump.ast" => "$base/MainCC.hs"; 
     86    writeFile("$base/MainCC.hs", $program); 
    7487 
    7588    my $archlib = `pugs -V:archlib`;