The hu.dwim.defclass-star Reference Manual

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

The hu.dwim.defclass-star Reference Manual

This is the hu.dwim.defclass-star Reference Manual, version 1.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Aug 15 04:47:30 2022 GMT+0.

Table of Contents


1 Introduction

hu.dwim.defclass-star

What

It's a DEFCLASS* macro for Common Lisp that helps to reduce the boilerplate when using CL:DEFMACRO.

Where

How

No surprises here, but it's worth mentioning that it's integrated with hu.dwim.def and ContextL.

Why

We wanted a more concise syntax, and make the expansion extensible (see e.g. *slot-definition-transformer*, *allowed-slot-definition-properties*, *accessor-name-transformer*, etc).

Status

Mature.


2 Systems

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


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

2.1 hu.dwim.defclass-star

Simplify class like definitions with defclass* and friends.

Authors

Tamás Borbély <tomi.borbely@gmail.com>
Attila Lendvai <attila.lendvai@gmail.com>
Levente Mészáros <levente.meszaros@gmail.com>

License

BSD or Bugroff

Version

1.0.0

Defsystem Dependency

hu.dwim.asdf (system).

Source

hu.dwim.defclass-star.asd.

Child Component

source (module).


3 Modules

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


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

3.1 hu.dwim.defclass-star/source

Source

hu.dwim.defclass-star.asd.

Parent Component

hu.dwim.defclass-star (system).

Child Components

4 Files

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


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

4.1 Lisp


4.1.1 hu.dwim.defclass-star/hu.dwim.defclass-star.asd

Source

hu.dwim.defclass-star.asd.

Parent Component

hu.dwim.defclass-star (system).

ASDF Systems

hu.dwim.defclass-star.


4.1.2 hu.dwim.defclass-star/source/package.lisp

Source

hu.dwim.defclass-star.asd.

Parent Component

source (module).

Packages

hu.dwim.defclass-star.


4.1.3 hu.dwim.defclass-star/source/duplicates.lisp

Dependency

package.lisp (file).

Source

hu.dwim.defclass-star.asd.

Parent Component

source (module).

Internals

4.1.4 hu.dwim.defclass-star/source/defclass-star.lisp

Dependency

duplicates.lisp (file).

Source

hu.dwim.defclass-star.asd.

Parent Component

source (module).

Public Interface
Internals

5 Packages

Packages are listed by definition order.


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

5.1 hu.dwim.defclass-star

Source

package.lisp.

Nickname

class*

Use List

common-lisp.

Public Interface
Internals

6 Definitions

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


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

6.1 Public Interface


Next: , Previous: , Up: Public Interface   [Contents][Index]

6.1.1 Special variables

Special Variable: *allowed-slot-definition-properties*

Holds a list of keywords that are allowed in slot definitions (:accessor and :initarg are implicitly included).

Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.


6.1.2 Macros

Macro: defclass* (name supers slots &rest options)
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Macro: defcondition* (name supers slots &rest options)
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Macro: make-name-transformer (&rest elements)

Return an accessor name transformer.
The unquoted ‘name’ symbol argument is substituted for the slot name. Class option examples:

:accessor-name-transformer (make-name-transformer "FOO-" name "-BAR")

Use the slot name directly:

:accessor-name-transformer (make-name-transformer name)

Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.


Previous: , Up: Public Interface   [Contents][Index]

6.1.3 Ordinary functions

Function: default-accessor-name-transformer (name definition)
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Function: default-initarg-name-transformer (name definition)
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Function: default-predicate-name-transformer (name &rest args)
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Function: default-slot-definition-transformer (slot-def)

Converts illegal (list foo) :type declarations into simple list declarations.

Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Function: dwim-accessor-name-transformer (name definition)
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.


6.2 Internals


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

6.2.1 Special variables

Special Variable: *accessor-name-package*

A package, or :slot-name means the home-package of the slot-name symbol and nil means *package*

Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Special Variable: *accessor-name-transformer*
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Special Variable: *accessor-names*
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Special Variable: *automatic-accessors-p*
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Special Variable: *automatic-initargs-p*
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Special Variable: *automatic-predicates-p*
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Special Variable: *export-accessor-names-p*
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Special Variable: *export-class-name-p*
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Special Variable: *export-predicate-name-p*
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Special Variable: *export-slot-names-p*
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Special Variable: *initarg-name-transformer*
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Special Variable: *predicate-name-transformer*

A function that takes the class name and its definition as argument.
Return the name of the predicate function.
The predicate function returns true when the argument is a type of the ‘name’ class.

Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Special Variable: *slot-definition-transformer*
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Special Variable: *slot-names*
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Special Variable: *symbols-to-export*
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.


6.2.2 Macros

Macro: enable-sharp-boolean-syntax ()

Copies *readtable* and enables #t and #f readers for t and nil in the copy.

Package

hu.dwim.defclass-star.

Source

duplicates.lisp.

Macro: remf-keywords (place &rest keywords)

Removes the properties identified by KEYWORDS from PLACE.

Package

hu.dwim.defclass-star.

Source

duplicates.lisp.


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

6.2.3 Ordinary functions

Function: %enable-sharp-boolean-syntax ()
Package

hu.dwim.defclass-star.

Source

duplicates.lisp.

