[Openmcl-devel] SLOT-UNBOUND broken?
Leslie P. Polzer
sky at viridian-project.de
Wed May 6 13:21:39 PDT 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