altos/lisp: split set/def. Add def support to lambdas
[fw/altos] / src / lisp / ao_lisp_eval.c
index 1044aa48a6a3eff6122769dbdb95ea8c138cafcf..02329ee62be8f9e73597a3c2a5bc29305a2ae4fb 100644 (file)
@@ -350,7 +350,7 @@ ao_lisp_eval_cond(void)
        DBGI(".. frame "); DBG_POLY(ao_lisp_frame_poly(ao_lisp_frame_current)); DBG("\n");
        DBGI(".. saved frame "); DBG_POLY(ao_lisp_stack->frame); DBG("\n");
        if (!ao_lisp_stack->sexprs) {
-               ao_lisp_v = AO_LISP_NIL;
+               ao_lisp_v = _ao_lisp_bool_false;
                ao_lisp_stack->state = eval_val;
        } else {
                ao_lisp_v = ao_lisp_poly_cons(ao_lisp_stack->sexprs)->car;
@@ -559,6 +559,8 @@ ao_lisp_eval(ao_poly _v)
 {
        ao_lisp_v = _v;
 
+       ao_lisp_frame_init();
+
        if (!ao_lisp_stack_push())
                return AO_LISP_NIL;