Some procedures (like console-output-port) did not get names when

printed (instead, they were just #<procedure>).  Names for
procedures that are defined like
  (define foo
    (let ([something ---]) 
      (lamdba () ---)))
now works.
This commit is contained in:
Abdulaziz Ghuloum 2008-06-18 22:47:56 -07:00
parent 1bd699349a
commit 4bb7e170b5
2 changed files with 16 additions and 14 deletions

View File

@ -293,19 +293,21 @@
[(case-lambda)
(let ([cls*
(map
(lambda (cls)
(let ([fml* (car cls)] [body (cadr cls)])
(let ([nfml* (gen-fml* fml*)])
(let ([body (E body #f)])
(ungen-fml* fml*)
(make-clambda-case
(make-case-info
(gensym)
(properize nfml*)
(list? fml*))
body)))))
(let ([ctxt (if (pair? ctxt) (car ctxt) #f)])
(lambda (cls)
(let ([fml* (car cls)] [body (cadr cls)])
(let ([nfml* (gen-fml* fml*)])
(let ([body (E body ctxt)])
(ungen-fml* fml*)
(make-clambda-case
(make-case-info
(gensym)
(properize nfml*)
(list? fml*))
body))))))
(cdr x))])
(make-clambda (gensym) cls* #f #f ctxt))]
(make-clambda (gensym) cls* #f #f
(and (symbol? ctxt) ctxt)))]
[(lambda)
(E `(case-lambda ,(cdr x)) ctxt)]
[(foreign-call)
@ -317,7 +319,7 @@
[else
(let ([names (get-fmls (car x) (cdr x))])
(make-funcall
(E (car x) #f)
(E (car x) (list ctxt))
(let f ([arg* (cdr x)] [names names])
(cond
[(pair? names)

View File

@ -1 +1 @@
1517
1518