[Openmcl-devel] SLOT-UNBOUND broken?

Leslie P. Polzer sky at viridian-project.de
Wed May 6 20:21:39 UTC 2009


The following code (from the test suite) fails horribly
on my machine:

(defclass slot-unbound-class-01 ()
  ((a :reader sunb-a)
   (b :accessor sunb-b)
   (c :writer sunb-c)
   (e :reader sunb-e)
   (f :reader sunb-f)))

(defmethod slot-unbound ((class t) (obj slot-unbound-class-01) (slot-name t))
  (list (class-name class) slot-name))

(let ((obj (make-instance 'slot-unbound-class-01)))
  (values
   (slot-value obj 'a)
   (slot-value obj 'b)
   (slot-value obj 'c)))

Here's some more information:

[17190] Clozure CL kernel debugger: b
current thread: tcr = 0xb7c12a90, native thread ID = 0x432a, interrupts enabled


(#xB7AADD44) #x00000000 : #<Function %MAYBE-STD-SLOT-VALUE-USING-CLASS #x14142EDE> + ??
(#xB7AADD7C) #x14CB40C5 : #<Anonymous Function #x14CB4076> + 79
(#xB7AADD90) #x14A3001D : #<Function (:INTERNAL %DO DO-ENTRY) #x14A2FD3E> + 735
(#xB7AADDA0) #x14A309FD : #<Function DO-ENTRY #x14A3061E> + 991
(#xB7AADDE4) #x14A3B335 : #<Function DO-ENTRIES #x14A3B1AE> + 391
(#xB7AADDF8) #x14A3C00D : #<Function DO-TESTS #x14A3BD66> + 679
(#xB7AADE5C) #x14891EE5 : #<Function REPORT-TIME #x14891DAE> + 311
(#xB7AADE94) #x143802FD : #<Function CALL-CHECK-REGS #x14380206> + 247
(#xB7AADEB0) #x143E467D : #<Function (:INTERNAL EVAL-STRING STARTUP-CCL) #x143E44BE> + 447
(#xB7AADED4) #x143E4D5D : #<Function STARTUP-CCL #x143E4786> + 1495
(#xB7AADF04) #x14329A65 : #<Function (:INTERNAL (TOPLEVEL-FUNCTION
(LISP-DEVELOPMENT-SYSTEM T))) #x14329A1E> + 71
(#xB7AADF14) #x143E357D : #<Function (:INTERNAL MAKE-MCL-LISTENER-PROCESS) #x143E3336> +
583
(#xB7AADF60) #x1433030D : #<Function RUN-PROCESS-INITIAL-FORM #x1433006E> + 671
(#xB7AADFA4) #x14330C9D : #<Function (:INTERNAL (%PROCESS-PRESET-INTERNAL (PROCESS)))
#x14330B4E> + 335
(#xB7AADFCC) #x1431856D : #<Function (:INTERNAL THREAD-MAKE-STARTUP-FUNCTION)
#x14318456> + 279

[17190] Clozure CL kernel debugger: L
%ebx (arg_z) = #<header ? #xFFFFFFFF>
%esi (arg_y) = #<header ? #x08060F67>
------
%edi (fn) = #<header ? #xFFFFFFFF>
------
%ecx (temp0) = 0
%edx (temp1) = marked as unboxed (DF set)
------
%edx (nargs) = -303020452 (maybe)

Intriguingly one of the registers pointed at a vector in an earlier
session; now the addresses seem to be bogus.

On a tangent, is there a way to instrument low-level functions
(like the %maybe-std-slot-value-using-class) with print statements?

I've tried it but then rebuiling CCL would fail at the heap
building stage.

I also attempted to look at some symbols but the kernel debugger
seems to have a different idea of what a symbol means as it couldn't
find any I asked it about.

  Leslie

-- 
http://www.linkedin.com/in/polzer




More information about the Openmcl-devel mailing list