License: Public Domain , Load it with Quicklisp: (ql:quickload "enhanced-eval-when")
Library type: Wrapper macro , Project complexity: Embarrassingly trivial

enhanced-eval-when provides an enhanced eval-when macro that supports
(eval-when t ...) as a shorthand for
(eval-when (:compile-toplevel :load-toplevel :execute) ...),
addressing concerns about verbosity.

As eval-when with all situations specified is used an overwhelming majority
of the time by most users, this shorthand can really come handy!


Dictionary » enhanced-eval-when

Package enhanced-eval-when


Simply (:shadowing-import-from #:enhanced-eval-when #:eval-when) from your defpackage. Don't (:use)!

Dictionary » eval-when

Macro eval-when

situations &body body => results

Arguments and Values

  • situations -- A list of symbols, or the symbol t.
  • body -- An implicit progn.
  • results -- The values of body if it's executed or nil if not.


Directly expands to a standard eval-when with the same arguments,
except if situations is t, then the equivalent parameter will be the list (:compile-toplevel :load-toplevel :execute).