The enhanced-defclass Reference Manual

This is the enhanced-defclass Reference Manual, version 2.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 16:21:24 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 enhanced-defclass

Provides a truly extensible version of DEFCLASS that can accurately control the expansion according to the metaclass and automatically detect the suitable metaclass by analyzing the DEFCLASS form.

Author

Jean-Philippe Paradis <>

License

Unlicense

Version

2.1

Dependencies
  • closer-mop (system).
  • evaled-when (system).
  • simple-guess (system).
  • shared-preferences (system).
  • compatible-metaclasses (system).
  • enhanced-eval-when (system).
  • enhanced-find-class (system).
Source

enhanced-defclass.asd.

Child Components

3 Files

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


3.1 Lisp


3.1.1 enhanced-defclass/enhanced-defclass.asd

Source

enhanced-defclass.asd.

Parent Component

enhanced-defclass (system).

ASDF Systems

enhanced-defclass.


3.1.2 enhanced-defclass/package.lisp

Source

enhanced-defclass.asd.

Parent Component

enhanced-defclass (system).

Packages

enhanced-defclass.


3.1.3 enhanced-defclass/preferences.lisp

Dependency

package.lisp (file).

Source

enhanced-defclass.asd.

Parent Component

enhanced-defclass (system).

Public Interface

3.1.4 enhanced-defclass/guess-metaclass.lisp

Dependency

preferences.lisp (file).

Source

enhanced-defclass.asd.

Parent Component

enhanced-defclass (system).

Public Interface
Internals

3.1.5 enhanced-defclass/autoclass.lisp

Dependency

guess-metaclass.lisp (file).

Source

enhanced-defclass.asd.

Parent Component

enhanced-defclass (system).

Public Interface
Internals

3.1.6 enhanced-defclass/canonicalize.lisp

Dependency

autoclass.lisp (file).

Source

enhanced-defclass.asd.

Parent Component

enhanced-defclass (system).

Public Interface
Internals

3.1.7 enhanced-defclass/main.lisp

Dependency

canonicalize.lisp (file).

Source

enhanced-defclass.asd.

Parent Component

enhanced-defclass (system).

Public Interface
Internals

4 Packages

Packages are listed by definition order.


4.1 enhanced-defclass

Source

package.lisp.

Use List

common-lisp.

Public Interface
Internals

5 Definitions

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


5.1 Public Interface


5.1.1 Macros

Macro: defclass (name direct-superclasses direct-slots &rest options)
Package

enhanced-defclass.

Source

main.lisp.


5.1.2 Generic functions

Generic Function: canonicalize-initargs (metaclass-prototype &rest initargs)
Package

enhanced-defclass.

Source

canonicalize.lisp.

Methods
Method: canonicalize-initargs ((metaclass-prototype standard-class) &rest initargs)
Generic Function: canonicalize-slot-specification (metaclass-prototype spec)
Package

enhanced-defclass.

Source

canonicalize.lisp.

Methods
Method: canonicalize-slot-specification ((metaclass-prototype standard-class) spec)
Generic Function: check-superclasses-p (class)
Package

enhanced-defclass.

Source

autoclass.lisp.

Methods
Reader Method: check-superclasses-p ((standard-autoclass standard-autoclass))

automatically generated reader method

Target Slot

%check-superclasses-p.

Method: check-superclasses-p ((class class))
Generic Reader: class-options (object)
Package

enhanced-defclass.

Methods
Reader Method: class-options ((standard-autoclass standard-autoclass))

automatically generated reader method

Source

autoclass.lisp.

Target Slot

%class-options.

Generic Function: compute-class-options (class-prototype)
Package

enhanced-defclass.

Source

autoclass.lisp.

Method Combination

nconc.

Options

:most-specific-first

Methods
Method: compute-class-options nconc ((class-prototype class))
Generic Function: compute-slot-options (class-prototype)
Package

enhanced-defclass.

Source

autoclass.lisp.

Method Combination

nconc.

Options

:most-specific-first

Methods
Method: compute-slot-options nconc ((class-prototype class))
Generic Function: default-metaclass-advisor (preferences)
Package

enhanced-defclass.

Source

preferences.lisp.

Methods
Method: default-metaclass-advisor ((default null))
Source

guess-metaclass.lisp.

Reader Method: default-metaclass-advisor ((preferences preferences))

automatically generated reader method

Target Slot

%default-metaclass-advisor.

Generic Function: default-metaclass-manager (preferences)
Package

enhanced-defclass.

Source

preferences.lisp.

Methods
Method: default-metaclass-manager ((default null))
Source

guess-metaclass.lisp.

Reader Method: default-metaclass-manager ((preferences preferences))

automatically generated reader method

Target Slot

%default-metaclass-manager.

Generic Function: make-initargs-canonicalizer (metaclass-prototype)
Package

enhanced-defclass.

Source

canonicalize.lisp.

