The metap Reference Manual

Table of Contents

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

The metap Reference Manual

This is the metap Reference Manual, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 12:16:11 2018 GMT+0.


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

1 Introduction

Metap

Metap provides metaclass propagation along class inheritance structure. Metap uses closer-mop and changes

so it could conflicts with other library modifing same method.

Motivation

You got some idea which use metaclass like

(defclass some-meta-class (standard-class) ())
(defmethod something1 ((class some-meta-class) ...) ...)
(defmethod something2 ((class some-meta-class) ...) ...)

and use this for some classes like

(defclass some-class1 () () (:metaclass 'some-meta-class))
(defclass some-class2 (some-class1) () (:metaclass 'some-meta-class))
(defclass some-class3 (some-class2) () (:metaclass 'some-meta-class))
(defclass some-class4 (some-class1) () (:metaclass 'some-meta-class))
... :metaclass :metaclass :metaclass :metaclass

This is boring. Using metap, it can simply be written like

(defclass some-mixin () ())
(metap:register-m1-m2-pair 'some-mixin 'some-meta-class)

(defclass some-class1 (some-mixin) ())
(defclass some-class2 (some-class1) ())
(defclass some-class3 (some-class2) ())
(defclass some-class4 (some-class1) ())

Also see cl-singleton-mixin (https://github.com/hipeta/cl-singleton-mixin) which is written by using metap.

APIs

Variables

Functions

Macros

Installation

(ql:quickload :metap)

License

Metap is released under the MIT License, see LICENSE file.


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

2 Systems

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


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

2.1 metap

Author

hipeta

License

MIT

Description

Metap provides metaclass propagation along class inheritance structure.

Dependency

closer-mop

Source

metap.asd (file)

Component

metap.lisp (file)


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

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


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.1 metap.asd

Location

metap.asd

Systems

metap (system)


Previous: , Up: Lisp files   [Contents][Index]

3.1.2 metap/metap.lisp

Parent

metap (system)

Location

metap.lisp

Packages

metap

Exported Definitions
Internal Definitions

compute-precedense-list (function)


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

4 Packages

Packages are listed by definition order.


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

4.1 metap

Source

metap.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

compute-precedense-list (function)


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

5 Definitions

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


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

5.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.1 Special variables

Special Variable: *metap-m1-m2-pairs*
Package

metap

Source

metap.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.2 Macros

Macro: validate-superclass* &body VALIDATIONS
Package

metap

Source

metap.lisp (file)


Previous: , Up: Exported definitions   [Contents][Index]

5.1.3 Functions

Function: register-m1-m2-pair M1CLASS M2CLASS
Package

metap

Source

metap.lisp (file)


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

5.2 Internal definitions


Previous: , Up: Internal definitions   [Contents][Index]

5.2.1 Functions

Function: compute-precedense-list DIRECT-SUPERCLASSES
Package

metap

Source

metap.lisp (file)


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

Appendix A Indexes


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

A.1 Concepts

Jump to:   F   L   M  
Index Entry  Section

F
File, Lisp, metap.asd: The metap<dot>asd file
File, Lisp, metap/metap.lisp: The metap/metap<dot>lisp file

L
Lisp File, metap.asd: The metap<dot>asd file
Lisp File, metap/metap.lisp: The metap/metap<dot>lisp file

M
metap.asd: The metap<dot>asd file
metap/metap.lisp: The metap/metap<dot>lisp file

Jump to:   F   L   M  

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

A.2 Functions

Jump to:   C   F   M   R   V  
Index Entry  Section

C
compute-precedense-list: Internal functions

F
Function, compute-precedense-list: Internal functions
Function, register-m1-m2-pair: Exported functions

M
Macro, validate-superclass*: Exported macros

R
register-m1-m2-pair: Exported functions

V
validate-superclass*: Exported macros

Jump to:   C   F   M   R   V  

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

A.3 Variables

Jump to:   *  
S  
Index Entry  Section

*
*metap-m1-m2-pairs*: Exported special variables

S
Special Variable, *metap-m1-m2-pairs*: Exported special variables

Jump to:   *  
S  

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

A.4 Data types

Jump to:   M   P   S  
Index Entry  Section

M
metap: The metap system
metap: The metap package

P
Package, metap: The metap package

S
System, metap: The metap system

Jump to:   M   P   S