bulat.ziganshin:
Hello Duncan,
Friday, May 23, 2008, 11:55:57 PM, you wrote:
me too. btw, this already present in jhc. inlining doesn't work in any complex case since recursive functions can't be inlined
GHC inlines recursive functions, too, otherwise it could not turn 'foldl' and friends into plain machine loops.
As I understand it, if foldl was written in the standard directly way then ghc would not inline it
well, i'm not a True GHC Hacker ;) but i was bitten by this problem in 6.4. i had a lot of SPECIALIZE pragmas in Streams library exactly because INLINE doesn't help. actually, it even does things worser by disabling some other form of optimization, i don't remember which one
It would be good to try this with 6.8 -- there have been some huge improvements to the strictness analyser and inliner in the last 2 years. Could you dig up some examples? -- Don