]> hydra-www.ietfng.org Git - dyna2/commit
Cleanup ANF frontend some more
authorNathaniel Wesley Filardo <nwf@cs.jhu.edu>
Thu, 9 May 2013 05:12:19 +0000 (01:12 -0400)
committerNathaniel Wesley Filardo <nwf@cs.jhu.edu>
Thu, 9 May 2013 05:23:59 +0000 (01:23 -0400)
commitfec06556df338f3c89136c2184f32fadf383b946
tree61d9788059851fcb710a289ad6dbd3836589adf6
parent85edb5149bf5e8aa486337678ad5f7bfe4bc8a1d
Cleanup ANF frontend some more

Eliminate the awkward old ANF language in favor of direct translation to
Cruxes in Dyna.Analysis.ANF.  Evaluation cruxes are now properly indexed
within rules using an Int, so we don't have to rely on the output variable
being unique.  There are more flavors of unification cruxes, including
inequality constraints.

The terrible 'handleConflictors' has been replaced with a much more
sane function which operates on cruxes, rather than on DOpAMine, which will
be welcome when we have more interesting OPIter modes.

While here, move python scripts from bin/ to src/Dyna/Backend/Python and
adjust the world.  Use this as an excuse to make ./debug invoke the dyna
compiler only once and dump everything to different files in $PROGRAM.d/
18 files changed:
debug
dyna
dyna.cabal
src/Dyna/Analysis/ANF.hs
src/Dyna/Analysis/ANFPretty.hs [new file with mode: 0644]
src/Dyna/Analysis/ANFSelftest.hs
src/Dyna/Analysis/Aggregation.hs
src/Dyna/Analysis/RuleMode.hs
src/Dyna/Backend/BackendDefn.hs
src/Dyna/Backend/Backends.hs
src/Dyna/Backend/Python/Backend.hs [moved from src/Dyna/Backend/Python.hs with 93% similarity]
src/Dyna/Backend/Python/Selftest.hs
src/Dyna/Backend/Python/debug.py [moved from bin/prototype.py with 88% similarity]
src/Dyna/Backend/Python/defn.py [moved from bin/defn.py with 100% similarity]
src/Dyna/Backend/Python/interpreter.py [moved from bin/interpreter.py with 100% similarity]
src/Dyna/Backend/Python/utils.py [moved from bin/utils.py with 75% similarity]
src/Dyna/Main/Driver.hs
src/Dyna/XXX/DataUtils.hs