[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

problem with arglist checking



When Victoria Day PCL is compiled in Allegro with default safety and speed
settings (the defaults are mostly speed=3, safety=0), method dispatch
doesn't
always check arglists properly.  See the following sessions below.  Arglist
checking is correct when the settings are changed to speed=0, safety=3.
This
bug should never occur, regardless of the compiler settings.

LISP-IMPLEMENTATION-TYPE: Allegro CL
LISP-IMPLEMENTATION-VERSION: 3.0.3 [tek4300] (4/30/89 23:58)
MACHINE-TYPE: Tektronix 4300
MACHINE-VERSION: 
SOFTWARE-TYPE: Utek
SOFTWARE-VERSION: 
SHORT-SITE-NAME: armenia
*features* is (:GSGC :FRANZ-INC :EXCL :COMMON-LISP :ALLEGRO-V3.0 :ALLEGRO
:TEK4300 :TEKTRONIX :TEKCL :UNIX :MULTIPROCESSING :XLIB :GC-CURSOR :CW-X)

;;; Following LISP session is with speed=3, safety=0 PCL.

NIL 
<cl> (use-package :pcl)

T 
<cl> (defclass a () ())
(:CLASS A)

NIL 
<cl> (defmethod three ((a a)) 3)
(:METHOD THREE :PRIMARY (A))

NIL 
<cl> (setq a (make-instance 'a))

#<A 52654551> 
<cl> (three a)

3 
<cl> (three a a)

3 
<cl> (three a a a a a a a a)

3 

;;; If PCL is recompiled with safety=3, speed=0, then the error is caught:

<cl> (three a a)
Error: Wrong number of args passed to THREE