[Asdf-devel] ASDF does not signal deferred non-style warnings as an error
Robert P. Goldman
rpgoldman at sift.info
Wed Oct 29 22:01:15 UTC 2014
Ilya Perminov wrote:
> ASDF does not raise an error, when the SBCL compiler produces
> warnings (e.g. "undefined variable", "undefined function").
> ======== test.asd =============
> (defsystem :test
> :version "1.0"
> :components ((:file "test")))
> ======== test.lisp ============
> (defun foo ()
> (+ a b))
> (asdf:load-system :test) does not signal an error.
> I discovered this problem using SBCL, but I bet it can be
> reproduced on some other CL implementations that deffer warnings. The
> cause of the problem is that WITH-COMPILATION-UNIT may affect result
> values (warnings-p, and failure-p) of COMPILE-FILE.
> sbcl-help has a discussion of this WITH-COMPILATION-UNIT/COMPILE-FILE interaction:
I cannot replicate this, but this may be a new behavior introduced by
recent changes to SBCL, and I'm not on the latest release yet.
However, I *do* see something odd: when I make a system that loads
Ilya's example test.lisp, on SBCL (my version), the compilation fails
with a COMPILE-FAILED-ERROR, but on ACL 9.0, the compilation fails with
I suspect that this is because the way ASDF grabs errors in the two
lisps is different, but it's a trifle unsettling, since these are both
conditions defined by ASDF.
I have pushed a new testlet into test-deferred-warnings.script; please
try this out.
More information about the asdf-devel