From 1ce1277d1e566c03869dc16f0dcbc246cb509c80 Mon Sep 17 00:00:00 2001 From: Jay McCarthy Date: Thu, 29 Mar 2012 18:50:51 -0600 Subject: [PATCH] Set the name statically re: Robby --- collects/web-server/lang/closure.rkt | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/collects/web-server/lang/closure.rkt b/collects/web-server/lang/closure.rkt index 508415ec15..22795bd85d 100644 --- a/collects/web-server/lang/closure.rkt +++ b/collects/web-server/lang/closure.rkt @@ -1,5 +1,6 @@ #lang racket (require syntax/free-vars + racket/syntax (for-template racket/base racket/serialize) @@ -61,6 +62,8 @@ ;; Directory for last-ditch resolution -------------------- (or (current-load-relative-directory) (current-directory)))))) ; Define the closure struct (req serialize info value) + (define fun-name + (or (syntax-local-name) (generate-temporary))) (define-values (make-CLOSURE-id CLOSURE?-id CLOSURE-env-id CLOSURE-set-env!-id) (apply @@ -77,14 +80,16 @@ #f ; auto-v ; prop-vals: - (list (cons prop:serializable #,CLOSURE:serialize-info-id) - (cons prop:procedure - (make-keyword-procedure - (lambda (kws kw-vals clsr . rst) - (let-values ([#,fvars ((CLOSURE-ref clsr 0))]) - (keyword-apply (procedure-rename #,stx '#,(syntax-local-name)) - kws kw-vals - rst)))))) + (list + (cons prop:serializable #,CLOSURE:serialize-info-id) + (cons prop:procedure + (make-keyword-procedure + (lambda (kws kw-vals clsr . rst) + (let-values ([#,fvars ((CLOSURE-ref clsr 0))]) + (let ([#,fun-name #,stx]) + (keyword-apply #,fun-name + kws kw-vals + rst))))))) #f ; inspector