~ 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