]>
hydra-www.ietfng.org Git - dyna2/log
Nathaniel Wesley Filardo [Mon, 10 Jun 2013 05:04:57 +0000 (01:04 -0400)]
Initial example of Euclidean Dijkstra example
See nwf/dyna#16; still open to improve.
Nathaniel Wesley Filardo [Sat, 8 Jun 2013 22:11:48 +0000 (18:11 -0400)]
Merge branch 'master' of github.com:nwf/dyna
Nathaniel Wesley Filardo [Sat, 8 Jun 2013 18:45:00 +0000 (14:45 -0400)]
Fix a small bug in the test harness
Thanks to Tim for the report that prop_no_unifyUnaliasedNV failed.
Rather than constrain prop_no_unifyUnaliasedNV to generate only UShared
terms, try a slightly different test in which we are unifying in a
preconstructed context.
timv [Fri, 7 Jun 2013 22:22:54 +0000 (18:22 -0400)]
added comment on running script.
timv [Fri, 7 Jun 2013 22:19:25 +0000 (18:19 -0400)]
merge
timv [Fri, 7 Jun 2013 22:18:15 +0000 (18:18 -0400)]
added post-processing script for animated force-directed graph layout.
timv [Fri, 7 Jun 2013 22:17:44 +0000 (18:17 -0400)]
added force-directed layout (with a small hack for random numbers).
use FIFO priorities added argument for runing post-processing scripts.
Nathaniel Wesley Filardo [Fri, 7 Jun 2013 16:28:20 +0000 (12:28 -0400)]
fix error :: String
Rework conjunction handling in normalizer -- it was erroneously discarding
the left hand side, rather than unifying with true.
While here, add both a test-case (examples/fib-limit.dyna) and some
documentation for users.
Closes github issue nwf/dyna#14.
timv [Fri, 7 Jun 2013 03:54:55 +0000 (23:54 -0400)]
merge
timv [Fri, 7 Jun 2013 03:53:01 +0000 (23:53 -0400)]
updated expected output for end-to-end tests.
timv [Fri, 7 Jun 2013 03:37:57 +0000 (23:37 -0400)]
()
timv [Fri, 7 Jun 2013 03:37:43 +0000 (23:37 -0400)]
New features and cleanup.
New feature: support for rule retraction
- rules are indexed by `Interpreter` and stored in a `Rule` instance.
- REPL features to list rules, retract rule by it'd rule index.
New features: item retraction
- this is an experimental feature, which is very inefficient.
Update python deps in readme
chart dumps and trace output use dyna-style double quoted strings and lower case
Booleans.
better output formatting for REPL/query
timv [Thu, 6 Jun 2013 22:49:43 +0000 (18:49 -0400)]
Interpreter states encapulated in an `Interpreter` instance.
- this was a big refactoring adds a few new files (chart.py, repl.py,
config.py)
Fix: Errors stop on first failed handler.
Adding a new rule is safe. We check that the initializers run and there are no
aggregator conflicts before added the new rules to `Interpreter` state. We stage
propagation.
I've document a few more errors (see `examples/string-quote.dyna`)
Using the ~/.dyna directory
- adds a dependency to the `path.py` module
Nathaniel Wesley Filardo [Thu, 6 Jun 2013 07:29:47 +0000 (03:29 -0400)]
Write up new normalization details
While here, permute the directory structure of docs/sphinx slightly.
Nathaniel Wesley Filardo [Thu, 6 Jun 2013 06:06:30 +0000 (02:06 -0400)]
Tweaks to the planner
Mostly cosmetic changes, but of note:
The planner now uses the alias-tracking contexts for mode analysis (though
it does not actually yet do anything with this power; this change is in
preparation for backward-chaining)
DOpAMine unifications are now tagged with determinisim information, again
in preparation for future work; these are all currently set to DetNon.
DOpAMine and Python OPEmit printout is much more vertically compact.
Nathaniel Wesley Filardo [Thu, 6 Jun 2013 05:53:44 +0000 (01:53 -0400)]
Rewrite ANF normalizer
Now uses destination-passing style and a new theory of contexts. It has
many more opportunities to raise warnings in bizarre cases and no longer
generates quite so much cruft as before.
timv [Wed, 5 Jun 2013 22:14:56 +0000 (18:14 -0400)]
Better error messages:
- handle errors in rule initializers.
- include rule source in error message
- no need to run delete-updates when an item "was" causing an error because
these updates don't land on the agenda.
REPL uses correct rule indexes
- Parser state maintained across calls.
- colon equals is no longer buggy in the REPL.
Codegen minor aesthetics
timv [Wed, 5 Jun 2013 20:04:18 +0000 (16:04 -0400)]
merge
timv [Wed, 5 Jun 2013 20:04:02 +0000 (16:04 -0400)]
()
Nathaniel Wesley Filardo [Wed, 5 Jun 2013 19:00:15 +0000 (15:00 -0400)]
Merge branch 'master' of github.com:nwf/dyna
Nathaniel Wesley Filardo [Wed, 5 Jun 2013 18:55:16 +0000 (14:55 -0400)]
More parser work
Allow backends to restrict the set of acceptable aggregators.
Feed through rendered parser state.
timv [Wed, 5 Jun 2013 16:26:17 +0000 (12:26 -0400)]
merge
timv [Wed, 5 Jun 2013 16:25:56 +0000 (12:25 -0400)]
added a few examples.
Nathaniel Wesley Filardo [Wed, 5 Jun 2013 07:49:35 +0000 (03:49 -0400)]
Minor work in Analysis.Mode.Selftest.Contexts
Nathaniel Wesley Filardo [Wed, 5 Jun 2013 06:59:01 +0000 (02:59 -0400)]
Tidy README.md a bit
Nathaniel Wesley Filardo [Wed, 5 Jun 2013 06:31:04 +0000 (02:31 -0400)]
Add a placeholder tutorial section on errors
Nathaniel Wesley Filardo [Wed, 5 Jun 2013 05:06:45 +0000 (01:06 -0400)]
New documentation and cleanups
Notably, add docs/sphinx for our prose documentation and several
corresponding Makefile targets.
Nathaniel Wesley Filardo [Wed, 5 Jun 2013 00:30:27 +0000 (20:30 -0400)]
Small cleanups & update TODO
Nathaniel Wesley Filardo [Tue, 4 Jun 2013 23:56:52 +0000 (19:56 -0400)]
More parser work
Attempts to serialize parser state as a wad of pragmas and hand
them off to the backend. This is hardly ideal, but it's something.
Nathaniel Wesley Filardo [Tue, 4 Jun 2013 23:52:16 +0000 (19:52 -0400)]
Fix a failing test
Automata in prop_call_test_sufficient should be nonempty on all disjuncts.
Thanks to Tim for the report.
Nathaniel Wesley Filardo [Tue, 4 Jun 2013 23:50:27 +0000 (19:50 -0400)]
Add dijkstra example as python selftest
timv [Tue, 4 Jun 2013 23:45:23 +0000 (19:45 -0400)]
added matrixops to python end-to-end tests.
timv [Tue, 4 Jun 2013 23:38:55 +0000 (19:38 -0400)]
merge
timv [Tue, 4 Jun 2013 23:38:21 +0000 (19:38 -0400)]
Error handling, hypergraph recovery.
- code instrumentation `emit` now passed passengers.
- see draw() method and --draw flag
timv [Tue, 4 Jun 2013 20:12:11 +0000 (16:12 -0400)]
minor cosmetics.
Nathaniel Wesley Filardo [Tue, 4 Jun 2013 20:03:01 +0000 (16:03 -0400)]
Merge branch 'master' of github.com:nwf/dyna
timv [Tue, 4 Jun 2013 20:02:16 +0000 (16:02 -0400)]
tweaks to style in debugger html output.
timv [Tue, 4 Jun 2013 19:43:08 +0000 (15:43 -0400)]
merge
timv [Tue, 4 Jun 2013 19:42:25 +0000 (15:42 -0400)]
codegen: put docstrings on handlers and initializers.
- update ./debug to parse new format.
Updated TODO list.
parse_sexpr handles double quoted strings (at least crudely).
Nathaniel Wesley Filardo [Tue, 4 Jun 2013 19:41:33 +0000 (15:41 -0400)]
Some work towards resumable parsing
Nathaniel Wesley Filardo [Tue, 4 Jun 2013 03:39:07 +0000 (23:39 -0400)]
Merge branch 'master' of github.com:nwf/dyna
Nathaniel Wesley Filardo [Tue, 4 Jun 2013 03:29:27 +0000 (23:29 -0400)]
Fix some parser bugs
Aggregator parsing now much more rigorous & have more self-tests.
Facts now use "|=" aggregation as they should
timv [Tue, 4 Jun 2013 03:27:53 +0000 (23:27 -0400)]
emits are buffered in case an exception is thrown.
fixed typo in arity of mod.
timv [Tue, 4 Jun 2013 03:26:09 +0000 (23:26 -0400)]
updated expected output for papa2.
timv [Mon, 3 Jun 2013 18:58:00 +0000 (14:58 -0400)]
using an actual priority queue, no more ``_delete`` global variable.
global error suppression flag
timv [Mon, 3 Jun 2013 15:47:49 +0000 (11:47 -0400)]
merge
timv [Mon, 3 Jun 2013 15:45:17 +0000 (11:45 -0400)]
Queries return variable assignments
:- query rewrite(X,Y)
(1, {'Y': 'ate', 'X': 'V'})
(1, {'Y': 'caviar', 'X': 'N'})
(1, {'Y': 'spoon', 'X': 'N'})
(1, {'Y': 'the', 'X': 'Det'})
(1, {'Y': 'with', 'X': 'P'})
(1, {'Y': 'a', 'X': 'Det'})
(1, {'Y': 'Papa', 'X': 'NP'})
Added `dict=` (name might changed) and aggregator which stores user variable
assignments. [This is what is used for answering queries like the one above.qq]
Nathaniel Wesley Filardo [Mon, 3 Jun 2013 07:10:32 +0000 (03:10 -0400)]
Rework parser infrastructure
Parser now really should just be the parser.
OneshotDriver consumes an entire Dyna program at once, tracking
all the requisite state from line to line, before emitting the
whole mass to the down-stream pipeline.
While here, push through some changes for custom operator symbols, though
this is not quite wired up yet.
Nathaniel Wesley Filardo [Mon, 3 Jun 2013 03:52:30 +0000 (23:52 -0400)]
Remove stale files
timv [Mon, 3 Jun 2013 03:26:54 +0000 (23:26 -0400)]
()
timv [Mon, 3 Jun 2013 03:10:34 +0000 (23:10 -0400)]
merge
Nathaniel Wesley Filardo [Mon, 3 Jun 2013 02:52:19 +0000 (22:52 -0400)]
Fix a typo in matrixops example
timv [Mon, 3 Jun 2013 02:51:20 +0000 (22:51 -0400)]
moved pretty into Term.__repr__
timv [Mon, 3 Jun 2013 02:23:32 +0000 (22:23 -0400)]
Chart does not need update method thanks to the new Term objects.
Nathaniel Wesley Filardo [Mon, 3 Jun 2013 02:03:23 +0000 (22:03 -0400)]
Lots of work in Dyna.Analysis.Mode
Nathaniel Wesley Filardo [Mon, 3 Jun 2013 01:57:36 +0000 (21:57 -0400)]
Merge branch 'master' of github.com:nwf/dyna
timv [Mon, 3 Jun 2013 01:52:57 +0000 (21:52 -0400)]
Refactored: Term's store reference to their aggregator.
Nathaniel Wesley Filardo [Mon, 3 Jun 2013 01:51:00 +0000 (21:51 -0400)]
Make BackendDefn 'constants' a function
Rather than a guaranteed finite map. While here, make NoBackend agree more
with the Python backend and sort the lists of primitives.
timv [Mon, 3 Jun 2013 01:12:41 +0000 (21:12 -0400)]
Chart now has indexes on each argument (but not the value).
Chart stores Term objects.
timv [Mon, 3 Jun 2013 01:08:20 +0000 (21:08 -0400)]
Fixed colon equals aggregator (:=).
timv [Mon, 3 Jun 2013 01:07:53 +0000 (21:07 -0400)]
Simplified code produced by Python codegen.
for (X, Z, Value) in chart[:,Y,:,:]
is now
for (X, _, Z, Value) in chart[:,Y,:,:]
timv [Mon, 3 Jun 2013 00:20:17 +0000 (20:20 -0400)]
colon equals (:=) tests.
timv [Sun, 2 Jun 2013 17:47:58 +0000 (13:47 -0400)]
()
Tim Vieira [Sun, 2 Jun 2013 17:34:12 +0000 (13:34 -0400)]
Merge branch 'master' of ssh://github.com/nwf/dyna
Tim Vieira [Sun, 2 Jun 2013 17:29:16 +0000 (13:29 -0400)]
Noticed some quirky behavior with global variables when REPL was in a different
module from interpreter so I switched it back temporarily.
minor refactoring to Chart.update and Chart.insert
The new Term object hasn't been pushed all the way thru. The old-style (fn,idx)
tuples are what get stored in the chart.
TODO: track down and fix this.
Ghetto way to answer queries.
:- query phrase(X,I,K)
in(2) :- query rewrite(X,I,K)
out(2) bag= _VALUE is rewrite(X,I,K), &result(&(rewrite(X,I,K)), _VALUE).
=============
out(2) := BAggregator({result(rewrite('PP','P','NP'),1): 1,
result(rewrite('VP','VP','PP'),1): 1,
...
})
Nathaniel Wesley Filardo [Sat, 1 Jun 2013 23:00:37 +0000 (19:00 -0400)]
Try a new definition for := in python backend
Nathaniel Wesley Filardo [Sat, 1 Jun 2013 22:24:48 +0000 (18:24 -0400)]
Make emissions explicit in DOpAMine
Change the world so that the planner generates OPEmit verbs rather
than emissions being magical bits of the backend. Expand the notion of an
emission to include the rule index (required for :=) and a set of variables
for hyper-edge identification. (Currently, we emit all of them, but later
we will want to trim this down to only nondeterministic variables.)
This change is the code-generator mate of timv's changes in
6abdc37 .
Nathaniel Wesley Filardo [Sat, 1 Jun 2013 22:11:13 +0000 (18:11 -0400)]
Detect missing alex and happy in make deps
Tim Vieira [Sat, 1 Jun 2013 06:53:15 +0000 (02:53 -0400)]
cleanup/move repl into its own module.
Tim Vieira [Sat, 1 Jun 2013 06:19:11 +0000 (02:19 -0400)]
minor cleanups
Tim Vieira [Sat, 1 Jun 2013 05:34:16 +0000 (01:34 -0400)]
Cleaner representation of Term's as Python objects.
REPL handles ^C
Tim Vieira [Sat, 1 Jun 2013 03:21:49 +0000 (23:21 -0400)]
First-pass at a REPL
- user can add new rules (LIMITATIONS: no retracting rules; no queries yet.)
- new rules check for aggregator conflict.
- only shows the user what changed as a result of the new rule. rather than
dumping the entire chart. The chart isn't dumped every time we hit go().
Nicer chart pretty printing (only relevant to sets or lists of items), which is
only experimental.
Reverted Wes' changes to eval it seems like the change was not tested. Sorry Wes.
Nicer formatting for tracing messages. Tracing is no longer printed to
stderr. by defualt, it goes to /tmp/dyna.log (there is a cmdline option to
change that; there is also commands in the REPL "trace on" and "trace off").
Tim Vieira [Fri, 31 May 2013 21:44:17 +0000 (17:44 -0400)]
merge.
Tim Vieira [Fri, 31 May 2013 21:42:28 +0000 (17:42 -0400)]
added dynac_code -- toward a REPL!
Nathaniel Wesley Filardo [Fri, 31 May 2013 18:35:13 +0000 (14:35 -0400)]
Merge branch 'master' of github.com:nwf/dyna
Tim Vieira [Fri, 31 May 2013 18:19:03 +0000 (14:19 -0400)]
oops.
Nathaniel Wesley Filardo [Thu, 30 May 2013 20:29:00 +0000 (16:29 -0400)]
Switch python selftests to run compiler themselves
And only run the interpreter as a captive process. This change is made with
the intent of more accurately reflecting code coverage when we start
tracking that within self-tests.
Tim Vieira [Thu, 30 May 2013 17:49:55 +0000 (13:49 -0400)]
added --plan option to feed compiler output directly into interpreter without calling dyna compiler.
Nathaniel Wesley Filardo [Wed, 29 May 2013 16:43:45 +0000 (12:43 -0400)]
Documentation tweaks
Fix haddock in ParserHS
Nathaniel Wesley Filardo [Wed, 29 May 2013 02:02:27 +0000 (22:02 -0400)]
Bug-fix in planner
The ecrux being updated was erroneously fed into the planner as well,
leading to redundant OPIter in output plans.
While here, try to make some error messages more informative.
Nathaniel Wesley Filardo [Wed, 29 May 2013 02:00:35 +0000 (22:00 -0400)]
Syntax modernization and cleanups
Thanks to Juneki Hong for bringing to my attention that some of the
examples no longer built.
Nathaniel Wesley Filardo [Tue, 28 May 2013 17:50:32 +0000 (13:50 -0400)]
Snapshot of work in progress
Notably, this marks the first commit to fix an externally filed bug report;
thanks to Abram Demski for reporting! Dyna should now build with ghc 7.4
and its Platform releases. :)
(This commit is a little bigger than just the fix as I had already changed
some of the code in my working tree and there seemed to be no reason not to
just commit things.)
Nathaniel Wesley Filardo [Thu, 23 May 2013 05:05:15 +0000 (01:05 -0400)]
Tweak top-level executables to support DYNAHOME
While tweaking things, take tests out of all target in Makefile
Nathaniel Wesley Filardo [Tue, 21 May 2013 21:22:33 +0000 (17:22 -0400)]
Make a 'misc/' folder for odds and ends
Move HaddockPaths and vimrc there; add GHC bootstrapping script for
safe-keeping.
Nathaniel Wesley Filardo [Sat, 18 May 2013 20:32:53 +0000 (16:32 -0400)]
Move some constants from ANF to SurfaceSyntax
Nathaniel Wesley Filardo [Sat, 18 May 2013 19:14:00 +0000 (15:14 -0400)]
Try harder to build all haddocks at once
This is a pretty nasty hack which involves shell scripting and a small
program to go digging through Cabal internals.
Nathaniel Wesley Filardo [Fri, 17 May 2013 20:46:48 +0000 (16:46 -0400)]
Fix overlooked fallout from conversion to Insts
This has a side-effect of fixing haddock builds. :)
Nathaniel Wesley Filardo [Thu, 16 May 2013 22:30:23 +0000 (18:30 -0400)]
Stop building hsdyna library
Cabal isn't smart enough to use it internally to the other builds, and it
certainly has no other potential users at the moment.
Nathaniel Wesley Filardo [Thu, 16 May 2013 22:28:01 +0000 (18:28 -0400)]
Add "for" as another spelling of "whenever"
Nathaniel Wesley Filardo [Thu, 16 May 2013 21:57:05 +0000 (17:57 -0400)]
Check in TODO list for LSA 2013.
Here's hoping.
Nathaniel Wesley Filardo [Wed, 15 May 2013 05:15:04 +0000 (01:15 -0400)]
Another change to ANF
Now that we are indexing evals by an unique Int, we may as well
enforce that with an IntMap, rather than just a Set.
This is in preparation for displaying each update's ANF after
double-counting prevention cruxes have been added.
Nathaniel Wesley Filardo [Wed, 15 May 2013 04:40:35 +0000 (00:40 -0400)]
Improve ./debug
Nathaniel Wesley Filardo [Thu, 9 May 2013 05:12:19 +0000 (01:12 -0400)]
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/
Nathaniel Wesley Filardo [Fri, 3 May 2013 23:43:07 +0000 (19:43 -0400)]
First pass at new mode infrastructure plumbing
This brings the Mercury mode system all the way out through the planner,
though it does not actually really avail itself of any of the improved
functionality. It compiles and passes all selftests, but that, too, is
hardly saying anything.
Nathaniel Wesley Filardo [Fri, 12 Apr 2013 03:49:55 +0000 (23:49 -0400)]
Snapshot before more surgery
Nathaniel Wesley Filardo [Sun, 31 Mar 2013 07:12:53 +0000 (03:12 -0400)]
First pass at disposition pragmas
Nathaniel Wesley Filardo [Fri, 29 Mar 2013 18:26:28 +0000 (14:26 -0400)]
More cleanups and a forgotten file
Nathaniel Wesley Filardo [Fri, 29 Mar 2013 18:03:12 +0000 (14:03 -0400)]
Dependency fixes, hopefully
Nathaniel Wesley Filardo [Mon, 25 Mar 2013 18:51:46 +0000 (14:51 -0400)]
Snapshot mode stuff
Nathaniel Wesley Filardo [Fri, 15 Mar 2013 03:08:39 +0000 (23:08 -0400)]
Several small bug fixes