
Simon Marlow wrote:
We've already made the switch to eval/apply for the next release of GHC. However, deferring the entirety of stack management to an underlying compiler is not that easy: we do accurate garbage collection, so we need to retain enough information about the compiler's idea of stack layout in order to be able to find all the pointers during GC. We therefore can't compile via C using an ordinary C compiler and leave the stack management up to the C compiler.
Is there anything published/unofficially available about it? I have pure academic interest in all that. I must say that rarely had I the occasion to learn something more crunchy about the implementation of Haskell and FP than from the description of concrete solutions, such as STG (and the implementation of Clean, and Appel's paper on the imple- mentation of ML). Now, my white/bald hair tell me that the eval/apply model is something quite oriented towards strict evaluation paradigms, and I would enjoy very much a thorough discussion of the implementation of laziness. Jerzy Karczmarczuk