From: Jeff M.
Subject: LispWorks' warnings output
Date: 
Message-ID: <1095792191.475891.232800@k26g2000oda.googlegroups.com>
Is there a way to suppress warnings that the compiler spits out? In
particular in LispWorks, I'm getting:

"Multi form multi-value-call is inefficient"

I already know this, but I use this in a macro and so I'm getting quite
a few warnings when I compile -- sorting through them to find any real
errors is not fun. I'm hoping there is a simple DELCARE I can do to
ignore it.

Thanks!

Jeff

From: Arthur Lemmens
Subject: Re: LispWorks' warnings output
Date: 
Message-ID: <opseoynnc6k6vmsw@news.xs4all.nl>
Jeff M. wrote:

> Is there a way to suppress warnings that the compiler spits out? In
> particular in LispWorks, I'm getting:
>
> "Multi form multi-value-call is inefficient"

This was aked not too long ago on the lisp-hug mailing list.
Unfortunately, the answer is "No". (It bothers me too from
time to time. It's the only warning message that I usually
want to ignore.)

Arthur
From: Christophe Rhodes
Subject: Re: LispWorks' warnings output
Date: 
Message-ID: <sqwtyn73f9.fsf@cam.ac.uk>
Arthur Lemmens <········@xs4all.nl> writes:

> Jeff M. wrote:
>
>> Is there a way to suppress warnings that the compiler spits out? In
>> particular in LispWorks, I'm getting:
>>
>> "Multi form multi-value-call is inefficient"
>
> This was aked not too long ago on the lisp-hug mailing list.
> Unfortunately, the answer is "No". (It bothers me too from
> time to time. It's the only warning message that I usually
> want to ignore.)

Not that this helps you with your immediate problem, but perhaps it's
worth discussing the mechanism I implemented in SBCL for doing exactly
this.  The meat of the work was to make sure that all of these
diagnostics were actually implemented using the condition system, with
a documented class hierarchy.  At present that hierarchy is fairly
bare, being
  SB-EXT:COMPILER-NOTE
    SB-EXT:CODE-DELETION-NOTE
but it is of course open to backwards-compatible extension.  (So there
is reason to be fairly conservative in adding new condition classes.)

Once that is done, then half of the battle is won: the user can
silence a particular class of notes, style-warnings, or the like
simply by wrapping the compiling form with a handler, as in
  (handler-bind ((sb-ext:code-deletion-note #'muffle-warning))
    (compile-file "complex.lisp")).
However, this is only half; it is also necessary to provide a
mechanism for inhibiting conditions emitted from a block of code.
The user can do this with a declaration, as in for example
  (defun foo ()
    (declare (sb-ext:muffle-conditions sb-ext:code-deletion-note))
    (if #.(possibly-constant-computation)
        (frob)
        (quux)))
where the compiler will muffle conditions of the given class during
compilation of the associated body.

I hope that gives some ideas.

Christophe