cmucl not liking :allocation :alien

Sean Champ <[email protected]>
Newsgroups gmane.lisp.clg.devel
Message-ID <[email protected]>
Hello,

While compiling clg, my CMUCL isn't liking ":allocation :alien"; it said:

   :ALIEN fell through ECASE expression.  Wanted one of (:CLASS :INSTANCE).


I've included a backtrace for it, at the end of this email.



I'm not sure what to do, for trying to debug this, to see why it's not
working out.  But, I hope that it might be helpful, at least, if I can
offer notes, about what seems that it  might be pertinent.


* The error is

  - happening about the evaluation of

    (defclass type-query (struct)
      ((type-number :allocation :alien :type type-number) ...)
      (:metaclass proxy-class))

   in gtype.lisp

  - happening during
      COMPUTE-SLOTS :AROUND (STANDARD-CLASS)
    for the TYPE-QUERY class, which is defiend like so, as above.


* The STRUCT class is defined in proxy.lisp :

  (defclass struct (proxy)
    ()
    (:metaclass proxy-class)
    (:copy %copy-struct)
    (:free %free-struct))

  and  PROXY, PROXY-CLASS are also defined in proxy.lisp


* There is a DIRECT-SLOT-DEFINITION-CLASS method, specialized for
  (PROXY-CLASS T) [defined in glib/proxy.lisp]

  The method is made to return the DIRECT-ALIEN-SLOT-DEFINITION class,
  when appropriate.

* The problematic 'allocation' slot is defined in that class,
  DIRECT-ALIEN-SLOT-DEFINITION (in clg glib/proxy.lisp)

  I have no idea why the MOP mechanisms, for that slot-definition
  class, are maybe not  taking effect.





* I've heard something about there being a PCL:COERCE-TO-PCL-CLASS
  function, sometimes needed, for MOP-related stuff in PCL in CMUCL


* Someone in #lisp on freenode has mentioned that CMUCL's PCL has 
  been getting worked-on, somehow, lately; I'm not sure what the
  working-on has entailed.




I hope this hasn't been "too much information" or too little;
regarding most of the notes, above, I'm hoping that they might, at
least, be of help, for "getting a fix" about stuff that may be related
to the problem


I'll short-cut my rambling, now, and get to the backtrace 



Thanks,

--
Sean







Notes: 

 - this is happening with "CMU Common Lisp CVS release-18e-branch
   + minimal debian patches" current from Debian/Sid

 - build.lisp is my own file (just containing the stuff to get the
   pathnames right, and load clocc defsystem, then compile then load clg)

 - this is happening while compiling clg glib/gtype.lisp 

 - this is happening about the definition  of the clg TYPE-QUERY class


the error stuff follows:


:ALIEN fell through ECASE expression.  Wanted one of (:CLASS :INSTANCE).

Restarts:
  0: [CONTINUE] Return NIL from load of "../build.lisp".
  1: [ABORT   ] Return to Top-Level.

Debug  (type H for help)

("DEFMETHOD COMPUTE-SLOTS :AROUND (STANDARD-CLASS)" #<unused-arg>
 #S(PCL::FAST-METHOD-CALL
      :FUNCTION #<Function "DEFMETHOD COMPUTE-SLOTS (PROXY-CLASS)" {485BA499}>
      :PV-CELL (# . #)
      :NEXT-METHOD-CALL #S(PCL::FAST-METHOD-CALL
                             :FUNCTION #
                             :PV-CELL NIL
                             :NEXT-METHOD-CALL #
                             :ARG-INFO #)
      :ARG-INFO (1))
 #<Proxy-Class TYPE-QUERY {48644BCD}>)

Source: 
; File: target:pcl/std-class.lisp

(ECASE (SLOT-DEFINITION-ALLOCATION ESLOTD)
  (:INSTANCE (INCF LOCATION))
  (:CLASS
   (LET* #
     #
     CELL)))

0] backtrace

