Remove ext-core It is now a separately maintained package, available from hackage: http://hackage.haskell.org/package/extcore
Cabalize ext-core tools I cabalized the ext-core tools, so now they can be built as a library. The driver program has to be built separately. Also updated genprimopcode to reflect the new module hierarchy for the Core tools.
External Core tools: track new syntax for newtypes Update External Core tools to reflect new syntax for newtypes. (Notice that the typechecker is 90 lines shorter!) Also: improve dependency-finding, miscellaneous refactoring.
Fix External Core interpreter The External Core interpreter works (in a limited sense). For details, see the README. This means we now have a marginally functioning set of External Core tools. The other exciting change is that the test driver (Driver.hs) now computes module dependencies automatically instead of having a wired-in list of library modules.
Revive External Core typechecker The typechecker works again! Yay! Details upon request.
Revive External Core parser Huzzah, the External Core parser will now parse External Core generated by the HEAD. Most notably, I rewrote the parser in Parsec, but the old Happy version remains in the repository. I checked all the nofib benchmarks and most of the ghc-prim, base and integer libraries to make sure they parsed; one known bug: - Strings like "\x0aE", in which a hex escape code is followed by a letter that could be a hex digit, aren't handled properly. I'm investigating whether this is a bug in Parsec or expected behavior. The checker and interpreter still don't work, but should compile. Please mess around with the parser, report bugs, improve my code, etc., if you're so inclined.
Handle hierarchical module names in External Core tools I updated the parser to handle hierarchical module names (with package names) the way GHC is currently printing them out in External Core. Beware kludgy use of z-encoding and gratutious copy-pasta from GHC. You can now use the stand-alone Core parser to parse a very simple GHC-generated .hcr file (progress!) but not to typecheck or interpret it (the typechecker/interpreter don't snarf in the right libraries yet, among other things.) And, the parser is still incomplete in that it doesn't handle programs with newtypes/GADTs/etc. whose syntax has changed since 2003. In other words: probably don't try to use this yet.
First cut at reviving the External Core tools I updated the External Core AST to be somewhat closer to reality (where reality is defined by the HEAD), and got all the code to compile under GHC 6.8.1. (That means it works, right?) Major changes: - Added a Makefile. - Core AST: - Represented package names and qualified module names. - Added type annotation on Case exps. - Changed Coerce to Cast. - Cleaned up representation of qualified/unqualified names. - Fixed up wired-in module names (no more "PrelGHC", etc.) - Updated parser/interpreter/typechecker/prep for the new AST. - Typechecker: - Used a Reader monad to pass around the global environment and top module name. - Added an entry point to check a single expression. - Prep: - Got rid of typeofExp; it's now defined in terms of the typechecker.
Reorganisation of the source tree Most of the other users of the fptools build system have migrated to Cabal, and with the move to darcs we can now flatten the source tree without losing history, so here goes. The main change is that the ghc/ subdir is gone, and most of what it contained is now at the top level. The build system now makes no pretense at being multi-project, it is just the GHC build system. No doubt this will break many things, and there will be a period of instability while we fix the dependencies. A straightforward build should work, but I haven't yet fixed binary/source distributions. Changes to the Building Guide will follow, too.