File: eieio.el.html

EIEIO is a series of Lisp routines which implements a subset of CLOS, the Common Lisp Object System. In addition, EIEIO also adds a few new features which help it integrate more strongly with the Emacs running environment.

See eieio.texi for complete documentation on using this package.

Note: the implementation of the c3 algorithm is based on:
  Kim Barrett et al.: A Monotonic Superclass Linearization for Dylan
  Retrieved from:
  http://192.220.96.201/dylan/linearization-oopsla96.html

@TODO - fix :initform to be a form, not a quoted value
@TODO - Prefix non-clos functions with eieio-.

TODO: better integrate CL's defstructs and classes. E.g. make it possible to create a new class that inherits from a struct.

Defined variables (4)

eieio-print-depthThe current indentation depth while printing.
eieio-print-indentationWhen non-nil, indent contents of printed objects.
eieio-print-object-nameWhen non-nil write the object name in ‘object-write’.
eieio-versionCurrent version of EIEIO.

Defined functions (65)

change-class(OBJ CLASS)
child-of-class-p(CHILD CLASS)
class-children(CLASS)
class-direct-subclasses(CLASS)
class-direct-superclasses(CLASS)
class-of(OBJ)
class-parent(CLASS)
class-parents(CLASS)
clone(OBJ &rest PARAMS)
constructor(ARG &rest ARGS)
defclass(NAME SUPERCLASSES SLOTS &rest OPTIONS-AND-DOC)
destructor(THIS &rest PARAMS)
eieio--class-slot-initarg(CLASS SLOT)
eieio--pcase-macroexpander(&rest FIELDS)
eieio-change-class(OBJ CLASS)
eieio-class-children(CLASS)
eieio-class-parent(CLASS)
eieio-class-parents(CLASS)
eieio-class-slots(CLASS)
eieio-default-superclass(&rest _)
eieio-default-superclass--eieio-childp(OBJ)
eieio-default-superclass-child-p(OBJ)
eieio-default-superclass-list-p(ARG1)
eieio-default-superclass-p(OBJ)
eieio-list-prin1(LIST)
eieio-object-class(OBJ)
eieio-object-class-name(OBJ)
eieio-object-name(OBJ &optional EXTRA)
eieio-object-name-string(OBJ)
eieio-override-prin1(THING)
eieio-pcase-slot-index-from-index-table(INDEX-TABLE SLOT)
eieio-pcase-slot-index-table(OBJ)
eieio-slot-descriptor-name(SLOT)
eieio-version()
find-class(SYMBOL &optional ERRORP)
initialize-instance(THIS &optional SLOTS)
make-instance(CLASS &rest INITARGS)
obj-of-class-p(OBJ CLASS)
object-add-to-list(OBJECT SLOT ITEM &optional APPEND)
object-assoc(KEY SLOT LIST)
object-assoc-list(SLOT LIST)
object-assoc-list-safe(SLOT LIST)
object-class(OBJ)
object-class-fast(OBJ)
object-class-name(OBJ)
object-name(OBJ &optional EXTRA)
object-name-string(ARG &rest ARGS)
object-of-class-p(OBJ CLASS)
object-print(THIS &rest STRINGS)
object-remove-from-list(OBJECT SLOT ITEM)
object-slots(OBJ)
object-write(THIS &optional COMMENT)
oref(OBJ SLOT)
oref-default(CLASS SLOT)
oset(OBJ SLOT VALUE)
oset-default(CLASS SLOT VALUE)
same-class-p(OBJ CLASS)
shared-initialize(OBJ SLOTS)
slot-boundp(OBJECT SLOT)
slot-exists-p(OBJECT-OR-CLASS SLOT)
slot-makeunbound(OBJECT SLOT)
slot-missing(OBJECT SLOT-NAME OPERATION &optional NEW-VALUE)
slot-unbound(OBJECT CLASS SLOT-NAME FN)
standard-class(&rest _)
with-slots(SPEC-LIST OBJECT &rest BODY)

Defined faces (0)