[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