[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
PCL Bombing on dynamic slots
- To: commonloops.pa@Xerox.COM
- Subject: PCL Bombing on dynamic slots
- From: wallace@ucbarpa.Berkeley.EDU (David E. Wallace)
- Date: Wed, 25 Mar 87 02:55:27 PST
I'm running PCL under ExCL on a Sun/3, and am having trouble with PCL
bombing out when I try to instantiate a class with two dynamic slots
for the second time. I get slightly different behavior with the PCL
versions of 1/26/87 and 3/21/87; both are shown below. This example
runs fine under the 3/21/87 version with VAXLISP. The 3/21/87 version
compiled with no errors.
Separate question: I cooked up this example because I was trying to
figure
out how to tell if a given dynamic slot had been allocated on a given
instance. Best way I've found so far is to call
pcl::iwmc-class-dynamic-slots on the instance, and look for the slot
name in the result. Is there a better/more "official" way to do this?
Dave Wallace (wallace@ucbarpa.Berkeley.EDU)
* * * * * * * *
;;; PCL version of 3/21/87
Extended Common Lisp 1.5.6 (1/23/87 15:22)
Copyright (c) 1986, Franz Inc., Alameda, Ca
<cl> (defclass foo () ((var1 3) (var2 :allocation :dynamic :initform 5)
(var3 :allocation :dynamic :initform 7))
(:accessor-prefix ||)(:constructor make-foo))
FOO
<cl> (setq f1 (make-foo))
#S(FOO VAR1 3)
<cl> (setq f2 (make-foo))
Process lisp illegal instruction (core dumped)
;;; PCL version of 1/26/87
Extended Common Lisp 1.5.6 (1/23/87 15:22)
Copyright (c) 1986, Franz Inc., Alameda, Ca
<cl> (defclass foo () ((var1 3) (var2 :allocation :dynamic :initform 5)
(var3 :allocation :dynamic :initform 7))
(:accessor-prefix ||)(:constructor make-foo))
FOO
<cl> (setq f1 (make-foo))
#S(FOO VAR1 3)
<cl> (setq f2 (make-foo))
Error: Received signal number 10 (Bus error)
[1] <cl> :zo
Evaluation stack:
->(EXCL::READ-EVAL-PRINT-LOOP NIL "Received signal number 10 (Bus error)
" ...)
(ERROR "Received signal number ~s ~@[(~a)~]~%" 10 ...)
(FUNCALL (LAMBDA # #))
(EXCL::%EVAL (MAKE-FOO))
(SETQ F2 (MAKE-FOO))
(EXCL::%EVAL (SETQ F2 #))
(EVAL (SETQ F2 #))
(EXCL::READ-EVAL-PRINT-LOOP NIL NIL ...)
... 1 more ...
[1] <cl> :res
<cl> :exit
Process lisp finished