]>
hydra-www.ietfng.org Git - dyna2/log
Tim Vieira [Sun, 30 Jun 2013 04:49:45 +0000 (00:49 -0400)]
trace available at repl supports viewing derivations each item matching query
:- a :- b.
:- b:- c.
:- c.
=============
a := true
b := true
c := true
:- trace a
a = true
|
└─ :- true
# a :- b.
# a :- b. where {}
head: &a
result: b=true
|
└─ b = true
|
└─ :- true
# b:- c.
# b:- c. where {}
head: &b
result: c=true
|
└─ c = true
|
└─ |= true
# c.
# c. where {}
head: &c
result: &true
Tim Vieira [Sun, 30 Jun 2013 02:49:42 +0000 (22:49 -0400)]
Many changes
* Support for `=` aggregator. #23
* BUGFIX: when --plan is specified (sorry :-X)
* tweak to error handling. when an item's aggregator fails we set it's value to
$error instead of it's last "ok" value.
the repl also show this item as "changed"
* tweaks to doctest runnner
* attempt at contains/2 for list membership -- will eventually change to infix
operator `in`
* cons and nil can't be assigned values.
Tim Vieira [Sat, 29 Jun 2013 05:00:59 +0000 (01:00 -0400)]
Each Interpreters now has a workspace `~/.dyna/tmp/$PID`. This directory is for
any files used by the code generator, REPL, etc.
Tim Vieira [Sat, 29 Jun 2013 04:21:50 +0000 (00:21 -0400)]
tweaks to the README, todo list, and repl formatting.
Tim Vieira [Sat, 29 Jun 2013 01:51:15 +0000 (21:51 -0400)]
Tweaks to error messages.
Improved documentation for loaders and post-processors.
Tim Vieira [Fri, 28 Jun 2013 21:16:49 +0000 (17:16 -0400)]
()
Tim Vieira [Fri, 28 Jun 2013 21:16:36 +0000 (17:16 -0400)]
added examples/lists.dyna to end-to-end tests
Tim Vieira [Fri, 28 Jun 2013 21:12:03 +0000 (17:12 -0400)]
merged
Tim Vieira [Fri, 28 Jun 2013 21:02:56 +0000 (17:02 -0400)]
Merge ../working
Tim Vieira [Fri, 28 Jun 2013 21:02:50 +0000 (17:02 -0400)]
cleanup
Tim Vieira [Fri, 28 Jun 2013 21:00:29 +0000 (17:00 -0400)]
Removed existing calls to pycall. stdlib functions must be declared manually as
a case in the `constants` function `Python/Backend.hs`. Otherwise, `pycall` is
still available.
Tim Vieira [Fri, 28 Jun 2013 20:41:39 +0000 (16:41 -0400)]
()
Tim Vieira [Fri, 28 Jun 2013 20:39:46 +0000 (16:39 -0400)]
pygments is now optional (if it's missing you are warned if you run or import
debug somewhere.)
extended dyna compiler wrapper (dynac)
Nathaniel Wesley Filardo [Fri, 28 Jun 2013 20:31:59 +0000 (16:31 -0400)]
Merge branch 'master' of github.com:nwf/dyna
Nathaniel Wesley Filardo [Fri, 28 Jun 2013 20:29:21 +0000 (16:29 -0400)]
Just changing the parser is never enough
Put nil/0 and cons/2 into disposition tables and the backends as constants.
Tim Vieira [Fri, 28 Jun 2013 19:38:19 +0000 (15:38 -0400)]
pretty print lists, which are still cons/nil under the hood.
Moved some library functions in into stdlib.py
Moved attempt at unifiction into it's own file... it will probably be deleted
entirely in favor of something else (it's unused at the moment).
Tim Vieira [Fri, 28 Jun 2013 19:05:26 +0000 (15:05 -0400)]
Reorganize imports so that loader/post-processor deps only matter when you ask
for them (e.g. matplotlib) and that ./dyna starts-up quicker.
Tim Vieira [Fri, 28 Jun 2013 14:40:18 +0000 (10:40 -0400)]
Merge ../working
Tim Vieira [Fri, 28 Jun 2013 14:39:24 +0000 (10:39 -0400)]
yet another fix to ./debug
Nathaniel Wesley Filardo [Fri, 28 Jun 2013 06:34:58 +0000 (02:34 -0400)]
Fix printout of primitive strings
We now rely on Show to do the quotation; this may not be correct for all
backends, but it is less wrong than before.
Tim Vieira [Fri, 28 Jun 2013 06:10:33 +0000 (02:10 -0400)]
Merge ../working
Tim Vieira [Fri, 28 Jun 2013 06:10:20 +0000 (02:10 -0400)]
cleanup output formats.
Nathaniel Wesley Filardo [Fri, 28 Jun 2013 05:48:56 +0000 (01:48 -0400)]
Add ruleix=N printouts to dump headers
Tim Vieira [Fri, 28 Jun 2013 05:31:32 +0000 (01:31 -0400)]
`draw_circuit` and `trace` work with BC computation
BUGFIX: looks like my previous bugs fix broke alignment with python and dopamine
code. I've fixed the Python code. Dopamine coming soon.
REPL `query` no longer kept up-to-date with FC because we throw away the rule
once we're done with it.
added REPL `run` command to execute dyna code from a different file (NOTE: there
is no namespacing so bad things can happen.)
BUGFIX: Fixed cyclic `Term` comparsion.
BUGFIX: Fixed dictionary changed size on iteration exception. Thanks to Jason
for reporting.
Nathaniel Wesley Filardo [Fri, 28 Jun 2013 03:48:43 +0000 (23:48 -0400)]
On second thought...
Make [,,,] unpack to cons/2 and nil/1 as per timv's request.
Nathaniel Wesley Filardo [Fri, 28 Jun 2013 02:57:10 +0000 (22:57 -0400)]
Merge branch 'master' of github.com:nwf/dyna
Nathaniel Wesley Filardo [Fri, 28 Jun 2013 02:55:52 +0000 (22:55 -0400)]
Tweaks to parser
Introduce [,,,] syntax for anonymous tuples (an alias for "tuple(,,,)").
Modify rule span information to avoid subsequent whitespace.
Tim Vieira [Fri, 28 Jun 2013 01:11:26 +0000 (21:11 -0400)]
Merge ../working
Tim Vieira [Fri, 28 Jun 2013 01:09:23 +0000 (21:09 -0400)]
Backchained items are no longer displayed in solution.
Nicer error messages when post/load commands are not understood.
Nathaniel Wesley Filardo [Fri, 28 Jun 2013 00:41:48 +0000 (20:41 -0400)]
Merge branch 'master' of github.com:nwf/dyna
Tim Vieira [Thu, 27 Jun 2013 20:57:54 +0000 (16:57 -0400)]
added example of backchaining.
Tim Vieira [Thu, 27 Jun 2013 20:57:10 +0000 (16:57 -0400)]
dyna doctest runnner.
Tim Vieira [Thu, 27 Jun 2013 20:45:14 +0000 (16:45 -0400)]
Experiment version of `trace` now available.
$ ./dyna
:- a += 1.
:- a += a/2.
:- post trace()
Tim Vieira [Thu, 27 Jun 2013 19:00:30 +0000 (15:00 -0400)]
()
Tim Vieira [Thu, 27 Jun 2013 18:44:54 +0000 (14:44 -0400)]
added geometric series to tests
Tim Vieira [Thu, 27 Jun 2013 18:39:12 +0000 (14:39 -0400)]
First pass implementation of Jason's `trace` debugger.
Fixed source line selection in ./debug
Moved a few things around.
compiler dumps anf by default (right beside the .plan.py).
Nathaniel Wesley Filardo [Thu, 27 Jun 2013 02:00:30 +0000 (22:00 -0400)]
Fix an infinite loop on a malformed NamedInst
While trying to print out a malformed inst is a good idea, it is not a good
idea to try to reduce it first, as that might trigger the malformedness
assertion.
Nathaniel Wesley Filardo [Thu, 27 Jun 2013 01:54:53 +0000 (21:54 -0400)]
Strengthen static types of Inst lattice functions
Use parametricity and higher-rank types to force the lop-sided callbacks to
use only non-recursive Insts.
Tim Vieira [Tue, 25 Jun 2013 01:53:03 +0000 (21:53 -0400)]
New output format
- print nullary terms together at the top.
- don't print empty charts
- heading is "Solution" instead of "Charts"
REPL cmd 'chart' renamed to 'sol'
Added lots of help documentation for REPL
Tim Vieira [Wed, 19 Jun 2013 04:05:35 +0000 (00:05 -0400)]
ground backward chaining!
Nathaniel Wesley Filardo [Wed, 19 Jun 2013 03:18:52 +0000 (23:18 -0400)]
Add 'fcomp' target to Makefile
Nathaniel Wesley Filardo [Wed, 19 Jun 2013 03:18:12 +0000 (23:18 -0400)]
Whoops! Partition rules, then plan as appropriate
Tim Vieira [Wed, 19 Jun 2013 03:05:25 +0000 (23:05 -0400)]
Merge ../working
Tim Vieira [Wed, 19 Jun 2013 03:05:12 +0000 (23:05 -0400)]
too lazy.
Tim Vieira [Wed, 19 Jun 2013 03:04:13 +0000 (23:04 -0400)]
Merge branch 'master' of ssh://github.com/nwf/dyna
Nathaniel Wesley Filardo [Wed, 19 Jun 2013 02:59:30 +0000 (22:59 -0400)]
Remove .plan file after running selftest
Nathaniel Wesley Filardo [Tue, 18 Jun 2013 23:19:43 +0000 (19:19 -0400)]
Preliminary changes for ground backchaining
Tim Vieira [Wed, 19 Jun 2013 00:29:36 +0000 (20:29 -0400)]
()
Nathaniel Wesley Filardo [Tue, 18 Jun 2013 19:56:52 +0000 (15:56 -0400)]
Tweak oneshot parser
This should give better error reporting.
Nathaniel Wesley Filardo [Tue, 18 Jun 2013 18:36:57 +0000 (14:36 -0400)]
Hack in a workaround for hanging the test harness
Catch the thrown ExitFailure and just return ()
Tim Vieira [Tue, 18 Jun 2013 14:38:56 +0000 (10:38 -0400)]
test/repl/load uses data
Nathaniel Wesley Filardo [Tue, 18 Jun 2013 06:34:51 +0000 (02:34 -0400)]
Stylistic tweaks
Nathaniel Wesley Filardo [Tue, 18 Jun 2013 06:10:25 +0000 (02:10 -0400)]
Small mode-system changes
Mostly cosmetic
Fixes a small potential bug (as of yet un-tickled) in Python planner hook
Imports a fix to NoBackend planner hook from
4e0fc1726ab4abf1326ea61ae5225f0bb5167707
Nathaniel Wesley Filardo [Tue, 18 Jun 2013 06:02:13 +0000 (02:02 -0400)]
Improve handling of planner failures
The planner now reports Either an exhaustive list of failed moves
or a list of successful plans. When we find a plan, we forget
the failures and begin accumulating succeses.
Add --dump-failed-plans to facilitate debugging
Report a user program error if a rule fails to have an initializer,
partially addressing github nwf/dyna#5 .
Nathaniel Wesley Filardo [Tue, 18 Jun 2013 02:12:19 +0000 (22:12 -0400)]
Rescue ctxFromBindings for aliased case
Use it in the test suite, just like for the unaliased machinery.
This is cherry-picked from
4e0fc1726ab4abf1326ea61ae5225f0bb5167707 .
Tim Vieira [Tue, 18 Jun 2013 00:40:18 +0000 (20:40 -0400)]
refactor load and post-process. both are availabl and the REPL and command-line (see test/repl/load.bash for example usage)
timv [Mon, 17 Jun 2013 02:50:04 +0000 (22:50 -0400)]
added repl data loading example.
timv [Mon, 17 Jun 2013 02:42:54 +0000 (22:42 -0400)]
()
timv [Mon, 17 Jun 2013 01:42:15 +0000 (21:42 -0400)]
First pass at "bulk loader" API -- at the moment loading is only supported at
the REPL (cmd-line interface coming soon).
- Read tsv/csv format
- matrix-like
- S-Expression - work in progress
Exceptions and errors handlers live in their on module.
Added `pycall` -- a more convenient way to do `eval` and `mod`
Nathaniel Wesley Filardo [Sat, 15 Jun 2013 02:15:11 +0000 (22:15 -0400)]
Fix bugs in parser and add tests
Notably, this fixes the parser backtracking all the way to the start when it
encounters an operator it doesn't know about. While here, token-ize
constituent parsers and move parser export types to their own module.
Nathaniel Wesley Filardo [Sat, 15 Jun 2013 00:27:15 +0000 (20:27 -0400)]
Placeholder docs page for builtins
Nathaniel Wesley Filardo [Sat, 15 Jun 2013 00:24:06 +0000 (20:24 -0400)]
Take a stab at fixing up = vs ==
Adds examples/equalities.dyna to selftests.
timv [Fri, 14 Jun 2013 23:38:13 +0000 (19:38 -0400)]
misc cleanup.
timv [Fri, 14 Jun 2013 23:22:14 +0000 (19:22 -0400)]
Circuit visualizer is not a post-processer called draw_circuit
clean up cmd-line args
timv [Fri, 14 Jun 2013 22:48:40 +0000 (18:48 -0400)]
tiny tweaks.
timv [Fri, 14 Jun 2013 22:42:12 +0000 (18:42 -0400)]
added load and save scripts.
timv [Fri, 14 Jun 2013 22:30:40 +0000 (18:30 -0400)]
Pickling Interpreter state seems to work.
timv [Fri, 14 Jun 2013 21:33:07 +0000 (17:33 -0400)]
Fixed late aggregator assignment. Added REPL test.
timv [Fri, 14 Jun 2013 18:37:07 +0000 (14:37 -0400)]
Minor tweaks to crash handler. Post-processor can render animates of text and
lines. Instead of hard coded nodes, edge, pos. See `example/force.dyna`
timv [Fri, 14 Jun 2013 14:42:00 +0000 (10:42 -0400)]
Crash handler. All uncatch exceptions are beautifully formatted and logged.
Nathaniel Wesley Filardo [Thu, 13 Jun 2013 20:42:12 +0000 (16:42 -0400)]
Accumulated non-code adjustments; TODO.LSA
timv [Wed, 12 Jun 2013 20:09:59 +0000 (16:09 -0400)]
merge
timv [Wed, 12 Jun 2013 20:06:28 +0000 (16:06 -0400)]
Progress toward pickling Interpreter state. Using import mechanism instead of
execfile to load new code.
Refactor aggregator defns.
Nathaniel Wesley Filardo [Wed, 12 Jun 2013 19:41:19 +0000 (15:41 -0400)]
Workaround in test/repl/aggregator-conflict
Nathaniel Wesley Filardo [Wed, 12 Jun 2013 17:35:30 +0000 (13:35 -0400)]
Merge branch 'master' of github.com:nwf/dyna
Nathaniel Wesley Filardo [Wed, 12 Jun 2013 17:34:21 +0000 (13:34 -0400)]
Wire test/repl into Backend.Python.Selftest
While here, some related cleanups
timv [Wed, 12 Jun 2013 17:31:03 +0000 (13:31 -0400)]
fixed test/repl test cases.
- repl no longer overwrites `~/.dyna/tmp.dyna` and `~/.dyna/tmp.dyna.plan.py`
Now uses a file in `~/dyna/tmp/` with file name based on sha1 hash of
necessary code (which includes parser_state pragmas, of course)
timv [Wed, 12 Jun 2013 17:06:03 +0000 (13:06 -0400)]
drop dep on numpy.
timv [Wed, 12 Jun 2013 16:50:53 +0000 (12:50 -0400)]
merge
timv [Wed, 12 Jun 2013 16:50:33 +0000 (12:50 -0400)]
tweaks.
Nathaniel Wesley Filardo [Wed, 12 Jun 2013 16:47:49 +0000 (12:47 -0400)]
Tweak aggr-mismatch error message
Nathaniel Wesley Filardo [Wed, 12 Jun 2013 16:40:17 +0000 (12:40 -0400)]
Wire in :-iaggr pragmas.
Nathaniel Wesley Filardo [Wed, 12 Jun 2013 16:30:45 +0000 (12:30 -0400)]
Merge branch 'master' of github.com:nwf/dyna
timv [Wed, 12 Jun 2013 01:51:26 +0000 (21:51 -0400)]
merge
timv [Wed, 12 Jun 2013 01:46:57 +0000 (21:46 -0400)]
added test/repl
Change codegen output slightly for easier loading.
Moved Term into it's own module. Preliminary support for unification.
added --profile flag.
changed output of rules command at the repl.
repl no longer dies if an initializer exception is thrown (initializer
exceptions throw out newly added rules).
Nathaniel Wesley Filardo [Tue, 11 Jun 2013 22:02:28 +0000 (18:02 -0400)]
Cleanups and preliminaries around the parser
While rummaging about, take the opportunity to silence several warnings.
Nathaniel Wesley Filardo [Tue, 11 Jun 2013 22:02:28 +0000 (18:02 -0400)]
Cleanups and preliminaries around the parser
While rummaging about, take the opportunity to silence several warnings.
timv [Mon, 10 Jun 2013 19:21:41 +0000 (15:21 -0400)]
Progress on Penn Treebank benchmarks/experiments.
timv [Mon, 10 Jun 2013 17:50:34 +0000 (13:50 -0400)]
merge
timv [Mon, 10 Jun 2013 17:49:27 +0000 (13:49 -0400)]
tweaks, fixes.
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.
timv [Sun, 9 Jun 2013 19:47:43 +0000 (15:47 -0400)]
fixed some exceptions that we're properly caught.
timv [Sun, 9 Jun 2013 19:47:16 +0000 (15:47 -0400)]
fixed a few bits that broke during refactoring.
timv [Sun, 9 Jun 2013 19:45:19 +0000 (15:45 -0400)]
dynac utility throws an a nice DynaCompilerError on failure and uses the more
modern `subprocess` module for the system call.
timv [Sun, 9 Jun 2013 19:42:56 +0000 (15:42 -0400)]
small bugfixes in aggregators pertaining to when things should be null.
timv [Sun, 9 Jun 2013 16:40:00 +0000 (12:40 -0400)]
Improvements to chart
* queries (= Chart.__getitem__) perform fewer set intersections (removed a
very slow call to set.copy -- it's faster to intersect two sets and get a
copy because the intersection is guaranteed to be smaller!)
I'm also using a most constrained variable first heuristic for picking the
first index to intersect.
* fewer hash look ups with we call ``insert``.
timv [Sun, 9 Jun 2013 16:34:21 +0000 (12:34 -0400)]
cleanup force.dyna
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.