The enhanced-eval-when Reference Manual

Next: , Previous: , Up: (dir)   [Contents][Index]

The enhanced-eval-when Reference Manual

This is the enhanced-eval-when Reference Manual, version 1.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Aug 15 04:29:56 2022 GMT+0.

Table of Contents


1 Introduction

Project's home: http://www.hexstreamsoft.com/projects/enhanced-eval-when/


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. An
ENHANCED-EVAL-WHEN alias is also supported, as well as an EVAL-ALWAYS
macro and package nickname, for good measure.

As EVAL-WHEN with all situations specified is used an overwhelming
majority of the time by most users, these shorthands can really come
handy.


The recommended way to use enhanced-eval-when is to put
(:shadowing-import-from #:enhanced-eval-when #:eval-when) in one's
DEFPACKAGE.

For those who would object to such shadowing, two alternatives are:

(:import-from #:enhanced-eval-when #:enhanced-eval-when)
;; and
(:import-from #:eval-always #:eval-always)
;; The name used for ASDF is still enhanced-eval-when.

As always, it's also possible to fully qualify symbols instead, with:
enhanced-eval-when:eval-when
e-eval-when:eval-when
eval-always:eval-always

Don't (:use)!


This library is in the Public Domain.
See the UNLICENSE file for details.


2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 enhanced-eval-when

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. An ENHANCED-EVAL-WHEN alias is also supported, as well as an EVAL-ALWAYS macro and package nickname, for good measure.

Author

Jean-Philippe Paradis <hexstream@gmail.com>

License

Public Domain

Version

1.0

Source

enhanced-eval-when.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


3.1.1 enhanced-eval-when/enhanced-eval-when.asd

Source

enhanced-eval-when.asd.

Parent Component

enhanced-eval-when (system).

ASDF Systems

enhanced-eval-when.


3.1.2 enhanced-eval-when/package.lisp

Source

enhanced-eval-when.asd.

Parent Component

enhanced-eval-when (system).

Packages

enhanced-eval-when.


3.1.3 enhanced-eval-when/main.lisp

Dependency

package.lisp (file).

Source

enhanced-eval-when.asd.

Parent Component

enhanced-eval-when (system).

Public Interface
Internals

%expand (function).


4 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

4.1 enhanced-eval-when

Source

package.lisp.

Nicknames
  • eval-always
  • e-eval-when
Use List

common-lisp.

Public Interface
Internals

%expand (function).


5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Public Interface


5.1.1 Macros

Macro: enhanced-eval-when (situations &body body)
Package

enhanced-eval-when.

Source

main.lisp.

Macro: eval-always (&body body)
Package

enhanced-eval-when.

Source

main.lisp.

Macro: eval-when (situations &body body)
Package

enhanced-eval-when.

Source

main.lisp.


5.2 Internals


Previous: , Up: Internals   [Contents][Index]

5.2.1 Ordinary functions

Function: %expand (situations body)
Package

enhanced-eval-when.

Source

main.lisp.


Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts


Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables