1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 19:50:24 +02:00

Eval has no more free variables

* module/ice-9/eval.scm (primitive-eval): Expand out the call to
  make-general-closure, so that make-general-closure becomes
  well-known.  Now eval has no more free variables!
This commit is contained in:
Andy Wingo 2014-04-13 14:22:22 +02:00
parent fcb31f2953
commit d0d8a552b4

View file

@ -508,9 +508,14 @@
(let ((proc
(if (null? tail)
(make-fixed-closure eval nreq body env)
(if (null? (cdr tail))
(make-rest-closure eval nreq body env)
(apply make-general-closure env body nreq tail)))))
(mx-bind
tail (rest? . tail)
(if (null? tail)
(make-rest-closure eval nreq body env)
(mx-bind
tail (nopt kw inits alt)
(make-general-closure env body nreq rest?
nopt kw inits alt)))))))
(let lp ((meta meta))
(unless (null? meta)
(set-procedure-property! proc (caar meta) (cdar meta))