gcl-devel
[Top][All Lists]
Advanced

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

[Gcl-devel] Interpretation of random tester output


From: Paul F. Dietz
Subject: [Gcl-devel] Interpretation of random tester output
Date: Mon, 01 Mar 2004 20:19:43 -0600
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6b) Gecko/20031210

Camm Maguire wrote:
Greetings!  OK I guess your machine doesn't speak gzip.

I've placed the uncompressed file at

http://people.debian.org/~camm/e.out

Thanks again!

The long printout is the pruner successively simplifying
the form.

The final part of that is the reduced failing test
case.  The fields mean:

:vars       Names of variables bound in the lambda forms
:var-types  Their types
:vals       The values that were to be used as arguments to the
            lambda forms.
:decls1
:decls2     The OPTIMIZE decls for the optimized/unoptimized forms.
:form       The body of the lambda forms.  This is what is printed
            by prune-results as it does its work.

:optimized-form
:unoptimized-form  The two lambda forms built from those fields.

In gcl, the unoptimized form is not compiled, but instead a form
like (funcall (function ,unoptimized-lambda-form) ,@vals) is constructed
and eval-ed.

The test fails if the compile of optimized-form aborts, if either evaluation
aborts, or if the return results are not the same.

In this case, the compile aborted.  I've reduced the form a bit
more and pruned off unnecessary lambda parameters and type declarations:

;;; gcl (found by Camm)
;;; Error in COMPILER::CMP-ANON [or a callee]: The function NIL is undefined.
(deftest misc.286
  (funcall
   (compile
    nil
    '(lambda (e)
       (declare (optimize (speed 1) (space 3) (safety 3) (debug 3)
                          (compilation-speed 1)))
       (flet ((%f11 (f11-2) 0))
         (%f11 (unwind-protect
                   e
                 (tagbody
                  (let* ((v4 (unwind-protect (go 0)))) 0)
                  0)
                 (logand (handler-bind () 0)))))))
   10)
  0)

BTW, once LOOP-RANDOM-INT-FORMS finishes reducing test cases, you can abort
it and get at the test cases in the list $y.  The function (f i) will compile
and evaluate the optimized form of (elt $y i) on the apppropriate vals; (g i)
will do the same on the unoptimized form (f, g, and $y are all in the CL-TEST
package.)

        Paul




reply via email to

[Prev in Thread] Current Thread [Next in Thread]