improve the support for deterministic tabling (still experimental,

problems mainly with the garbage collector)
This commit is contained in:
Ricardo Rocha
2009-08-07 17:29:53 +01:00
parent cc2c6dbe71
commit fc31e7066e
7 changed files with 105 additions and 49 deletions

View File

@@ -5410,8 +5410,16 @@ p_choicepoint_info(void)
case _table_trust:
case _table_completion:
#ifdef LOW_LEVEL_TRACER
pe = GEN_CP(cptr)->cp_pred_entry;
t = BuildActivePred(pe, (CELL *)(GEN_CP(B) + 1));
#ifdef DETERMINISTIC_TABLING
if (IS_DET_GEN_CP(cptr)) {
pe = DET_GEN_CP(cptr)->cp_pred_entry;
t = MkVarTerm();
} else
#endif /* DETERMINISTIC_TABLING */
{
pe = GEN_CP(cptr)->cp_pred_entry;
t = BuildActivePred(pe, (CELL *)(GEN_CP(B) + 1));
}
#else
pe = UndefCode;
t = MkVarTerm();