From: <ki...@cs...> - 2000-06-29 06:22:27
|
Earlier I send a variant of the following problem and attributed the bug to trie intern code. I now traced it to an infinite loop in emuloop: 0x80769ea in emuloop at tc_insts_xsb_i.h:107 107 save_choicepoint(tbreg,ereg,(byte *)opfail,breg); 0x8077a52 in emuloop at tc_insts_xsb_i.h:140 140 restore_trail_condition_registers(breg); Whenever I interrupt it, xsb stops on either one of these two instructions. Here is the program again: :- import trie_interned/4, trie_intern/5 from intern. eql(c,b1). eql(g,h). eql(aa,bbb). eql(cc,bb). eql(ff,hh). eql(X,Y) :- writeln(before), trie_interned(eql(X,Y),0,_,_), writeln(after). eql_true(X,Y) :- eql(X,Y), trie_intern(eql(Y,X),0,_,Z,_), writeln(Z). %% Query ?- eql_true(X,Y), fail. --michael |