[Ecls-list] gcl random tester applied to ecl
Paul F. Dietz
dietz at dls.net
Sun Sep 21 10:23:07 UTC 2003
As part of the gcl testing effort, I've put together a random lambda
form generator to test lisp compilers. I've just applied it to
ecl. There are some failures, for example:
CL-TEST> (compile nil '(LAMBDA (A B C)
(DECLARE (TYPE (INTEGER -613699 -59790) A)
(TYPE (INTEGER -208836538 -704293) B)
(TYPE (INTEGER -1 5986085) C) (IGNORABLE A B C)
(OPTIMIZE (SPEED 3) (SAFETY 1) (DEBUG 1)))
(BLOCK B6
(LET ((V7 (RETURN-FROM B6 C))) (LDB (BYTE 3 5) 592))))
)
;;; Warning: The declaration specifier IGNORABLE is unknown.
;;; Compiling (SET 'C::GAZONK ...).
;;; Warning: The variable V7 is not used.
;;; Warning: The variable B is not used.
;;; Warning: The variable A is not used.
;;; End of Pass 1. FIXNUM is not of type LIST.
Broken at C::C2LET.
The tester is in the gcl tree in ansi-tests/random-int-form.lsp.
Look at the comment there to see how to run it. For size = 200
the tester finds a bug in 15% of its attempts, so don't run
(test-random-integer-forms ... ... <niters>) for <niters> very
large.
There is a pruning function to cut the bug-stimulating cases
down to a near-minimal core. The example above was produced
by this function.
I haven't been able to build the most recent ecl; it may have
a lower failure rate.
Paul
More information about the ecl-devel
mailing list