[Haskell-cafe] Problems with strictness analysis?
Matthew Brecknell
haskell at brecknell.org
Mon Nov 3 18:35:34 EST 2008
Don Stewart:
> "Optimisations" enable strictness analysis.
Luke Palmer:
> I was actually being an annoying purist. "f is strict" means "f _|_ =
> _|_", so strictness is a semantic idea, not an operational one.
> Optimizations can change operation, but must preserve semantics.
Henning Thielemann:
> Maybe I missed the point, but the optimization seems correct to me.
> [...]
I guess the obvious clarification to make here is that strictness
analysis doesn't make non-strict functions strict. It is about
determining which functions are already strict. The *optimisation* is to
transform call-by-need into call-by-value (or something like that). But
that's an *operational* matter, as Luke points out. To preserve
*semantics*, that transformation can only be allowed for functions which
are already strict. Hence the need for strictness analysis as part of
optimisation.
So everybody is right. :-)
More information about the Haskell-Cafe
mailing list