#
Chapter 48
`traceld.ss`: Tracing File Loads

To load: `(require (lib "traceld.ss"))`

This library does not define any procedures or syntax. Instead, `traceld.ss` is imported at the top-level for its side-effects. The trace library installs a new load handler and load extension handler to print information about the files that are loaded. These handlers chain to the current handlers to perform the actual loads. Trace output is printed to the port that is the current error port when the library is loaded.

Before a file is loaded, the tracer prints the file name and ``time'' (as reported by the procedure `current-process-milliseconds`) when the load starts. Trace information for nested loads is printed with indentation. After the file is loaded, the file name is printed with the ``time'' that the load completed.

If a `_loader` extension is loaded (see section 14.1 in PLT MzScheme: Language Manual), the tracer wraps the returned loader procedure to print information about libraries requested from the loader. When a library is found in the loader, the thunk procedure that extracts the library is wrapped to print the start and end times of the extraction.