~ chicken-core (chicken-5) 74005ce1fa9c95fe7998744b2e2f514cf42af80a
commit 74005ce1fa9c95fe7998744b2e2f514cf42af80a
Author: Peter Bex <peter.bex@xs4all.nl>
AuthorDate: Sat Jan 21 20:19:00 2012 +0100
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Mon Jan 23 05:48:34 2012 +0100
Improve performance by not using sprintf to build continuation nesting description in real-name
diff --git a/support.scm b/support.scm
index 38fa20c7..191ae7ce 100644
--- a/support.scm
+++ b/support.scm
@@ -1409,15 +1409,15 @@
(cond [(not rn) (##sys#symbol->qualified-string var)]
[(pair? db)
(let ([db (car db)])
- (let loop ([prev (##sys#symbol->qualified-string rn)]
+ (let loop ([nesting (list (##sys#symbol->qualified-string rn))]
[container (get db var 'contained-in)] )
(if container
(let ([rc (resolve container)])
(if (eq? rc container)
- prev
- (loop (sprintf "~A in ~A" prev rc)
+ (string-intersperse (reverse nesting) " in ")
+ (loop (cons (symbol->string rc) nesting)
(get db container 'contained-in) ) ) )
- prev) ) ) ]
+ (string-intersperse (reverse nesting) " in ")) ) ) ]
[else (##sys#symbol->qualified-string rn)] ) ) )
(define (real-name2 var db)
Trap