The semantics of Core?

Simon Peyton-Jones simonpj@microsoft.com
Wed, 19 Feb 2003 11:25:11 -0000


I seriously doubt that you want to produce all the .hcr files for the =
entire set of GHC's libraries.  They'll be pretty big.

But if you do, just get a GHC build tree, make your GHC, get into the =
libraries tree
(fptools/libraries) and type=20
	make EXTRA_HC_OPTS=3D-fext-core

That'll build the libraries and dump an .hcr file for each module

Simon

| -----Original Message-----
| From: Martin Sj=F6gren [mailto:md9ms@mdstud.chalmers.se]
| Sent: 18 February 2003 09:55
| To: glasgow-haskell-users@haskell.org
| Subject: RE: The semantics of Core?
|=20
| tis 2003-02-18 klockan 09.49 skrev Simon Peyton-Jones:
| > I don't know of any separate description of the semantics of Core, =
but it's just the
| lambda calculus with let, letrec and case.  There's plenty of code =
that works over Core
| in GHC itself, but no separate libraries.  There is a library to parse =
the stuff that ghc -
| fext-core spits out, though.
|=20
| I was more interested in the strictness properties. The way I =
understood
| it, Core case is strict?
|=20
| I looked at utils/ext-core and now I'm stuck at producing all the .hcr
| files needed. I just can't think of a good way of getting .hcr files
| from all modules that Prelude imports. I've tried tricks with =
-fno-code
| and tricks with --make -no-hs-main but to no avail so far. With
|=20
| ghc --make -fglasgow-exts -fext-core -no-hs-main Prelude.hs
|=20
| I get
|=20
| GHC/Base.lhs:84: parse error on input `#'
|=20
| If I pass -cpp too, I get
|=20
| GHC/Base.lhs:96:
|     failed to load interface for `GHC.Err':
|         Bad interface file: GHC/Err.hi-boot
|             does not exist
| Action: openFile
| Reason: No such file or directory
| File: GHC/Err.hi-boot
|=20
| I'm confused. All manner of help appreciated. :)
|=20
|=20
| /Martin