So I was doing some micro benchmarks and I realized that adding NOINLINE to a
function somehow prevents worker/wrapper. Imagine this factorial function which
has a very obvious worker/wrapper opportunity:
fac :: Int -> Int
fac 0 = 1
fac n = n * fac (n - 1)
If I add NOINLINE to this,
Progress Update:
1. fixing CPP fixes the majority of the remaining test failures
2. cpphs builds and runs successfully on SmartOS
3. --with-hs-cpp-flags='-specs=overridecpp.spec" can be used in lieu of a
wrapper script
3. I am running some experiments with cpphs to see how it works
4. I will run