~ 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