From 3daede5b0ef074289a4fdc645271c19d39d75248 Mon Sep 17 00:00:00 2001 From: Nathaniel Wesley Filardo Date: Fri, 1 Mar 2013 00:55:49 -0500 Subject: [PATCH] Tidy source tree, update README --- README.md | 38 +++++++++++++++++++++----------------- external/ekmett-parsers | 1 - external/ekmett-trifecta | 1 - 3 files changed, 21 insertions(+), 19 deletions(-) delete mode 160000 external/ekmett-parsers delete mode 160000 external/ekmett-trifecta diff --git a/README.md b/README.md index da964dc..f74154c 100644 --- a/README.md +++ b/README.md @@ -5,17 +5,16 @@ An overview of the source tree * expected/ -- Expected output for self-tests. Named by program and backend, both. * external/ * damsl-k3 -- The DAMSL K3 tree, tracked as a git submodule. - * ekmett-parsers -- ekmett's parsers combinator library, tracked as a git submodule. - * ekmett-trifecta -- ekmett's trifecta parser combinator library, tracked as a git submodule. * src/Dyna/ - * Backend + * Analysis -- The heart of the compiler + * Mode -- A re-implementation of the Mercury mode system + * Backend -- Compilation to target languages * K3 -- An AST and printer for K3, done in finally-tagless style. * Python -- A Python code generator - * Backend -- Compilation to target languages * Main -- Dyna compiler drivers (main and test) and definitions used throughout the pipeline * ParserHS -- the Haskell front-end parser and selftests * Term -- Different representations of terms and utilities - * XXX -- code that should probably go upstream; modules here are named by the upstream package. + * XXX -- code that should probably go upstream or be made freestanding. Building -------- @@ -24,13 +23,15 @@ First, ensure that you have GHC 7.6 or later. (Though in a pinch, if you're only interested in the frontend stuff and the Python backend, apparently as early as 7.0 continues to be servicable.) -Build K3, if that's your thing, which requires OCaml: +Ensure that you have the Haskell platform available, either through your +favorite package manager or by installing it stand-alone. You should +probably run - git submodule update external/damsl-k3 - (cd external/damsl-k3; make) + cabal update -Then fetch, build, and install any dependencies (for the moment, we seem to -be doing OK with vanilla upstreams!) +before proceeding, just to make sure that your package database is +up-to-date. Then fetch, build, and install any dependencies (for the +moment, we seem to be doing OK with vanilla upstreams!) make deps @@ -39,18 +40,21 @@ Build Dyna: make build (If that doesn't work, you might try `make ghcbuild` which ignores the Cabal -infrastructure.) +infrastructure. If you get an error about the `ghc-prim` package, it means +that your compiler is older than what I've tested on; you may be able to +make things work by dropping the lower bound on the package in dyna.cabal.) -Run the test harness: +You'll want to have the following programs installed, too: - make tests + * IPython + * Pygments (for pretty code output in our debugging tools) -And then run the REPL: +Run the test harness: - ./dist/build/drepl/drepl + make tests -OK, that last bit is probably not quite true. At this point, the code is -still rather "in the works" so you probably want to... +At this point, the code is still rather "in the works" so you probably want +to... * load some module in GHCi; for example: diff --git a/external/ekmett-parsers b/external/ekmett-parsers deleted file mode 160000 index c707806..0000000 --- a/external/ekmett-parsers +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c707806109119e3f54c3064039a4ee2624f18ff1 diff --git a/external/ekmett-trifecta b/external/ekmett-trifecta deleted file mode 160000 index fd1aa5e..0000000 --- a/external/ekmett-trifecta +++ /dev/null @@ -1 +0,0 @@ -Subproject commit fd1aa5e853dd5e015e5df841507ae532558b13d1 -- 2.50.1