CDR 9: File-local variables

Author / Submitter

Didier Verna

Abstract / Rationale

The Common Lisp standard defines two special variables, *PACKAGE* and *READTABLE*, that are treated in a special way: the functions LOAD and COMPILE-FILE establish a new dynamic binding for each of them, so that any modification to their value at load or compile time becomes local to the file being processed.

We argue that this "file-local" behavior could be useful for user-defined variables as well, and we propose a simple mechanism that Common Lisp vendors could implement in order to make the functionality programmatically accessible.

The Document