diff --git a/C/index.c b/C/index.c index 22d666902..7e886bb95 100644 --- a/C/index.c +++ b/C/index.c @@ -2536,7 +2536,7 @@ several_tags(ClauseDef *min, ClauseDef *max) CELL tag = min->Tag; while (min < max) { min++; - if (!IsAtomTerm(min->Tag) || min->Tag != tag) + if (!IsAtomOrIntTerm(min->Tag) || min->Tag != tag) return TRUE; } return FALSE; @@ -2592,7 +2592,7 @@ do_compound_index(ClauseDef *min0, ClauseDef* max0, Term* sreg, struct intermedi } group = (GroupDef *)top; ngroups = groups_in(min, max, group, cint); - if (ngroups == 1 && group->VarClauses == 0 && several_tags(min,max)) { + if (ngroups == 1 && group->VarClauses == 0 && (i < 8 || several_tags(min,max))) { /* ok, we are doing a sub-argument */ /* process group */ diff --git a/C/tracer.c b/C/tracer.c index d8e686db1..d0244a96a 100644 --- a/C/tracer.c +++ b/C/tracer.c @@ -145,6 +145,9 @@ low_level_trace(yap_low_level_port port, PredEntry *pred, CELL *args) LOCK(Yap_heap_regs->low_level_trace_lock); sc = Yap_heap_regs; vsc_count++; + if (vsc_count == 1719615) jmp_deb(1); + if (vsc_count < 1719600) + return; #ifdef THREADS LOCAL_ThreadHandle.thread_inst_count++; #endif