"strict-mode" ASDF

Daniel Kochmański daniel at turtleware.eu
Fri Mar 17 15:58:42 UTC 2017


Robert Goldman writes:

> On 3/15/17 Mar 15 -12:05 PM, Daniel Kochmański wrote:
>> I think it's controlled by *COMPILE-FILE-FAILURE-BEHAVIOUR* and
>> *COMPILE-FILE-WARNINGS-BEHAVIOUR* both taking as value one of :WARN,
>> :ERROR or :IGNORE.
>> 
>> Robert Goldman writes:
>> 
>>> What is the proper way to make ASDF fail on ANY warning (including
>>> STYLE-WARNINGs)?  I thought I knew how to do this, but I'm having
>>> trouble making it work, possible because of the DEFERRED-WARNINGS.
>>>
>>> Thx,
>>> r
>> 
>
> Hm.  These seem unpleasingly global.  I have a case where I have a
> system that I want to compile in a strict way -- I want to know by
> having a failure if there is any warning in my build.  BUT... my system
> depends on an upstream library that has warnings in its build.
>
> What I really would like is to catch the issues only in building my
> system, but I think that ASDF may be grabbing up style warnings and
> having its own way with them.

I think that to have better control over component behavior you may
specialize method perform on basic-compile-op and your system and change
values of these special variables:

(defmethod perform ((o basic-compile-op) (c (eql #.(find-system system-name))))
  (let ((*compile-file-failure-behaviour* :error)
        (*compile-file-warnings-behaviour* :error))
     (call-next-method)))

or something in this spirit. I think it's an ugly solution, but it may
do the trick for you.
>
> Cheers,
> r

Regards,
Daniel

-- 
Daniel Kochmański ;; aka jackdaniel | Przemyśl, Poland
TurtleWare - Daniel Kochmański      | www.turtleware.eu

"Be the change that you wish to see in the world." - Mahatma Gandhi



More information about the asdf-devel mailing list