[armedbear] #479: CLOS MOP bug in 1.8.0

armedbear armedbear-devel at common-lisp.net
Sat Nov 28 06:37:35 UTC 2020


#479: CLOS MOP bug in 1.8.0
-------------------------------+--------------------
      Reporter:  Mark Evenson  |       Type:  defect
        Status:  new           |   Priority:  major
     Milestone:  1.8.1         |  Component:  (A)MOP
       Version:  1.8.1-dev     |   Keywords:
Parent Tickets:                |
-------------------------------+--------------------
 Pascal Costanza reports in <https://mailman.common-lisp.net/pipermail
 /armedbear-devel/2020-November/004189.html>:

 {{{
 I have encountered a bug in 1.8.0 when doing my regular Closer to MOP
 checks. This must be a new bug, because 1.7.1 was fine. Here is the case
 that triggers the problem:

 (use-package :mop)

 (defclass test-direct-slot-definition
           (standard-direct-slot-definition)
   ())

 (defclass test-effective-slot-definition
           (standard-effective-slot-definition)
   ())

 (defclass test-class (standard-class) ())

 (defmethod validate-superclass
            ((class test-class)
             (superclass standard-class))
   t)

 (defmethod direct-slot-definition-class
            ((class test-class) &rest initargs)
   (declare (ignore initargs))
   (find-class 'test-direct-slot-definition))

 (defmethod effective-slot-definition-class
            ((class test-class) &rest initargs)
   (declare (ignore initargs))
   (find-class 'test-effective-slot-definition))

 (defclass test-object ()
   ((some-slot :accessor some-slot
               :initarg :some-slot
               :initform 'some-slot
               :type symbol
               :allocation :class
               :documentation "a slot"))
   (:metaclass test-class))

 (unless (class-finalized-p (find-class 'test-object))
   (finalize-inheritance (find-class 'test-object)))



 Armed Bear Common Lisp 1.8.0
 Java 15.0.1 Oracle Corporation
 Java HotSpot(TM) 64-Bit Server VM
 Low-level initialization completed in 0.134 seconds.
 Startup completed in 0.65 seconds.
 Loading /Users/costanza/.abclrc completed in 6.061 seconds.
 Type ":help" for a list of available commands.
 CL-USER(1): (load "test.lisp")
 Error loading /Users/costanza/Temp/test.lisp at line 36 (offset 943)
 #<THREAD "interpreter" {1970D65C}>: Debugger invoked on condition of type
 UNBOUND-SLOT
   The slot LOCATION is unbound in the object #<TEST-EFFECTIVE-SLOT-
 DEFINITION {556F331F}>.
 Restarts:
   0: TOP-LEVEL Return to top level.
 [1] CL-USER(2): :bt

   0: (SYSTEM:BACKTRACE)
   1: (INVOKE-DEBUGGER #<UNBOUND-SLOT {67D22A29}>)
   2: (ERROR
  UNBOUND-SLOT
  :INSTANCE
  #<TEST-EFFECTIVE-SLOT-DEFINITION {556F331F}>
  :NAME
  SYSTEM::LOCATION)
   3: (#<FUNCTION #<FUNCTION {22446549}> {22446549}>
  (#<STANDARD-CLASS TEST-EFFECTIVE-SLOT-DEFINITION {6670307A}>
   #<TEST-EFFECTIVE-SLOT-DEFINITION {556F331F}> SYSTEM::LOCATION))
   4: (SLOT-VALUE
  #<TEST-EFFECTIVE-SLOT-DEFINITION {556F331F}>
  SYSTEM::LOCATION)
   5: (SLOT-DEFINITION-LOCATION
  #<TEST-EFFECTIVE-SLOT-DEFINITION {556F331F}>)
   6: (MOP::STD-FINALIZE-INHERITANCE #<TEST-CLASS TEST-OBJECT {67510DAF}>)
   7: (#<FUNCTION #<FUNCTION {2C5408FE}> {2C5408FE}>
  (#<TEST-CLASS TEST-OBJECT {67510DAF}>))


 I believe the bug is triggered by find-class or class-finalized-p, but not
 sure.
 }}}

-- 
Ticket URL: <https://abcl.org/trac/ticket/479>
armedbear <https://abcl.org>
armedbear


More information about the armedbear-ticket mailing list