diff --git a/C/absmi.c b/C/absmi.c index 1870187a0..d84b438ae 100644 --- a/C/absmi.c +++ b/C/absmi.c @@ -1929,6 +1929,8 @@ absmi(int inp) /* try performing garbage collection */ ASP = Y+E_CB; + if (ASP > (CELL *)B) + ASP = (CELL *)B; saveregs(); gc(PredArity(SREG), ENV, CPREG); setregs(); diff --git a/C/compiler.c b/C/compiler.c index 76493f777..de8ba0663 100644 --- a/C/compiler.c +++ b/C/compiler.c @@ -1099,8 +1099,6 @@ c_functor(Term Goal) if (profiling) emit(enter_profiling_op, (CELL)RepPredProp(p0), Zero); c_args(Goal); - if (onlast) - emit(deallocate_op, Zero, Zero); emit(safe_call_op, (CELL)p0 , Zero); emit(empty_call_op, Zero, Zero); emit(restore_tmps_and_skip_op, Zero, Zero); diff --git a/C/tracer.c b/C/tracer.c index 1aefe0d28..595ee3558 100644 --- a/C/tracer.c +++ b/C/tracer.c @@ -113,6 +113,13 @@ check_trail_consistency(void) { } */ +static char *op_names[_std_top + 1] = +{ +#define OPCODE(OP,TYPE) #OP +#include "YapOpcodes.h" +#undef OPCODE +}; + void low_level_trace(yap_low_level_port port, PredEntry *pred, CELL *args) { @@ -122,7 +129,7 @@ low_level_trace(yap_low_level_port port, PredEntry *pred, CELL *args) extern int gc_calls; vsc_count++; - /* if (vsc_count < 420430) return; */ + if (vsc_count < 2810) return; /* if (vsc_count > 500000) exit(0); */ /* if (gc_calls < 1) return;*/ YP_fprintf(YP_stderr,"%lu ",vsc_count); diff --git a/CHR/chr/trace.yap b/CHR/chr/trace.yap index 4a1e95081..a6f688248 100644 --- a/CHR/chr/trace.yap +++ b/CHR/chr/trace.yap @@ -466,7 +466,7 @@ show_heads( [H|Hs], I, D, If) :- ( Hs=[] -> If = I ; H=r(_,_), Hs=[k(_,_)|_] -> - errput(0' ), errput(0'\), errput(0' ), + errput(0' ), errput(0'\\ ), errput(0' ), J is I+D, show_heads( Hs, J, D, If) ; diff --git a/changes4.3.html b/changes4.3.html index 038f5cf4b..e6463ba4c 100644 --- a/changes4.3.html +++ b/changes4.3.html @@ -6,6 +6,8 @@

Yap-4.3.19: