[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
system hangs on errors after call to defstruct
For some unexplained reason, after I try to defined a structure called
'class', the system hangs whenever an error occurs (such as an undefined
symbol or function). Any idea why? Here is a script run of what I did.
The 'unbound symbol' errors were done on purpose to see if the
error-detecting software was working:
Machine: SUN SPARCStation/370
>> Script started on Thu Jul 25 12:55:48 1991
>> 1 sparc1.brc% cat /etc/motd
>> SunOS Release 4.1.1 (LOGIXOS) #2: Fri Mar 8 10:40:26 EST 1991
>>
>> 2 sparc1.brc% cl4.0
>> Allegro CL 4.0.1 [Sun4] (2/8/91)
>> Copyright (C) 1985-1991, Franz Inc., Berkeley, CA, USA
>> <cl> qwerty
>> Error: Attempt to take the value of the unbound symbol QWERTY
>> [1] <cl> :pop
>>
>> <cl> (defun my-class-printer (r st junk)
>> (declare (ignore junk))
>> (format st "<Class ~A>" (class-name r)))
>>
>> MY-CLASS-PRINTER
>> <cl> trial
>> Error: Attempt to take the value of the unbound symbol TRIAL
>> [1] <cl> :pop
>>
>> <cl> (defstruct (class (:print-function my-class-printer))
>> name facts rules)
>>
>> CLASS
>> <cl> qwerty
>>
>> ^Z
>> ^Z
>>
>> Stopped
>> 3 sparc1.brc% jobs
>> [1] + Stopped cl4.0
>> 4 sparc1.brc% kill %1
>> 5 sparc1.brc%
>> [1] Terminated cl4.0
>>
>> 5 sparc1.brc%
>> script done on Thu Jul 25 12:58:10 1991
The function and structure definitions were written as part of a larger
system elsewhere which presumably ran. When I loaded the system for the
first time (the loading creates a new package and puts the system in it),
the lisp hung the first time I made a error. After much pondering, and
loading parts of the system, I narrowed things down to this 'defstruct'
call. When commented out, loading of the system causes no problems. But
with it un-commented, the "hang-on-error" problem materializes. The example
above uses a clean version of AllegroCL and the definitions are done in the
USER package.
Tony Guzzi phone: (203) 486-5305
University of Connecticut e-mail: tony@sparc0.brc.uconn.edu