
Hi We've fixed most things, of note: * Yhc now compiles PosLambda (nhc's internal thingy) to Core, which is then compiled to ByteCode. This means that Core can now be compiled to ByteCode. We should have an optimising Haskell compiler shortly - the optimiser was written over a year ago, now we can switch it on. * We use Data.Derive instead of DrIFT for the binary instances. * CoreInt i is now CoreLit (CoreInt i). Ditto for CoreStr/CoreChr and all other literals. * CoreCase has moved from: CoreCase CoreExpr [(CoreExpr,CoreExpr)] to: CoreCase CoreExpr [(CorePat,CoreExpr)] data CorePat = PatCon CoreCtorName [CoreVarName] | PatDefault | PatLit CoreLit It should reduce the number of errors, and special cases in the code. In going through and modifying the Yhc.Core libraries, I encountered at least 4 places where the old code was broken in subtle ways because of the poor representation of patterns. To ease the transition I have prodivded patToExpr and exprToPat, which should make it relatively painless. Still broken: * One test (x2n1) is known to run out of memory, the reasons are unknown, but are being tracked down. * The buildbots could do with a fullclean. If anyone needs any help converting their code in light of these Core changes, please email me. With these changes, I feel we are increasingly verging on the Core language that will last a long time! Thanks Neil