From ed14348c088c2ed7c2f33cbca56b1749f6e71f61 Mon Sep 17 00:00:00 2001 From: Yuichi Nishiwaki Date: Sun, 7 Feb 2016 04:54:55 +0900 Subject: [PATCH] bugfixes --- contrib/20.r7rs/scheme/eval.scm | 2 +- extlib/benz/eval.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/contrib/20.r7rs/scheme/eval.scm b/contrib/20.r7rs/scheme/eval.scm index 7ffa7c5c..c914ad7d 100644 --- a/contrib/20.r7rs/scheme/eval.scm +++ b/contrib/20.r7rs/scheme/eval.scm @@ -9,7 +9,7 @@ (define (number->symbol n) (string->symbol (number->string n))) - (define (environment specs) + (define (environment . specs) (let ((library-name `(picrin @@my-environment ,(number->symbol counter)))) (inc! counter) (let ((lib (make-library library-name))) diff --git a/extlib/benz/eval.c b/extlib/benz/eval.c index 892f58ea..ca5e1c2d 100644 --- a/extlib/benz/eval.c +++ b/extlib/benz/eval.c @@ -889,18 +889,18 @@ pic_compile(pic_state *pic, pic_value obj) pic_value pic_eval(pic_state *pic, pic_value program, struct pic_lib *lib) { + struct pic_lib *prev_lib = pic->lib; pic_value r; + pic->lib = lib; pic_try { - pic->prev_lib = pic->lib; - pic->lib = lib; - r = pic_apply0(pic, pic_compile(pic, pic_expand(pic, program, lib->env))); } pic_catch { - pic->lib = pic->prev_lib; + pic->lib = prev_lib; pic_raise(pic, pic->err); } + pic->lib = prev_lib; return r; }