This is the trivial-inspect Reference Manual, version 0.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Fri May 15 13:08:27 2026 GMT+0.
The main system appears first, followed by any subsystem dependency.
trivial-inspectPortable toolkit for interactive inspectors.
Artyom Bologov
(GIT https://codeberg.org/aartaka/trivial-inspect.git)
BSD-2 Clause
0.0.0
trivial-arguments (system).
package.lisp (file).
fields.lisp (file).
description.lisp (file).
Files are sorted by type and then listed depth-first from the systems components trees.
trivial-inspect/trivial-inspect.asdtrivial-inspect/package.lisptrivial-inspect/fields.lisptrivial-inspect/description.lisptrivial-inspect/trivial-inspect.asdtrivial-inspect (system).
trivial-inspect/fields.lisppackage.lisp (file).
trivial-inspect (system).
*function-lambda-expression-fn* (special variable).
fields (generic function).
*documentation-fn* (special variable).
-> (macro).
all-symbols (function).
deffield (macro).
deffields (macro).
dotted-p (function).
except-sbcl-props (function).
external-symbols (function).
field-indices (function).
function-closure-p (function).
id (function).
inherited-symbols (function).
inspect-slots (function).
internal-symbols (function).
object-slots (function).
restart-interactive (function).
reverse-append-index (function).
reverse-append-index (method combination).
sbcl-props-to-ignore (special variable).
scalar-p (function).
symbol-visibility (function).
trivial-inspect/description.lispfields.lisp (file).
trivial-inspect (system).
description (generic function).
object-description (function).
Packages are listed by definition order.
trivial-inspect‘trivial-inspect’ provides building blocks for interactive inspectors.
Two main functions it exports are:
- ‘fields’ to get a list of inspect fields for an object.
- ‘description’ for a concise description of an object to stream.
common-lisp.
*function-lambda-expression-fn* (special variable).
description (generic function).
fields (generic function).
*documentation-fn* (special variable).
-> (macro).
all-symbols (function).
deffield (macro).
deffields (macro).
dotted-p (function).
except-sbcl-props (function).
external-symbols (function).
field-indices (function).
function-closure-p (function).
id (function).
inherited-symbols (function).
inspect-slots (function).
internal-symbols (function).
object-description (function).
object-slots (function).
restart-interactive (function).
reverse-append-index (function).
reverse-append-index (method combination).
sbcl-props-to-ignore (special variable).
scalar-p (function).
symbol-visibility (function).
Definitions are sorted by export status, category, package, and then by lexicographic order.
The function to use in place of ‘function-lambda-expression’ (FLE). Because implementation specific FLE often is quite useless.
Print human-readable description of OBJECT to STREAM.
Methods should include the most useful information and things that are
not suitable for the ‘fields’ key-value format.
(trivial-inspect:description t t)
;; Boolean T (external to COMMON-LISP) [bound] [class]
(trivial-inspect:description nil t)
;; Null NIL (external to COMMON-LISP) [bound]
(trivial-inspect:description 65536 t)
;; Integer 65536 (17 bits):
;; #b10000000000000000, #o200000, #x10000
;; Universal time: 21:10:16 Jan 1st, year 1900.
(trivial-inspect:description *readtable* t)
;; Readtable #<READTABLE {120003C463}>
;; A READTABLE is a data structure that maps characters into syntax
;; types for the Common Lisp expression reader.
(trivial-inspect:description (find-class ’standard-object) t)
;; Standard-class #<STANDARD-CLASS COMMON-LISP:STANDARD-OBJECT>
(defparameter *aespa* (make-hash-table :test ’equalp))
(setf (gethash "KARINA" *aespa*) "Rocket puncher"
(gethash "WINTER" *aespa*) "Armamenter"
(gethash "GISELLE" *aespa*) "Xenoglossy"
(gethash "NINGNING" *aespa*) "E.D. hacker")
(trivial-inspect:description *aespa* t)
;; Hash-table [EQUALP, 4/7]
;; (("KARINA" "Rocket punch") ("WINTER" "Weapons") ("GISELLE" "Seize the moment") ("NINGNING" "Hacking"))
structure-object) &optional stream) ¶standard-object) &optional stream) ¶function) &optional stream) ¶pathname) &optional stream) ¶stream) &optional stream) ¶array) &optional stream) ¶hash-table) &optional stream) ¶condition) &optional stream) ¶restart) &optional stream) ¶package) &optional stream) ¶cons) &optional stream) ¶character) &optional stream) ¶complex) &optional stream) ¶ratio) &optional stream) ¶float) &optional stream) ¶integer) &optional stream) ¶symbol) &optional stream) ¶Return a list of OBJECT fields to inspect.
Every property is a list of (INDEX NAME VALUE &optional SETTER) lists, where
- INDEX is an integer showing the index by which to choose
property. Non-trivial, because sequences have their own indices
interfering with simple incrementing indices for inspect fields.
- NAME is a thing (preferably symbol) naming the property.
- VALUE is the contents of the property.
- And SETTER is a function of two arguments (new-value old-value) to
modify the property. For slots, this setter will likely be setting the
‘slot-value’.
Annotated exemplary case:
(fields #("one" "two" "three")
=>
((3 :self #("one" "two" "three"))
(4 :id 77396508623)
;; Fields are type-specific and often match CL function/accessor names
(5 class-of #<built-in-class common-lisp:simple-vector> nil)
(6 type-of (simple-vector 3))
(7 length 3)
(8 array-dimensions (3) nil)
(9 array-rank 1)
(10 array-element-type t)
(11 upgraded-array-element-type t)
;; In case of sequences and other integer-indexed structures, these numbers go first
;; Field indices are filling in the gaps (see above, :self starting at 3)
(0 0 "one" #<function (lambda (new-value _) :in fields) {120563C56B}>)
;; For many fields, there are setter functions provided.
(1 1 "two" #<function (lambda (new-value _) :in fields) {120563C58B}>)
(2 2 "three" #<function (lambda (new-value _) :in fields) {120563C5AB}>))
:most-specific-first
structure-object) &key &allow-other-keys) ¶standard-object) &key &allow-other-keys) ¶fdefn) &key &allow-other-keys) ¶weak-pointer) &key &allow-other-keys) ¶code-component) &key &allow-other-keys) ¶type-error) &key &allow-other-keys) ¶file-error) &key &allow-other-keys) ¶unbound-slot) &key &allow-other-keys) ¶print-not-readable) &key &allow-other-keys) ¶stream-error) &key &allow-other-keys) ¶package-error) &key &allow-other-keys) ¶cell-error) &key &allow-other-keys) ¶arithmetic-error) &key &allow-other-keys) ¶simple-condition) &key &allow-other-keys) ¶condition) &key &allow-other-keys) ¶restart) &key &allow-other-keys) ¶generic-function) &key &allow-other-keys) ¶function) &key &allow-other-keys) ¶stream) &key &allow-other-keys) ¶file-stream) &key &allow-other-keys) ¶synonym-stream) &key &allow-other-keys) ¶broadcast-stream) &key &allow-other-keys) ¶concatenated-stream) &key &allow-other-keys) ¶echo-stream) &key &allow-other-keys) ¶two-way-stream) &key &allow-other-keys) ¶hash-table) &key &allow-other-keys) ¶pathname) &key &allow-other-keys) ¶logical-pathname) &key &allow-other-keys) ¶array) &key &allow-other-keys) ¶string) &key &allow-other-keys) ¶character) &key &allow-other-keys) ¶random-state) &key &allow-other-keys) ¶readtable) &key &allow-other-keys) ¶package) &key &allow-other-keys) ¶integer) &key &allow-other-keys) ¶float) &key &allow-other-keys) ¶ratio) &key &allow-other-keys) ¶complex) &key &allow-other-keys) ¶cons) &key &allow-other-keys) ¶sequence) &key &allow-other-keys) ¶symbol) &key &allow-other-keys) ¶An (OBJECT DOC-TYPE) function to use instead of standard ‘documentation’.
Shorter ftype declaration for NAME.
Map integer indices to every property in FIELDS. Implies that FIELDS have a (KEY VALUE . ARGS) structure Non-trivial, because some of the FIELDS have integer keys.
Return true if OBJECT is of one of the following types:
- symbol,
- character,
- string,
- non-complex number.
reverse-append-index (function).
t
| Jump to: | -
A D E F G I M O R S |
|---|
| Jump to: | -
A D E F G I M O R S |
|---|
| Jump to: | *
S |
|---|
| Jump to: | *
S |
|---|
| Jump to: | D F P S T |
|---|
| Jump to: | D F P S T |
|---|