diff --git a/src/lisp/s-expr.pla b/src/lisp/s-expr.pla index ec36bb2..44a8b0d 100644 --- a/src/lisp/s-expr.pla +++ b/src/lisp/s-expr.pla @@ -849,9 +849,10 @@ def eval_funarg(funarg, argvals) end export def eval_expr(expr)#1 - var curl, expr_car + var alist_enter, curl, expr_car if gc_pull > GC_TRIGGER; gc; fin + alist_enter = assoc_list curl = NULL // Current lambda if trace puts("EVAL: "); print_expr(expr); putln @@ -924,6 +925,7 @@ export def eval_expr(expr)#1 break fin loop + assoc_list = alist_enter // Unwind assoc_list if trace puts("RESULT: "); print_expr(expr); putln fin