From 0cc6af7235debd8c4d710d806ffd3a6fb40ebeb4 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Wed, 4 Apr 2018 06:53:29 -0700 Subject: compiler: don't add compile-time gensym into env. * share/txr/stdlib/compiler.tl (compiler comp-tree-case): The block name isn't a lexical variable; do not add it to nenv via extend-var. Just bind to gensym directly and insert where needed. This reduces the run-time frame size by one entry. --- share/txr/stdlib/compiler.tl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/share/txr/stdlib/compiler.tl b/share/txr/stdlib/compiler.tl index a4721448..a5fd9e0d 100644 --- a/share/txr/stdlib/compiler.tl +++ b/share/txr/stdlib/compiler.tl @@ -945,7 +945,7 @@ (nenv (new env up env co me)) (obj-immut-var (cdar nenv.(extend-var (gensym)))) (obj-var (cdar nenv.(extend-var (gensym)))) - (err-blk (cdar nenv.(extend-var (gensym)))) + (err-blk (gensym)) (lout (gensym "l")) (ctx-form ^',form) (err-form ^',(rlcp ^(,(car form)) form)) @@ -954,13 +954,13 @@ (cfrags (collect-each ((c cases) (i (range 1))) (mac-param-bind form (params . body) c - (let* ((src (expand ^(block ,err-blk.sym + (let* ((src (expand ^(block ,err-blk (set ,obj-var.sym ,obj-immut-var.sym) ,(expand-bind-mac-params ctx-form err-form params nil obj-var.sym : - err-blk.sym + err-blk body)))) (lerrtest (gensym "l")) (lnext (gensym "l")) -- cgit v1.2.3