[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:
> Hi,
> 
> ASDF does not raise an error, when the SBCL compiler produces 
> warnings (e.g. "undefined variable", "undefined function").
> Example:
> ======== 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:
> http://sourceforge.net/p/sbcl/mailman/message/32976990/

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
a COMPILE-FILE-ERROR.

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.

thanks!
r





More information about the asdf-devel mailing list