klisp

an open source interpreter for the Kernel Programming Language.
git clone http://git.hanabi.in/repos/klisp.git
Log | Files | Refs | README

commit a0a18b822a1db40ad80f20b024125668d9726713
parent 8c939c60b96e90ffbb16ddf019c31fbdfba8c099
Author: Andres Navarro <canavarro82@gmail.com>
Date:   Mon, 28 Mar 2011 19:21:56 -0300

Bugfix: $let* now passes true to split bindings to allow repeated symbols in different ptrees.

Diffstat:
Msrc/kgenvironments.c | 8++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/kgenvironments.c b/src/kgenvironments.c @@ -261,7 +261,7 @@ void SletS(klisp_State *K, TValue *xparams, TValue ptree, TValue denv) bind_al1p(K, name, ptree, bindings, body); TValue exprs; - TValue bptree = split_check_let_bindings(K, name, bindings, &exprs, false); + TValue bptree = split_check_let_bindings(K, name, bindings, &exprs, true); int32_t dummy; UNUSED(check_list(K, name, true, body, &dummy)); body = copy_es_immutable_h(K, name, body, false); @@ -285,9 +285,6 @@ void SletS(klisp_State *K, TValue *xparams, TValue ptree, TValue denv) } /* 6.7.5 $letrec */ -/* TODO */ - -/* 6.7.6 $letrec* */ void Sletrec(klisp_State *K, TValue *xparams, TValue ptree, TValue denv) { /* @@ -311,6 +308,9 @@ void Sletrec(klisp_State *K, TValue *xparams, TValue ptree, TValue denv) ktail_eval(K, kcons(K, K->list_app, exprs), new_env); } +/* 6.7.6 $letrec* */ +/* TODO */ + /* Helper for $let-redirect */ void do_let_redirect(klisp_State *K, TValue *xparams, TValue obj) {