[project @ 2001-10-03 13:58:13 by simonpj]
authorsimonpj <unknown>
Wed, 3 Oct 2001 13:58:13 +0000 (13:58 +0000)
committersimonpj <unknown>
Wed, 3 Oct 2001 13:58:13 +0000 (13:58 +0000)
commit4a1e12a1edfd959c133d922b1adc733c137610d7
tree9bcaa45f9cf59051d74e11994553f9d1695fcc4d
parentb4623557bb3c8bec7232e4e68a8be8cf28fbbda6
[project @ 2001-10-03 13:58:13 by simonpj]
----------------------------------------------
Output curried functions for data constructors
----------------------------------------------
(incomplete)

The idea here is to output code for the *curried* version of
the worker of a data constructor, so that the worker can be
treated as a first-class citizen elsewhere in the compiler.
In particular, it doesn't need to be a "hasNoBinding" thing,
which are the subject of a number of nasty hacks.

These changes only do the business for the code gen route
via AbstractC.  Remaining to do: the byte code generator.

Idea: move the byte-code gen to STG code, and inject the
curried data-constructor workers at the STG stage.

I hope the changes here won't make
anything stop working.  For now, constructor
workers remain "hasNoBinding" things.

CgConTbls, CodeGen, CoreTidy, CoreToStg
ghc/compiler/codeGen/CgConTbls.lhs
ghc/compiler/codeGen/CodeGen.lhs
ghc/compiler/coreSyn/CoreTidy.lhs
ghc/compiler/stgSyn/CoreToStg.lhs