>>>>> "Andreas" == Andreas Franke <[EMAIL PROTECTED]> writes:

    Andreas> while trying to migrate our codebase from cmucl 18e to
    Andreas> 19c, I have encountered two problems; the first one
    Andreas> (foo1) looks to me like a bug somewhere deep in the
    Andreas> compiler, and the second one (foo2) seems to be just an
    Andreas> unhelpful error message triggered by buggy code on our
    Andreas> side.

    Andreas> To reproduce the errors, get the sources (51KB) from
    Andreas> http://www.ags.uni-sb.de/~afranke/lisp/cmucl19c-problems.tgz

I hope you can give small examples illustrating the problem.  I'm not
likely to download and test 51 KB of code. :-(

    Andreas> The output is attached for both cases (see foo1.txt and foo2.txt).

    Andreas> Besides the defsystem stuff, the lisp code in question is:
    Andreas> (foo1):
    Andreas>                (defun foo (&key (test #'oddp))
    Andreas>                  (remove-if #'(lambda (x)
    Andreas>                                        (apply test (list x)))
    Andreas>                   nil))

If I compile this function with 19c (on my sparc box), I get no errors
or even warnings.

    Andreas> (foo2):
    Andreas>                (defun foo ()
    Andreas>                  (let (a)
    Andreas>                   (declare (type (simple-array list 1) a))
    Andreas>                   (mapc #'(lambda (x)
    Andreas>                                   (bar a))
    Andreas>                    nil)))

I don't get any errors with this function either.  But the declaration
is wrong since A is bound to NIL.  Either change the declaration or
initialize A appropriately.

There must be some context missing for these errors to show up.  It
would be helpful if you could run just these tests with cmucl to see
if errors still happen.  Or find the magic incantation that triggers
these errors.
 
Ray


Reply via email to