reformat tabling code
remove overly clever naming around tabling
minor refactor - no need to use concat here - into works just fine.
properly comment the behavior of waiting-stream-check
remove ->waiting-stream, remove concat, just use into []. some comments.
LOGIC-54 LOGIC-55 LOGIC-56: Set unification no longer supported. IUnifyWithSet protocol left as stub for the brave ones.
fix version in project.clj
Fix comment cache is (atom ()) not (atom []), this is important since
we use identical? in reuse. This more closely follows Byrd's
thesis. It's likely that this is the source of the slowdown when the
contents of the cache is very large. Similarly end in the reuse loop
is now initialized to () instead of [].
formatting and more comments about the tabling implementation.
change tabled macro so that we can define a recursive tabled goal in
places other than the top-level.
backout tabled recursion support for now
decomplect finite domains and unification.
remove tests that depended on complecting of finite domains and unification
note that force-ans is really Mozart/OZ's "distribute" step
note what fields we need to add to Substitutions
Substitutions now implements clojure.lang.Associative, prep for multistore refactor
Merge branch 'master' into multistore
remove goofy use of c.c.PHM/EMPTY. support for fast updating of fields
via assoc. use assoc. fix ctors.
support for new fields
add use-ws. if Subsitution is already using the working store just
return the Subsitution, if not preserve the last working store and
switch to the new one.