/[ecl]/ecl-doc/mop.xmlf
ViewVC logotype

Contents of /ecl-doc/mop.xmlf

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations)
Mon May 5 13:12:36 2008 UTC (5 years, 11 months ago) by jgarcia
Branch: MAIN
CVS Tags: HEAD
Stub for MOP manual and improvements in the description of ASDF:MAKE-BUILD
1 <?xml version="1.0"?><!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
2 <book lang="en">
3 <chapter id="ext.mop">
4 <title>Meta-Object Protocol (MOP)</title>
5
6 <section id="ext.mop.intro">
7 <title>Introduction</title>
8
9 <para>The Meta-Object Protocol is an extension to &CommonLisp; which
10 provides rules, functions and a type structure to handle the object
11 system. It is a reflective system, where classes are also objects and can be
12 created and manipulated using very well defined procedures.</para>
13
14 <para>The Meta-Object Protocol associated to &CommonLisp;'s object system
15 was introduced in a famous book, The Art of the Metaobject Protocol &AMOP;,
16 which was probably intended for the &ANSI; specification but was drop out
17 because of its revolutionary and then not too well tested ideas.</para>
18
19 <para>The &AMOP; is present, in one way or another, in most &CommonLisp;
20 implementations, eithr using proprietary systems or because their
21 implementation of &CLOS; descended from &PCL; (Portable CommonLoops). It has
22 thus become a de facto standard and &ECL; should not be without it.</para>
23
24 <para>Unfortunately &ECL;'s own implemention originally contained only a
25 subset of the &AMOP;. This was a clever decision at the time, since the
26 focus was on performance and on producing a stable and lean implementation
27 of &CommonLisp;. Nowadays it is however not an option, specially given that
28 most of the &AMOP; can be implemented with little cost for both the
29 implementor and the user.</para>
30
31 <para>So &ECL; has an almost complete implementation of the &AMOP;. However,
32 since it was written from scratch and progressed according to user's request
33 and our own innovations, there might still be some missing functionality
34 which we expect to correct in the near future. Please report any feature you
35 miss as a bug through the appropriate channels.</para>
36
37 <para>When considering the Metaobject Protocol, the book itself should be
38 the main reference. The following sections contain only further extensions
39 or improvements over the paragraphs which were either conflicting or less
40 specified.</para>
41 </section>
42
43 <section id="ext.mop.classes">
44 <title>Classes</title>
45
46 <para>[TODO: Document the class initialization / finalization protocol]</para>
47 </section>
48
49 <section id="ext.mop.slots">
50 <title>Slots</title>
51
52 <para>[TODO: Document the slot descriptions and parameters.]</para>
53
54 </section>
55
56 <section id="ext.mop.generic">
57 <title>Generic functions and methods</title>
58
59 <para>[TODO: Document the calling convetions for method functions.]</para>
60 </section>
61
62 <section id="ext.mop.slots.sealed">
63 <title>Sealed slots and classes</title>
64
65 <para>[TODO: Document sealed slots]</para>
66 </section>
67 </chapter>
68 </book>
69 <!-- Keep this comment at the end of the file
70 Local variables:
71 mode: nxml
72 sgml-parent-document: "ecl.xml"
73 sgml-indent-step: 1
74 nxml-child-indent: 1
75 nxml-outline-child-indent: 1
76 fill-column: 79
77 End:
78 -->

  ViewVC Help
Powered by ViewVC 1.1.5