X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=utils%2Fext-core%2FREADME;fp=utils%2Fext-core%2FREADME;h=9afd388175b1367cd1466f7963ee42c52aaaf08e;hp=0f6c16b93237cc4ea64937533a7c2b998df3f100;hb=420a27dc9fb7de5fc6c96fe078ddd4dc87222d44;hpb=d89d0f0a7d39a4390894b7b36c2b0ce24b1b300e diff --git a/utils/ext-core/README b/utils/ext-core/README index 0f6c16b..9afd388 100644 --- a/utils/ext-core/README +++ b/utils/ext-core/README @@ -3,13 +3,44 @@ A set of example programs for handling external core format. In particular, typechecker and interpreter give a precise semantics. To build, run "make". +--------------------- +tjc April 2008: + +==== Notes ==== + +The checker should work on most programs. Bugs I'm aware of: +1. GHC generates some questionable coercion applications involving + partially-applied function arrows (for details, see: + http://www.haskell.org/pipermail/cvs-ghc/2008-April/041949.html) + This shows up when typechecking a few of the library modules. + +2. There's some weirdness involving funny character literals. This can + be fixed by writing a new lexer for chars rather than using Parsec's + built-in charLiteral lexer. But I haven't done that. + +Typechecking all the GHC libraries eats about a gig of heap and takes a +long time. I blame Parsec. (Someone who was bored, or understood happy +better than I do, could update the old happy parser, which is still in the +repo.) + +The interpreter is not working yet. + +==== Building ==== + +To run the checker and interpreter, you need to generate External Core +for all the base, integer and ghc-prim libraries. This can be done by +adding "-fext-core" to the GhcLibHcOpts in your build.mk file, then +running "make" under libraries/. -To run the checker and interpreter (which currently aren't working anyway), -you need to generate External Core for all the base, integer and ghc-prim -libraries. This can be done by adding "-fext-core" to the GhcLibHcOpts in -your build.mk file, then running "make" under libraries/. Then you need to edit Driver.hs and change "baseDir" to point to your GHC libraries directory. -Most recently tested with GHC 6.8.2. I make no claims of portability. --tjc +Once you've done that: +1. make prims (to generate the primops file) +2. make +3. make nofibtest (to run the parser/checker on all nofib programs... + for example.) + +Tested with GHC 6.8.2. I make no claims of portability. +