Re: Specializing slot-value-using-class in OpenMCL



Pascal Costanza <pc@xxxxxxxxx> writes:

I hope this helps.
Thank you, it helps a lot! I just tried the fix and it works. I only
have one last question. Why are metaclasses are not inherited?

(defclass a ()
(slot)
(:metaclass somemeta))

(defclass b ()
(slot2))

Metaclass of 'b' will be standard-class (which causes problems). I
manually added the metaclass declaration to all relevant class, but is
there a way to simply propagate it from base class?

--
Regards,
Slava Akhmechet.
.



Relevant Pages

  • Re: Specializing slot-value-using-class in OpenMCL
    ... There is no simple and straightforward to way integrate this into CLOS because of multiple inheritance and also forward referenced classes. ... manually added the metaclass declaration to all relevant class, ... What seems to be done a lot is to provide your variant of the defclass macro that automatically insert the right:metaclass option for you and sometimes even to shadow cl:defclass. ...
    (comp.lang.lisp)
  • Re: CLOS: static members
    ... I declare it in a base class, it is shared by all subclasses, which is not ... (defclass d (c) ... (defclass my-class (standard-class) ... (:metaclass my-class)) ...
    (comp.lang.lisp)
  • Re: why does the mop handle default-initargs as persistent,
    ... Classes of your imagined metaclass ... It is unfortunate that your example jumps from defclass to ensure-class, ... desired for some new:my-option option to defclass. ...
    (comp.lang.lisp)
  • Re: CLOS: static members
    ... To make it more automatic you can make a metaclass which implements ... allocation type you want, but then you need to specify this metaclass ... To handle this automatically you need a wrapper macro for defclass. ...
    (comp.lang.lisp)
  • Re: CLOS: static members
    ... To make it more automatic you can make a metaclass which implements ... allocation type you want, but then you need to specify this metaclass ... To handle this automatically you need a wrapper macro for defclass. ... But with a macro you can just add that declaration, ...
    (comp.lang.lisp)