[Ecls-list] Three random tester bugs
Paul F. Dietz
dietz at dls.net
Wed Jan 26 06:32:04 UTC 2005
I recompiled ecl (cvs head) yesterday (it recompiled fine after
I blew away the directory tree and checked it out again) and
ran the random tester during the day.
There were 103 failures found. Most had to do with a special
variable being bound more than once in the function being
compiled (perhaps a type propagation problem). The first
test below is an example. The other two test cases are
apparently different bugs. There was another failure that
minimized to a very large term; I may include that if fixes
for these don't also fix it.
These are in misc.lsp in gcl/ansi-tests/.
;;; ecl (25 Jan 2005)
;;; Error: In a call to AREF, the type of the form *S6* is FIXNUM, not (ARRAY *).
(declaim (special *s6*))
(declare (optimize (speed 0) (safety 1) (debug 1) (compilation-speed 3)
(let ((*s6* 0))
(let* ((*s6* (make-array nil :initial-element 0)))
;;; nil is not of type number.
(declare (type (integer -25 38) a))
(declare (optimize (compilation-speed 3) (safety 3) (debug 1) (space 2) (speed 1)))
(flet ((%f2 (f2-1 f2-2
(f2-3 (labels ((%f6 (&optional (f6-1 0) (f6-2 0)) (max a)))
(f2-4 0) (f2-5 0))
(flet ((%f4 (f4-1 f4-2 f4-3)
(flet ((%f15 () f2-3)) a)))
(reduce #'(lambda (lmv1 lmv6) a)
(vector 0 0 0 (%f2 a a) 0 a 0 a 0)
:start 4 :from-end t))))
;;; Incorrect return value
(declaim (special *s5*))
(declare (type (integer -1011 978) a))
(declare (optimize (compilation-speed 1) (safety 3) (debug 0) (speed 2) (space 1)))
(flet ((%f15 (f15-1)
(return-from %f15 a)))
(lognor (throw 'ct8 (shiftf a 332))
(let ((v1 (setf a 371)))
More information about the ecl-devel