Best Practice for an ASDF Variable Like *compile-file-failure-behaviour*

Robert Goldman rpgoldman at sift.info
Fri Mar 9 22:34:48 UTC 2018


Are you just using this for yourself?  If so, a simple

```
(let ((asdf:*compile-file-failure-behaviour* :warn))
     (asdf:load-system "my system"))
```

will suffice.

Alternatively, you could put something like this in the `.asd` file:

```
(defmethod operate :around ((operation load-op) (system 
(asdf:find-system "my-system")))
    (let ((asdf:*compile-file-failure-behaviour* :warn))
      (call-next-method)))
```

The above most emphatically *has not been tested*, so it might be wrong.

I *think* if the top-level operation you use is `load-op`, this should 
work.  Alternatively, you might want to replace `(operation load-op)` 
with just `(operation operation)` (and add a `(declare (ignorable 
operation))`)

Cheers,
r



On 9 Mar 2018, at 16:12, Mark H. David wrote:

> As has been discussed here over the years,  
> asdf:*compile-file-failure-behaviour* is :warn on most platforms, but 
> it is notoriously :error on #+sbcl. So what would you do if you wanted 
> to change asdf:*compile-file-failure-behaviour* to be :warn on #+SBCL? 
> How would you recommend to change it. Where?
>
> I don't want to really have to impose an init file on everyone.  Also, 
> I don't really want to necessarily make this global across every use 
> of ASDF, but let's say I just want it to apply to one main system and 
> all subsystems loaded as part of this.
>
> I cannot think of anything better than a top-level setq in the .asd 
> file of the system, something like this?
>
> #+sbcl
> (setq asdf:*compile-file-failure-behaviour* :warn)
>
> What else can one do that's any better?
>
> Maybe there's a less crude way, like something like an around method 
> that wraps around the compile/load.  I'm really just barely a novice 
> user, so I'm sorry this if this is such a naive question.  If there's 
> a simple example one could provide or point me to that does this, I'd 
> appreciate it.
>
> Thanks,
>
> Mark
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20180309/07cf066f/attachment.html>


More information about the asdf-devel mailing list