Function: build-defclass-like-expansion (name supers slots options expansion-builder &key export-class-name export-accessor-names export-slot-names export-predicate-name predicate-name-transformer)
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Function: concatenate-symbol (&rest args)

Args are processed as parts of the result symbol with two exceptions except when a package is encountered then it is stored as the target package at intern.

Package

hu.dwim.defclass-star.

Source

duplicates.lisp.

Function: extract-options-into-bindings (options)
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Function: fully-qualified-symbol-name (symbol &key separator)
Package

hu.dwim.defclass-star.

Source

duplicates.lisp.

Function: integrated-export (symbol other-package)
Package

hu.dwim.defclass-star.

Source

duplicates.lisp.

Function: process-slot-definition (definition)
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Function: remove-keywords (plist &rest keywords)

Creates a copy of PLIST without the listed KEYWORDS.

Package

hu.dwim.defclass-star.

Source

duplicates.lisp.

Function: slot-name-package (name)
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Function: strcat (&rest string-designators)
Package

hu.dwim.defclass-star.

Source

duplicates.lisp.

Function: style-warn (datum &rest args)
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.


6.2.4 Conditions

Condition: hu.dwim.defclass-star-style-warning
Package

hu.dwim.defclass-star.

Source

defclass-star.lisp.

Direct superclasses
  • simple-condition.
  • style-warning.

Appendix A Indexes


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

A.1 Concepts


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

A.2 Functions

Jump to:   %  
B   C   D   E   F   I   M   P   R   S  
Index Entry  Section

%
%enable-sharp-boolean-syntax: Private ordinary functions

B
build-defclass-like-expansion: Private ordinary functions

C
concatenate-symbol: Private ordinary functions

D
default-accessor-name-transformer: Public ordinary functions
default-initarg-name-transformer: Public ordinary functions
default-predicate-name-transformer: Public ordinary functions
default-slot-definition-transformer: Public ordinary functions
defclass*: Public macros
defcondition*: Public macros
dwim-accessor-name-transformer: Public ordinary functions

E
enable-sharp-boolean-syntax: Private macros
extract-options-into-bindings: Private ordinary functions

F
fully-qualified-symbol-name: Private ordinary functions
Function, %enable-sharp-boolean-syntax: Private ordinary functions
Function, build-defclass-like-expansion: Private ordinary functions
Function, concatenate-symbol: Private ordinary functions
Function, default-accessor-name-transformer: Public ordinary functions
Function, default-initarg-name-transformer: Public ordinary functions
Function, default-predicate-name-transformer: Public ordinary functions
Function, default-slot-definition-transformer: Public ordinary functions
Function, dwim-accessor-name-transformer: Public ordinary functions
Function, extract-options-into-bindings: Private ordinary functions
Function, fully-qualified-symbol-name: Private ordinary functions
Function, integrated-export: Private ordinary functions
Function, process-slot-definition: Private ordinary functions
Function, remove-keywords: Private ordinary functions
Function, slot-name-package: Private ordinary functions
Function, strcat: Private ordinary functions
Function, style-warn: Private ordinary functions

I
integrated-export: Private ordinary functions

M
Macro, defclass*: Public macros
Macro, defcondition*: Public macros
Macro, enable-sharp-boolean-syntax: Private macros
Macro, make-name-transformer: Public macros
Macro, remf-keywords: Private macros
make-name-transformer: Public macros

P
process-slot-definition: Private ordinary functions

R
remf-keywords: Private macros
remove-keywords: Private ordinary functions

S
slot-name-package: Private ordinary functions
strcat: Private ordinary functions
style-warn: Private ordinary functions

Jump to:   %  
B   C   D   E   F   I   M   P   R   S  

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

A.3 Variables

Jump to:   *  
S  
Index Entry  Section

*
*accessor-name-package*: Private special variables
*accessor-name-transformer*: Private special variables
*accessor-names*: Private special variables
*allowed-slot-definition-properties*: Public special variables
*automatic-accessors-p*: Private special variables
*automatic-initargs-p*: Private special variables
*automatic-predicates-p*: Private special variables
*export-accessor-names-p*: Private special variables
*export-class-name-p*: Private special variables
*export-predicate-name-p*: Private special variables
*export-slot-names-p*: Private special variables
*initarg-name-transformer*: Private special variables
*predicate-name-transformer*: Private special variables
*slot-definition-transformer*: Private special variables
*slot-names*: Private special variables
*symbols-to-export*: Private special variables

S
Special Variable, *accessor-name-package*: Private special variables
Special Variable, *accessor-name-transformer*: Private special variables
Special Variable, *accessor-names*: Private special variables
Special Variable, *allowed-slot-definition-properties*: Public special variables
Special Variable, *automatic-accessors-p*: Private special variables
Special Variable, *automatic-initargs-p*: Private special variables
Special Variable, *automatic-predicates-p*: Private special variables
Special Variable, *export-accessor-names-p*: Private special variables
Special Variable, *export-class-name-p*: Private special variables
Special Variable, *export-predicate-name-p*: Private special variables
Special Variable, *export-slot-names-p*: Private special variables
Special Variable, *initarg-name-transformer*: Private special variables
Special Variable, *predicate-name-transformer*: Private special variables
Special Variable, *slot-definition-transformer*: Private special variables
Special Variable, *slot-names*: Private special variables
Special Variable, *symbols-to-export*: Private special variables

Jump to:   *  
S