0: ("DEFMETHOD COMPUTE-SLOTS :AROUND (STANDARD-CLASS)" #<unused-arg>
    #S(PCL::FAST-METHOD-CALL
         :FUNCTION #<Function "DEFMETHOD COMPUTE-SLOTS (PROXY-CLASS)"
                     {485BA499}>
         :PV-CELL (# . #)
         :NEXT-METHOD-CALL #S(PCL::FAST-METHOD-CALL
                                :FUNCTION #
                                :PV-CELL NIL
                                :NEXT-METHOD-CALL #
                                :ARG-INFO #)
         :ARG-INFO (1))
    #<Proxy-Class TYPE-QUERY {48644BCD}>)
1: (PCL::UPDATE-CLASS #<Proxy-Class TYPE-QUERY {48644BCD}> T)
2: (PCL::UPDATE-CLASS 2 #<Proxy-Class TYPE-QUERY {48644BCD}> T)[:EXTERNAL]
3: ("DEFMETHOD FINALIZE-INHERITANCE (PROXY-CLASS)" (#(NIL 18 17) . #())
    #S(PCL::FAST-METHOD-CALL
         :FUNCTION #<Function "DEFMETHOD FINALIZE-INHERITANCE (STD-CLASS)"
                     {10FAA709}>
         :PV-CELL NIL
         :NEXT-METHOD-CALL NIL
         :ARG-INFO (1))
    #<Proxy-Class TYPE-QUERY {48644BCD}>)
4: (PCL::UPDATE-CLASS #<Proxy-Class TYPE-QUERY {48644BCD}> NIL)
5: (PCL::UPDATE-CLASS 2 #<Proxy-Class TYPE-QUERY {48644BCD}> NIL)[:EXTERNAL]
6: ("DEFMETHOD SHARED-INITIALIZE :AFTER (STD-CLASS T)" (#(NIL 16 6 3) . #())
    #<unused-arg> #<Proxy-Class TYPE-QUERY {48644BCD}> #<unused-arg> ...)
7: ("PRECOMPILE-RANDOM-CODE-SEGMENTS PCL" #<unused-arg> #<unused-arg>
    #<Proxy-Class TYPE-QUERY {48644BCD}> T ...)
8: ("DEFMETHOD MAKE-INSTANCE (CLASS)" #<unused-arg> #<unused-arg>
    #<Standard-Class PROXY-CLASS {48458EED}>
    (:NAME TYPE-QUERY :DIRECT-SUPERCLASSES (#) :DIRECT-SLOTS ...))
9: ("DEFMETHOD ENSURE-CLASS-USING-CLASS (T NULL)" #<unused-arg> #<unused-arg>
    TYPE-QUERY #<unavailable-arg> ...)
10: (PCL::REAL-LOAD-DEFCLASS TYPE-QUERY
                             PROXY-CLASS
                             (STRUCT)
                             ((:NAME TYPE-NUMBER :READERS NIL :WRITERS ...)
                              (:NAME NAME :READERS NIL :WRITERS ...)
                              (:NAME CLASS-SIZE :READERS NIL :WRITERS ...)
                              (:NAME INSTANCE-SIZE :READERS NIL :WRITERS ...))
                             ...)
11: (C::DO-EVAL-WHEN-STUFF (:COMPILE-TOPLEVEL :LOAD-TOPLEVEL :EXECUTE)
                           ((DEFCLASS TYPE-QUERY # # #))
                           #<Closure Over Function "DEFUN PROCESS-FORM"
                             {4862D021}>
                           T)
12: (C::PROCESS-FORM
     (EVAL-WHEN (:COMPILE-TOPLEVEL :LOAD-TOPLEVEL :EXECUTE)
       (DEFCLASS TYPE-QUERY # # #))
     (C::ORIGINAL-SOURCE-START 0 3))
13: (C::PROCESS-FORM 2
                     (EVAL-WHEN (:COMPILE-TOPLEVEL :LOAD-TOPLEVEL :EXECUTE)
                       (DEFCLASS TYPE-QUERY # # #))
                     (C::ORIGINAL-SOURCE-START 0 3))[:EXTERNAL]
14: (C::PROCESS-SOURCES #<Source-Info>)
15: (#:G0)
16: (C::SUB-COMPILE-FILE #<Source-Info> NIL)
17: (C::SUB-COMPILE-FILE 1 #<Source-Info> #<error printing object>)[:EXTERNAL]
18: (COMPILE-FILE "/usr/local/src/common-lisp/clg/clg-cvs-HEAD/glib/gtype.lisp"
                  :OUTPUT-FILE
                  "/usr/local/src/common-lisp/clg/clg-cvs-HEAD/glib/gtype.x86f"
                  :ERROR-FILE
                  ...)
19: (MAKE::COMPILE-FILE-OPERATION #<FILE: gtype> :NEW-SOURCE-AND-DEPENDENTS)
20: (MAKE::COMPILE-AND-LOAD-OPERATION #<FILE: gtype> :NEW-SOURCE-AND-DEPENDENTS)
21: (MAKE::OPERATE-ON-COMPONENT #<FILE: gtype>
                                :COMPILE
                                :NEW-SOURCE-AND-DEPENDENTS)
22: (MAKE::OPERATE-ON-COMPONENT #<FILE: gtype>
                                :COMPILE
                                :NEW-SOURCE-AND-DEPENDENTS)
23: (MAKE::OPERATE-ON-COMPONENTS #<MODULE: glib>
                                 :COMPILE
                                 :NEW-SOURCE-AND-DEPENDENTS
                                 NIL)
24: (MAKE::OPERATE-ON-COMPONENT #<MODULE: glib>
                                :COMPILE
                                :NEW-SOURCE-AND-DEPENDENTS)
25: (MAKE::OPERATE-ON-COMPONENT #<MODULE: glib>
                                :COMPILE
                                :NEW-SOURCE-AND-DEPENDENTS)
26: (MAKE::OPERATE-ON-COMPONENTS #<DEFSYSTEM: clg>
                                 :COMPILE
                                 :NEW-SOURCE-AND-DEPENDENTS
                                 NIL)
27: (MAKE::OPERATE-ON-COMPONENT #<DEFSYSTEM: clg>
                                :COMPILE
                                :NEW-SOURCE-AND-DEPENDENTS)
28: (MAKE::OPERATE-ON-COMPONENT #<DEFSYSTEM: clg>
                                :COMPILE
                                :NEW-SOURCE-AND-DEPENDENTS)
29: (#:G17)
30: (MAKE:OPERATE-ON-SYSTEM :CLG :COMPILE :FORCE NIL ...)[:OPTIONAL]
31: (MAKE:OPERATE-ON-SYSTEM :CLG :COMPILE :FORCE NIL ...)[:OPTIONAL]
32: (MAKE:OPERATE-ON-SYSTEM :CLG :COMPILE :FORCE NIL ...)[:OPTIONAL]
33: (COMMON-LISP::SLOLOAD
     #<Stream for file "/usr/local/src/common-lisp/clg/build.lisp">)
34: (COMMON-LISP::INTERNAL-LOAD #p"../build.lisp"
                                #p"/usr/local/src/common-lisp/clg/build.lisp"
                                :ERROR
                                :SOURCE)
35: (COMMON-LISP::INTERNAL-LOAD #p"../build.lisp"
                                #p"/usr/local/src/common-lisp/clg/build.lisp"
                                :ERROR
                                NIL)
36: (LOAD "../build.lisp" :VERBOSE NIL :PRINT ...)
37: (EXTENSIONS:INTERACTIVE-EVAL (LOAD "../build.lisp"))
38: (COMMON-LISP::%TOP-LEVEL)
39: (COMMON-LISP::RESTART-LISP)


-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.