[project @ 1999-07-27 11:02:14 by simonmar]
[ghc-hetmet.git] / ghc / driver / ghc.lprl
index 70f864a..9d25083 100644 (file)
@@ -279,10 +279,10 @@ these are turned off by -Wnot.
 \begin{code}
 @StandardWarnings = ('-fwarn-overlapping-patterns', 
                     '-fwarn-missing-methods',
-                    '-fwarn-unused-binds',
-                    '-fwarn-unused-matches',
                     '-fwarn-duplicate-exports');
 @MinusWOpts              = (@StandardWarnings, 
+                    '-fwarn-unused-binds',
+                    '-fwarn-unused-matches',
                     '-fwarn-incomplete-patterns', 
                     '-fwarn-unused-imports');
 @MinusWallOpts           = (@MinusWOpts, 
@@ -775,6 +775,11 @@ sub setupOptimiseFlags {
        '-fcse',        # CSE must immediately follow a simplification pass, because it relies
                        # on the no-shadowing invariant.  See comments at the top of CSE.lhs
                 
+       '-ffull-laziness',      # nofib/spectral/hartel/wang doubles in speed if you
+                               # do full laziness late in the day.  It only happens
+                               # after fusion and other stuff, so the early pass doesn't
+                               # catch it.  For the record, the redex is 
+                               #       f_el22 (f_el21 r_midblock)
        '-ffloat-inwards',
 
 # Case-liberation for -O2.  This should be after
@@ -1075,6 +1080,7 @@ sub setupLinkOpts {
           ,'-u', "${uscore}PrelPack_unpackCString_closure"
           ,'-u', "${uscore}PrelException_stackOverflow_closure"
           ,'-u', "${uscore}PrelException_heapOverflow_closure"
+          ,'-u', "${uscore}PrelException_NonTermination_static_closure"
        ));
   if (!$NoHaskellMain) {
    unshift (@Ld_flags,'-u', "${uscore}PrelMain_mainIO_closure");
@@ -1456,7 +1462,7 @@ Now the Haskell compiler, C compiler, and assembler
     }
 
     if (-f $hsc_out_c_stub) {
-       &run_something("cp $hsc_out_c_stub $ofile_c_stub_target", 'Copy foreign export C stubs');
+       &run_something("rm -f $ofile_c_stub_target && echo '#include \"${ofile_h_stub_target}\"' > $ofile_c_stub_target && cat $hsc_out_c_stub >> $ofile_c_stub_target", 'Copy foreign export C stubs');
        local ($hsc_out_s_stub);
        local ($hsc_out_o_stub);
        ($ofile_s_stub_target = $ofile_c_stub_target) =~ s/\.(.*)$/\.s/;
@@ -1725,7 +1731,7 @@ sub runHsc {
        # emit nofibbish time/bytes-alloc stats to stderr;
        # see later .stat file post-processing
        print STDERR "warning: both -Rgc-stats and -Rghc-timing used, -Rghc-timing wins." if $CollectingGCstats;
-       push(@HsC_rts_flags, "-s$Tmp_prefix.stat");
+       push(@HsC_rts_flags, "-S$Tmp_prefix.stat");
        push(@Files_to_tidy, "$Tmp_prefix.stat");
     }