1. Introduction
EIEIO is a CLOS (Common Lisp Object System) compatibility layer. Due
to restrictions in the Emacs Lisp language, CLOS cannot be completely
supported, and a few functions have been added in place of setf.
1.1 What EIEIO supports
-
A structured framework for the creation of basic classes with attributes
and methods using singular inheritance similar to CLOS.
-
Type checking, and slot unbinding.
-
Method definitions similar to CLOS.
-
Simple and complex class browsers.
-
Edebug support for methods.
-
Imenu updates.
-
Byte compilation support of methods.
-
Help system extentions for classes and methods.
-
Automatic texinfo documentation generator.
-
Several base classes for interesting tasks.
-
Simple test suite.
-
Public and private classifications for slots (extensions to CLOS)
-
Customization support in a class (extension to CLOS)
1.2 Issues using EIEIO
- Complete
defclass
tag support
- All CLOS tags are currently supported, but some are not currently
implemented correctly.
- Mock object initializers
- Each class contains a mock object used for fast initialization of
instantiated objects. Using functions with side effects on object slot
values can potentially cause modifications in the mock object. EIEIO
should use a deep copy but currently does not.
- :AROUND method tag
- This CLOS method tag is non-functional.
1.3 EIEIO example programs that are almost useful.
- linemark
- Manage line highlighting, where individual lines are given a
background color, or some other graphic feature. Lines can be
highlighted in files not currently loaded in Emacs. When they are
read in, the lines are given the graphic properties.
Includes an MS Visual Studio like bookmark facility.
- lmcompile
- Using linemark, highlight all lines where the latest compilation
has valid hits.
- tree
- Draw a structured tree by building a series of embedded lists of
`tree-node' class objects. Includes the functions `eieio-class-tree' to
browse your current eieio inheritance structure
- call-tree
- Pass it an Emacs Lisp function (not byte compiled) to generate a call tree
using the tree tool
- chart
- Uses eieio to manage charts/axis/sequences, and allows display of simple
bar-charts. Example programs are available displaying emacs memory
usage and list occupation, in addition to file counts and size charts.
There's even a sample that will display a chart of who sends you the most
email! See doc-string for `chart-bar-quickie' to make your own bar
charts easily.
- eieio-speedbar
- Classes for implementing a speedbar display. If you write a program
that uses a system of objects, and your classes inherit from those in
`eieio-speedbar', then you can write a speedbar display for your
objects in very little time. 12.5
eieio-speedbar
1.4 EIEIO wish list
-
More CLOS compatibility.
-
Integrate the desired built-in methods into the object browser.
-
Create some objects over pre-existing emacs-lisp stuff for fun, like
faces, processes, buffers, frames and windows as examples.
This document was generated by XEmacs shared group account on December, 19 2009
using texi2html 1.65.