global-vars
Define efficient global variables in Common Lisp.

Repository: https://github.com/lmj/global-vars

Synopsis

;; Similar to defparameter with regard to redefinitions (define-global-parameter -x- 3) ;; Similar to defvar with regard to redefinitions (define-global-var -y- 4) ;; ... (setf -x- 5) (setf -y- 6)

Description

In Common Lisp, a special variable that is never dynamically bound typically serves as a stand-in for a global variable. The global-vars library provides true global variables that are implemented by some compilers. An attempt to rebind a global variable properly results in a compiler error. That is, a global variable cannot be dynamically bound.

Global variables therefore allow us to communicate an intended usage that differs from special variables. Global variables are also more efficient than special variables, especially in the presence of threads.


compatibility layers, MIT-LICENSE