[Haskell-cafe] Re: Strict Core?

Stefan Monnier monnier at iro.umontreal.ca
Sun Oct 17 14:23:59 EDT 2010


> That said, I've been told that UHC's core language uses the ideas from
> Strict Core, and they have/had a student at Utretch (Tom Lokhorst) who
> was working on implementing optimisations like arity raising and deep
> unboxing for the language.

Many/most implementations of ML-ish languages use a similar approach.
E.g. SML/NJ's Flint internal language is fairly similar to Strict Core
(except for the lack of memoization of zero-arg functions, since that's
not very often useful in the context of a strict language like SML) and
uses the same kind of wrapper+inlinling to perform most of
its optimizations.

Note that in my experience working on SML/NJ's optimizer (using
wrapper+inlining), such an approach to code transformation doesn't care
about types at all, and indeed most/all of what tacc-hs09.pdf presents
is mostly unrelated to whether the language is typed: e.g. the
uncurrying of the zipWith higher-order argument is performed by the
inliner (when inlining the various wrappers) without paying any
attention to types.  So types do not enable the optimization of
higher-order functions: it's the wrapper+inlining strategy that
enables it.  Admittedly, the use of a statically typed intermediate
language makes it easier to catch bugs in such optimization phases.


        Stefan



More information about the Haskell-Cafe mailing list