Methods
Method: make-initargs-canonicalizer ((metaclass-prototype standard-class))
Generic Function: make-slot-initargs-canonicalizer (metaclass-prototype)
Package

enhanced-defclass.

Source

canonicalize.lisp.

Methods
Method: make-slot-initargs-canonicalizer ((metaclass-prototype standard-class))
Generic Function: passthroughp (metaclass-prototype name direct-superclasses direct-slots env)
Package

enhanced-defclass.

Source

main.lisp.

Methods
Method: passthroughp ((prototype standard-class) name direct-superclasses direct-slots env)
Generic Reader: slot-options (object)
Package

enhanced-defclass.

Methods
Reader Method: slot-options ((standard-autoclass standard-autoclass))

automatically generated reader method

Source

autoclass.lisp.

Target Slot

%slot-options.


5.1.3 Standalone methods

Method: finalize-inheritance :after ((class standard-autoclass))
Package

sb-mop.

Source

autoclass.lisp.

Method: inquire ((manager metaclass-manager) (class standard-autoclass) &rest initargs &key direct-superclasses direct-slots metaclass-strategy)
Package

simple-guess.

Source

autoclass.lisp.


5.1.4 Classes

Class: autoclass
Package

enhanced-defclass.

Source

autoclass.lisp.

Direct superclasses

standard-class.

Direct subclasses

standard-autoclass.

Class: metaclass-manager
Package

enhanced-defclass.

Source

guess-metaclass.lisp.

Direct superclasses

manager.

Direct subclasses

standard-metaclass-manager.

Direct methods

inquire.

Class: preferences
Package

enhanced-defclass.

Source

preferences.lisp.

Direct superclasses

standard-preferences.

Direct methods
Direct slots
Slot: %default-metaclass-manager
Initargs

enhanced-defclass:default-metaclass-manager

Readers

default-metaclass-manager.

Writers

This slot is read-only.

Slot: %default-metaclass-advisor
Initargs

enhanced-defclass:default-metaclass-advisor

Readers

default-metaclass-advisor.

Writers

This slot is read-only.

Class: standard-autoclass
Package

enhanced-defclass.

Source

autoclass.lisp.

Direct superclasses

autoclass.

Direct methods
Direct slots
Slot: %slot-options
Type

list

Readers

slot-options.

Writers

This slot is read-only.

Slot: %class-options
Type

list

Readers

class-options.

Writers

This slot is read-only.

Slot: %check-superclasses-p
Type

boolean

Readers

check-superclasses-p.

Writers

This slot is read-only.


5.2 Internals


5.2.1 Special variables

Special Variable: *%autoclass-name-to-prototype*
Package

enhanced-defclass.

Source

autoclass.lisp.

Special Variable: *metaclass-advisor*
Package

enhanced-defclass.

Source

guess-metaclass.lisp.

Special Variable: *metaclass-manager*
Package

enhanced-defclass.

Source

guess-metaclass.lisp.


5.2.2 Macros

Macro: %declare-class-metaclass (class-name metaclass-name)
Package

enhanced-defclass.

Source

autoclass.lisp.


5.2.3 Ordinary functions

Function: %%declare-class-metaclass (class-name metaclass-name)
Package

enhanced-defclass.

Source

autoclass.lisp.

Function: %advising-package (name)
Package

enhanced-defclass.

Source

guess-metaclass.lisp.

Function: %determine-metaclass (name direct-superclasses direct-slots options &optional env default-metaclass)
Package

enhanced-defclass.

Source

main.lisp.

Function: %every-other (function)
Package

enhanced-defclass.

Source

canonicalize.lisp.

Function: %extract-metaclass (options &optional env)
Package

enhanced-defclass.

Source

main.lisp.

Function: %generate-compile-time-defclass (metaclass name direct-superclasses direct-slots)
Package

enhanced-defclass.

Source

main.lisp.

Function: %guess-metaclass (raw-initargs &optional preferences)
Package

enhanced-defclass.

Source

guess-metaclass.lisp.

Function: %mappc (function plist)
Package

enhanced-defclass.

Source

canonicalize.lisp.

Function: %mappcon (function plist)
Package

enhanced-defclass.

Source

canonicalize.lisp.


5.2.4 Classes

Class: standard-metaclass-manager
Package

enhanced-defclass.

Source

guess-metaclass.lisp.

Direct superclasses

metaclass-manager.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %  
C   D   F   G   I   M   P   S  
Index Entry  Section

%
%%declare-class-metaclass: Private ordinary functions
%advising-package: Private ordinary functions
%declare-class-metaclass: Private macros
%determine-metaclass: Private ordinary functions
%every-other: Private ordinary functions
%extract-metaclass: Private ordinary functions
%generate-compile-time-defclass: Private ordinary functions
%guess-metaclass: Private ordinary functions
%mappc: Private ordinary functions
%mappcon: Private ordinary functions

