[comp.lang.clos] Slot Definition Metaobjects in CLOS...

jonl@LUCID.COM (Jon L White) (01/14/91)

re: My code works fine in PCL, but when I run it in CLOS, I get:
    . . .
    Is this a bug or omission in CLOS, or has the protocol changed for
    doing this type of thing?   In any event, what's the best way to
    accomplish what I want to do in CLOS???

You may be confusing some version of PCL's capabilities with the
documented semantics of CLOS (for that, see CLtL/II -- it's as good
as any, and probably more available than the others.)   There have
been a number of different "metaobject protocols" circulated during
the past four years -- none of which have yet achieved the status of
a "standard".

Lucid's documentation distributed with the 4.0 release mentions a
de-facto, but limited, "metaobject" standard which is supported by
both Symbolics and Lucid (and susbscribed to by Franz, at least when
the issue was raised on the X3J13 mailing lists last year); it's
basically an introspective subset of the then-current draft proposals.

Additionally, Lucid's documentation has a fairly large amount of
"crossover" help, for those converting code from PCL.  You may find,
however, that the "metaobject" interfaces differ substantially from one
PCL release to another (and I note that you didn't say just which PCL
release your code works in!)

I believe that Gregor Kiczales and others at Xerox PARC are still working
on another draft of a metaobject proposal, and when that comes out it will
be up for review.  You might want to take a look at it if you are currently
using parts of PCL that could be considered "metaobject" programming.  In
the  meantime, however, one's option is, at best, to contact the Lisp vendor
directly to see how you can get a current workaround for facilities that
might become part of a future standard.

Currently, I know of the following vendors providing CLOS:

  Procyon, Texas Instruments, Harlequin, Symbolics (Genera 8), Lucid 4.0
  (with Franz scheduled to come out soon)

Apart from the previously mentiond "de-facto, introspective" metaobject
parts, and from Lucid's implementation, I don't know how the others
address these issues.



-- JonL --