mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 11:40:18 +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:
parent
fcb31f2953
commit
d0d8a552b4
1 changed files with 8 additions and 3 deletions
|
@ -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))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue