Re: Using "internal" macros of a CL implementation



In a non-portable way: Check in what packages they are defined, and
access the right symbols in those packages. 'apropos helps to
determine the package. Access to a symbol in a package is made by
package:symbol, or package::symbol if it is not exported (but then
it's also really not advisable to use it). There are more ways to
access symbols in other packages via defpackage.

In a portable way: Create your own package with a low-level API. Make
sure that the API is close to at least one or ore existing low-level
APIs. Then you can provide different implementations depending on each
implementation, and in some implementations simply make the existing
one available through your own package. There exist numerous
compatibility layers that do it like this, like ACL-Compat, LW-Compat,
trivial-garbage, Closer to MOP, and various others. (For example,
CLiki has a page for such compatibility layers.)

Thanks, Pascal; that's exactly what I was asking for, though I
probably wasn't very clear.

I am impressed to see a large number of very skilled persons (Bill,
Ken, Pascal & Pascal - to name just a few) in this group who spend
*significant* amount of their times explaining in great detail
different aspect of the language, often answering similar questions again
and again. I still fail to see why this group is sometimes considered to be
"hostile" to the newcomers.

Best regards,
Victor.
.



Relevant Pages

  • Re: symbol locking
    ... Rahul> Some implementations provide this capability, ... Thomas> CLISP, ACL, and CMUCL all have package locks. ... The OP is asking for two features, ...
    (comp.lang.lisp)
  • Re: Disadvantages of Dependency Inversion?
    ... It depends on how many implementations and how many clients ... If there is a single client but multiple ... If the interface is packaged with the trade matching system, ... to the trade matching package. ...
    (comp.object)
  • Re: CLOS / MOP package name
    ... > package, since they are in the Common Lisp package. ... Half of the implementations already support the nickname "CLOS", ... Some of the implementations' MOP support is so incomplete and buggy ...
    (comp.lang.lisp)
  • Re: Disadvantages of Dependency Inversion?
    ... It depends on how many implementations and how many clients there ... If there is a single client but multiple implementations, ... so that the client package doesn't depend on the ... As a general rule I'd agree with you that the interfaces should ...
    (comp.object)
  • Re: (read) problem with packages
    ... Symbols have a package. ... It's also kind of sad that some implementations won't let this work either: ... (cond (backslash (setq backslash nil)) ... ((eql ch #\") ...
    (comp.lang.lisp)