diff --git a/collects/mzlib/traceld.ss b/collects/mzlib/traceld.ss index 4dd5ac8..9347289 100644 --- a/collects/mzlib/traceld.ss +++ b/collects/mzlib/traceld.ss @@ -8,16 +8,30 @@ (fprintf (current-error-port) "~aloading ~a~n" tab filename) - (let ([s tab]) - (dynamic-wind - (lambda () (set! tab (string-append " " tab))) - (lambda () - (if (regexp-match "_loader" filename) - (let ([f (load filename)]) - (lambda (sym) - (printf "~atrying ~a~n" tab sym) - (f sym))) - (load filename))) - (lambda () (set! tab s))))))]) + (begin0 + (let ([s tab]) + (dynamic-wind + (lambda () (set! tab (string-append " " tab))) + (lambda () + (if (regexp-match "_loader" filename) + (let ([f (load filename)]) + (lambda (sym) + (fprintf (current-error-port) + "~atrying ~a~n" tab sym) + (let ([loader (f sym)]) + (and loader + (lambda () + (fprintf (current-error-port) + "~astarting ~a~n" tab sym) + (begin0 + (time (loader)) + (fprintf (current-error-port) + "~adone ~a~n" + tab sym))))))) + (time (load filename)))) + (lambda () (set! tab s)))) + (fprintf (current-error-port) + "~adone ~a~n" + tab filename))))]) (current-load (mk-chain load)) (current-load-extension (mk-chain load-extension))))