C
canonicalize-initargs: Public generic functions
canonicalize-initargs: Public generic functions
canonicalize-slot-specification: Public generic functions
canonicalize-slot-specification: Public generic functions
check-superclasses-p: Public generic functions
check-superclasses-p: Public generic functions
check-superclasses-p: Public generic functions
class-options: Public generic functions
class-options: Public generic functions
compute-class-options: Public generic functions
compute-class-options: Public generic functions
compute-slot-options: Public generic functions
compute-slot-options: Public generic functions

D
default-metaclass-advisor: Public generic functions
default-metaclass-advisor: Public generic functions
default-metaclass-advisor: Public generic functions
default-metaclass-manager: Public generic functions
default-metaclass-manager: Public generic functions
default-metaclass-manager: Public generic functions
defclass: Public macros

F
finalize-inheritance: Public standalone methods
Function, %%declare-class-metaclass: Private ordinary functions
Function, %advising-package: Private ordinary functions
Function, %determine-metaclass: Private ordinary functions
Function, %every-other: Private ordinary functions
Function, %extract-metaclass: Private ordinary functions
Function, %generate-compile-time-defclass: Private ordinary functions
Function, %guess-metaclass: Private ordinary functions
Function, %mappc: Private ordinary functions
Function, %mappcon: Private ordinary functions

G
Generic Function, canonicalize-initargs: Public generic functions
Generic Function, canonicalize-slot-specification: Public generic functions
Generic Function, check-superclasses-p: Public generic functions
Generic Function, class-options: Public generic functions
Generic Function, compute-class-options: Public generic functions
Generic Function, compute-slot-options: Public generic functions
Generic Function, default-metaclass-advisor: Public generic functions
Generic Function, default-metaclass-manager: Public generic functions
Generic Function, make-initargs-canonicalizer: Public generic functions
Generic Function, make-slot-initargs-canonicalizer: Public generic functions
Generic Function, passthroughp: Public generic functions
Generic Function, slot-options: Public generic functions

I
inquire: Public standalone methods

M
Macro, %declare-class-metaclass: Private macros
Macro, defclass: Public macros
make-initargs-canonicalizer: Public generic functions
make-initargs-canonicalizer: Public generic functions
make-slot-initargs-canonicalizer: Public generic functions
make-slot-initargs-canonicalizer: Public generic functions
Method, canonicalize-initargs: Public generic functions
Method, canonicalize-slot-specification: Public generic functions
Method, check-superclasses-p: Public generic functions
Method, check-superclasses-p: Public generic functions
Method, class-options: Public generic functions
Method, compute-class-options: Public generic functions
Method, compute-slot-options: Public generic functions
Method, default-metaclass-advisor: Public generic functions
Method, default-metaclass-advisor: Public generic functions
Method, default-metaclass-manager: Public generic functions
Method, default-metaclass-manager: Public generic functions
Method, finalize-inheritance: Public standalone methods
Method, inquire: Public standalone methods
Method, make-initargs-canonicalizer: Public generic functions
Method, make-slot-initargs-canonicalizer: Public generic functions
Method, passthroughp: Public generic functions
Method, slot-options: Public generic functions

P
passthroughp: Public generic functions
passthroughp: Public generic functions

S
slot-options: Public generic functions
slot-options: Public generic functions


A.4 Data types

Jump to:   A   C   E   F   G   M   P   S  
Index Entry  Section

A
autoclass: Public classes
autoclass.lisp: The enhanced-defclass/autoclass․lisp file

C
canonicalize.lisp: The enhanced-defclass/canonicalize․lisp file
Class, autoclass: Public classes
Class, metaclass-manager: Public classes
Class, preferences: Public classes
Class, standard-autoclass: Public classes
Class, standard-metaclass-manager: Private classes

E
enhanced-defclass: The enhanced-defclass system
enhanced-defclass: The enhanced-defclass package
enhanced-defclass.asd: The enhanced-defclass/enhanced-defclass․asd file

F
File, autoclass.lisp: The enhanced-defclass/autoclass․lisp file
File, canonicalize.lisp: The enhanced-defclass/canonicalize․lisp file
File, enhanced-defclass.asd: The enhanced-defclass/enhanced-defclass․asd file
File, guess-metaclass.lisp: The enhanced-defclass/guess-metaclass․lisp file
File, main.lisp: The enhanced-defclass/main․lisp file
File, package.lisp: The enhanced-defclass/package․lisp file
File, preferences.lisp: The enhanced-defclass/preferences․lisp file

G
guess-metaclass.lisp: The enhanced-defclass/guess-metaclass․lisp file

M
main.lisp: The enhanced-defclass/main․lisp file
metaclass-manager: Public classes

P
Package, enhanced-defclass: The enhanced-defclass package
package.lisp: The enhanced-defclass/package․lisp file
preferences: Public classes
preferences.lisp: The enhanced-defclass/preferences․lisp file

S
standard-autoclass: Public classes
standard-metaclass-manager: Private classes
System, enhanced-defclass: The enhanced-defclass system