Menu

Commit [r9708]  Maximize  Restore  History

Fixed bug with WFS and call subsumption. Call subsumption uses the same routines for adding calls and answers.

Therefore if there is an answer p(X), an answer p(1) will not be added. This if fine if all answers are unconditional, but
not if the answers are conditional. For instance if there is an answer p(X) <- undefined, we still want to add an unconditional answer p(1).
This wasn't happening, so I put a switch in iter_sub_trie_lookup to do a variant check when adding answers but (of course) maintaining its subsumption
check for calls.

I found this case when working on call subsumption and incremental tabling, so there is an ifdef or two for incremental tabling, but it wont hurt anything, I hope.

tswift 2019-11-05

changed /trunk/XSB/emu/sub_tables_xsb_i.h
changed /trunk/XSB/emu/trie_internals.h
changed /trunk/XSB/emu/trie_lookup.c
changed /trunk/XSB/emu/trie_search.c
/trunk/XSB/emu/sub_tables_xsb_i.h Diff Switch to side-by-side view
Loading...
/trunk/XSB/emu/trie_internals.h Diff Switch to side-by-side view
Loading...
/trunk/XSB/emu/trie_lookup.c Diff Switch to side-by-side view
Loading...
/trunk/XSB/emu/trie_search.c Diff Switch to side-by-side view
Loading...
MongoDB Logo MongoDB