4 ms·
Adding to what db48x said, the CL standard dictates what goes into the "COMMON-LISP" package (abbreviated "CL"), but also allows implementation specific additio
by jlarocco 2y ago
Adding to what db48x said, the CL standard dictates what goes into the "COMMON-LISP" package (abbreviated "CL"), but also allows implementation specific additions as long as they're put in their own packages. Over time the different implementations have added similar functionality but with different APIs and in different packages. The "trivial-" prefix is a naming convention for third party (not a compiler vendor) packages that wrap those implementation specific system libraries to provide the same API everywhere. Usually these are implemented as macros or functions simple enough to get inlined and not have much overhead.
In this case, the standard only requires high level functions "inspect" and "describe", but most implementations have packages (SBCL provides a "sb-introspect") to get more detail.
It's generally done for things like threading, garbage collection settings, CFFI, etc. that would be difficult to implement outside of the compiler or runtime.