The deoxybyte-systems Reference Manual

This is the deoxybyte-systems Reference Manual, version 1.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 16:16:49 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 deoxybyte-systems

Author

Keith James

License

New BSD

Version

1.0.0

Dependency

cl-fad (system)., at least version "0.6.2"

Source

deoxybyte-systems.asd.

Child Component

deoxybyte-systems (module).


3 Modules

Modules are listed depth-first from the system components tree.


3.1 deoxybyte-systems/deoxybyte-systems

Source

deoxybyte-systems.asd.

Parent Component

deoxybyte-systems (system).

Child Components

4 Files

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


4.1 Lisp


4.1.1 deoxybyte-systems/deoxybyte-systems.asd

Source

deoxybyte-systems.asd.

Parent Component

deoxybyte-systems (system).

ASDF Systems

deoxybyte-systems.


4.1.2 deoxybyte-systems/deoxybyte-systems/package.lisp

Source

deoxybyte-systems.asd.

Parent Component

deoxybyte-systems (module).

Packages

uk.co.deoxybyte-systems.


4.1.3 deoxybyte-systems/deoxybyte-systems/asdf-extensions.lisp

Dependency

package.lisp (file).

Source

deoxybyte-systems.asd.

Parent Component

deoxybyte-systems (module).

Public Interface
Internals

doc-op (class).


4.1.4 deoxybyte-systems/deoxybyte-systems/deoxybyte-systems.lisp

Dependency

asdf-extensions.lisp (file).

Source

deoxybyte-systems.asd.

Parent Component

deoxybyte-systems (module).

Public Interface

5 Packages

Packages are listed by definition order.


5.1 uk.co.deoxybyte-systems

The deoxybyte-systems system provides tools for
managing Common Lisp systems in batch mode and from the REPL. It provides convenient wrapper functions for ASDF operations and collects my ASDF extensions in one place, instead of copy-pasting them into the system definition files that need them. It does not add symbols to
the ASDF package.

This system is required by most of my other Common Lisp systems
because it supplies the unit test and documentation support (using
LIFT {http://common-lisp.net/project/lift/} and CLDOC {http://common-lisp.net/project/cldoc/} respectively.

This system requires ASDF 3 and will not function correctly with older ASDF versions. One new ASDF operation is provided by this system:

- cldoc-op: Runs CLDOC to extract docstrings in HTML format.

Two utility functions are provided to allow LIFT tests to be run and CLDOC documentation to be generated if LIFT and/or CLDOC are present, degrading gracefully if they are not.

To use these in an ASDF file, first load these extensions. One way to
do this is to use a method specific to your Lisp platform (e.g. Steel bank Common Lisp provides the .sbclrc file):

;;; (in-package :cl-user)
;;; (require ’asdf)
;;; (asdf:operate ’asdf:load-op :deoxybyte-systems)

Alternatively, the system can be loaded on demand by the ASDF file
that will use :deoxybyte-systems functions:

;;; (eval-when (:compile-toplevel :load-toplevel :execute)
;;; (when (asdf:find-system :deoxybyte-systems nil)
;;; (asdf:load-system :deoxybyte-systems)))

;;; or loaded unconditionally:

;;; (in-package :cl-user)
;;; (asdf:load-system :deoxybyte-systems)

Then use standard ASDF syntax to add new components:

;;; (defsystem example-system
;;; :name "Example system"
;;; :in-order-to ((test-op (load-op :example-system
;;; :example-system-test))
;;; (doc-op (load-op :cldoc)))
;;; :components ((:module :src
;;; :serial t
;;; :pathname "src/"
;;; :components ((:file "package.lisp")
;;; (:file "example.lisp")))
;;; :perform (test-op :after (op c)
;;; (maybe-run-lift-tests :example-system
;;; "example-lift-test.config")) ;;; :perform (doc-op :after (op c)
;;; (maybe-build-cldoc-docs :example-system "doc/html")))

To load a system:
;;; (dxs:load-system :example-system)

or the equivalent:
;;; (asdf:load-system :example-system)

To run tests:
;;; (dxs:test-system :example-system)

or the equivalent:
;;; (asdf:test-system :example-system)

To generate system documentation:
;;; (dxs:document-system :example-system)

Source

package.lisp.

Nicknames
  • deoxybyte-systems
  • dxs
Use List

common-lisp.

Public Interface
Internals

doc-op (class).


6 Definitions

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


6.1 Public Interface


6.1.1 Ordinary functions

Function: document-system (system &rest keys)

Extracts documentation from SYSTEM using ASDF and CLDOC.

Package

uk.co.deoxybyte-systems.

Source

deoxybyte-systems.lisp.

Function: load-system (system &rest keys)

Alias for ASDF:LOAD-SYSTEM.

Package

uk.co.deoxybyte-systems.

Source

deoxybyte-systems.lisp.

Function: maybe-build-cldoc-docs (system-name root-path)

When CLDOC is available, build HTML documentation for SYSTEM-NAME with TITLE .

Package

uk.co.deoxybyte-systems.

Source

asdf-extensions.lisp.

Function: maybe-run-lift-tests (system-name lift-config-filename)

When LIFT is available, run tests on SYSTEM-NAME using configuration in LIFT-CONFIG-FILENAME .

Package

uk.co.deoxybyte-systems.

Source

asdf-extensions.lisp.


6.2 Internals


6.2.1 Classes

Class: doc-op

An ASDF operation that extracts docstring documentation from Lisp code using CLDOC.

Package

uk.co.deoxybyte-systems.

Source

asdf-extensions.lisp.

Direct superclasses

operation.


Appendix A Indexes


A.1 Concepts


A.3 Variables