* module/ice-9/eval.scm (primitive-eval): Set the name of
toplevel-defined functions.
(memoize-variable-access! exp #f))))
(('define (name . x))
- (define! name (eval x env)))
+ (let ((x (eval x env)))
+ (if (and (procedure? x) (not (procedure-property x 'name)))
+ (set-procedure-property! x 'name name))
+ (define! name x)))
(('toplevel-set! (var-or-sym . x))
(variable-set!
(eq? 'display (procedure-name display)))
(pass-if "gsubr"
- (eq? 'hashq-ref (procedure-name hashq-ref))))
+ (eq? 'hashq-ref (procedure-name hashq-ref)))
+
+ (pass-if "from eval"
+ (eq? 'foobar (procedure-name
+ (eval '(begin (define (foobar) #t) foobar)
+ (current-module))))))
\f
(with-test-prefix "procedure-arity"