[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MetaObject Protocol



At  2:15 PM 10/29/93 -0500, John Welch wrote:
>        I was wondering if the MCL team is planning on supporting more of
>the MetaObject Protocol in the near future. I would like to write a reasonably
>portable application using the MOP but MCL doesn't yet support slot-definition 
>objects which I think I am going to need. If I knew enough about how MCL implements
>CLOS maybe I could make a subclass of standard-class that had the functionality
>I will need. Any info on (when or if) MCL will support more of the MOP or how
>MCL implements CLOS would be greatly appreciated.

We have no plans to implement more of the MOP in the near future. MCL
implements slot definition objects as lists, not as instances, so
writing portable code to extend MCL in that area will likely be difficult.

The only public information about MCL's CLOS information is included
in the file "ccl:library;lispequ.lisp". Look for "slot". In particular,
here are the definitions that show how the list is used to store
slot definition information:

(defmacro %slotd-name (slotd) `(%car ,slotd))
(defmacro %slotd-initform (slotd) `(%cadr ,slotd))
(defmacro %slotd-value (slotd) `(%cadr ,slotd))   ; For class slots, reuse initform...
(defmacro %slotd-initargs (slotd) `(%caddr ,slotd))
(defmacro %slotd-type (slotd) `(%cdddr ,slotd))

There is some documentation of the subset of the introspective MOP
that MCL provides in one of the appendices of the MCL 2.0 Reference
Manual.