\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,
'-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
,'-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");