This library does not define any procedures or syntax. Instead, trace.ss is loaded (or the signed unit returned by tracer.ss is invoked) 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. The handlers are set in the current parameterization when trace.ss is loaded (or the signed unit from tracer.ss is invoked), and the trace output will printed to the current error port of that parameterization.
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), 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.