MOP Question: structure of Lambda list for direct-slot-definition-class

From: R. Mattes (rm_at_mh-freiburg.de)
Date: 02/21/05


Date: Mon, 21 Feb 2005 17:00:45 +0100
To: openmcl-devel@clozure.com, rm@seid-online.de

I'm currently trying to make my MOP-using application more portable
(current implementation is SBCL). My code basically creates a new
metaclass whose slots have special initargs. My metaclass can have both
standard slots and "special" slots. I specialize both
direct-slot-definition-class and effective-slot-definition-class (both will either
create a special slot definition or pass control to the next method depending on the
presence of a special initarg). while rewriting the core using Marco Baringer's
MOP-abstraction seems to work OpenMCL breaks my application by _not_ generating special
slots at all. After closer examination it looks as if OpenMCL calls
direct-slot-definition-class like this (my crude printf-debugging):

 
  Warning: Initarg for class #<RSLOT-METACLASS AUTHOR> is
   (NAME BOOKS READERS (BOOKS-OF) WRITERS ((SETF BOOKS-OF))
    ROLE (SUBJECT) VERB (AUTHORED) RELATION (BOOK) DB-KIND (RSLOT))

while i would expect (as SBCL indeed does):

  WARNING:
    Initarg for class #<RSLOT-METACLASS AUTHOR> is (NAME BOOKS
                                                         READERS
                                                         (BOOKS-OF)
                                                         WRITERS
                                                         ((SETF BOOKS-OF))
                                                         INITARGS
                                                         NIL
                                                         ROLE
                                                         SUBJECT
                                                         VERB
                                                         AUTHORED
                                                         RELATION
                                                         BOOK
                                                         DB-KIND
                                                         RSLOT)

OpenMCL wraps all values given to keyword args into lists while SBCL just passes
the "raw" values. So, what's the correct structure of the lambda list? Is this under-
specified in AMOP (my copy is far away at home :-/

TIA Ralf Mattes



Relevant Pages

  • Re: Mac + Lisp ?
    ... > Tried sbcl and openMcl but it doesn't seem to work fine... ... Blazingly fast compilation speed. ... Generates slower multidimensional array access code than sbcl. ... and you need same-lisp-implementation portability to other ...
    (comp.lang.lisp)
  • Re: which LISP implementation (goal explained)
    ... I have a set of test input files. ... LispWorks and OpenMCL, and three times as much with CLISP and OpenMCL. ... However, when I run the batch through SBCL, it takes 10 times more time ...
    (comp.lang.lisp)
  • Re: Lisp readability
    ... > What version of Lisp did you design it in sbcl? ... I'm developing it in OpenMCL as the backend for Emacs + SLIME. ... shade faster. ...
    (comp.lang.lisp)
  • Re: New to Lisp: UFFI, CFFI, and osicat, oh my!
    ... Compiling it with a recent sbcl fails. ... > Is this against the version in CVS? ... > (at least SBCL and OpenMCL), but I am not the maintainer and wouldn't ...
    (comp.lang.lisp)
  • Re: Lisp.app
    ... >>sorting all that out. ... The one above is an Emacs.app that runs OpenMCL and SLIME, ... SBCL or ACL to run instead. ...
    (comp.lang.lisp)