From 2b1cd52fd85ebea924717a8d758288577970237a Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Thu, 11 Jul 2013 15:29:50 +0200 Subject: Fix LET*. --- sb-eval2.lisp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/sb-eval2.lisp b/sb-eval2.lisp index 371a51b..763b3fc 100644 --- a/sb-eval2.lisp +++ b/sb-eval2.lisp @@ -32,9 +32,13 @@ (defun make-null-context () (%make-context :block-tags nil)) (defun make-context (parent-context) - (with-slots (block-tags) + (with-slots (block-tags go-tags symbol-macros macros lexicals) parent-context - (%make-context :block-tags block-tags))) + (%make-context :block-tags block-tags + :go-tags go-tags + :symbol-macros symbol-macros + :macros macros + :lexicals lexicals))) (defun context-add-block-tag (context block tag) (let ((new-context (make-context context))) (with-slots (block-tags) @@ -274,7 +278,7 @@ (more (prepare-let* rest-bindings new-context))) (lambda (env) (let ((new-env (make-environment env))) - (push `(,var . ,val) (environment-variables new-env)) + (push `(,var . ,(funcall val env)) (environment-variables new-env)) (funcall more new-env)))))))) (prepare-let* bindings context)))) ((locally) -- cgit v1.2.3