fix garbage collector for deterministic tabling (still very
experimental)
This commit is contained in:
parent
4bdf8bf991
commit
4f6676e5af
@ -1914,6 +1914,9 @@ mark_choicepoints(register choiceptr gc_B, tr_fr_ptr saved_TR, int very_verbose)
|
|||||||
current_B = gc_B;
|
current_B = gc_B;
|
||||||
prev_HB = HB;
|
prev_HB = HB;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef DETERMINISTIC_TABLING
|
||||||
|
if (!IS_DET_GEN_CP(gc_B))
|
||||||
|
#endif /* DETERMINISTIC_TABLING */
|
||||||
HB = gc_B->cp_h;
|
HB = gc_B->cp_h;
|
||||||
#ifdef INSTRUMENT_GC
|
#ifdef INSTRUMENT_GC
|
||||||
num_bs++;
|
num_bs++;
|
||||||
@ -1957,6 +1960,9 @@ mark_choicepoints(register choiceptr gc_B, tr_fr_ptr saved_TR, int very_verbose)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
#ifdef DETERMINISTIC_TABLING
|
||||||
|
if (!IS_DET_GEN_CP(gc_B))
|
||||||
|
#endif /* DETERMINISTIC_TABLING */
|
||||||
{
|
{
|
||||||
/* find out how many cells are still alive in the trail */
|
/* find out how many cells are still alive in the trail */
|
||||||
mark_trail(saved_TR, gc_B->cp_tr, gc_B->cp_h, gc_B);
|
mark_trail(saved_TR, gc_B->cp_tr, gc_B->cp_h, gc_B);
|
||||||
|
@ -49,11 +49,6 @@
|
|||||||
** ----------------------------------------------- */
|
** ----------------------------------------------- */
|
||||||
#define TABLING_EARLY_COMPLETION 1
|
#define TABLING_EARLY_COMPLETION 1
|
||||||
|
|
||||||
/* --------------------------------------------------- **
|
|
||||||
** support deterministic tabling? (optional) **
|
|
||||||
** --------------------------------------------------- */
|
|
||||||
/* #define DETERMINISTIC_TABLING 1 */
|
|
||||||
|
|
||||||
/* ------------------------------------------------ **
|
/* ------------------------------------------------ **
|
||||||
** limit the table space size? (optional) **
|
** limit the table space size? (optional) **
|
||||||
** ------------------------------------------------ */
|
** ------------------------------------------------ */
|
||||||
@ -64,6 +59,11 @@
|
|||||||
** ------------------------------------------------ */
|
** ------------------------------------------------ */
|
||||||
/* #define INCOMPLETE_TABLING 1 */
|
/* #define INCOMPLETE_TABLING 1 */
|
||||||
|
|
||||||
|
/* --------------------------------------------------- **
|
||||||
|
** support deterministic tabling? (optional) **
|
||||||
|
** --------------------------------------------------- */
|
||||||
|
/* #define DETERMINISTIC_TABLING 1 */
|
||||||
|
|
||||||
/* ---------------------------------------- -- **
|
/* ---------------------------------------- -- **
|
||||||
** enable error checking? (optional) **
|
** enable error checking? (optional) **
|
||||||
** ------------------------------------------- */
|
** ------------------------------------------- */
|
||||||
|
Reference in New Issue
Block a user