Non-relocating garbage collectors do not move heap allocated data during collection. This means that only a small amount of work is done during each collection, which reduces delays. It can be used directly by C programmers without using the rest of Eclipse. Care must be taken when calling certain operating system utilities from C code, because they sometimes use incompatible malloc-like utilities internally. When a program or user loads a Lisp file into any Lisp implementation, the system creates the literal data, initializes it, and executes the top level code.
C provides no similar mechanism.
It also generates one extra C function, taking no arguments and returning no value. Calling this function is semantically equivalent to loading the corresponding Lisp file. The next line is not needed in most applications. The closures of top-level functions are stored in the symbols. Any necessary environment hooks for these closures are initialized.