30 May 2010
When sbcl wants to tell you that it’s unable to generate the best code, or at least unambiguously compile the code you give it, it emits a STYLE-WARNING. Generally, the warnings are things like functions that haven’t been defined, and so are things you do want to know about.
But, when you’re working interactively, it spits out a warning that I find irritating, telling you that you’re redefining a function. Well, duh, I know.
STYLE-WARNING: redefining HOST-GC in DEFUN
I’m sure there’s some sensible reason for this, but I’d still rather not see it.
Also, in using someone else’s code (perhaps written on a different Common Lisp) there’s often a spew of STYLE-WARNINGs too. For example, I’m using lisp-unit, a simple testing thingy. It works nicely enough, but sbcl spits out lots of warnings as it loads it.
I had to hunt around for a while to find the way to silence these, as it wasn’t obvious from the sbcl docs, but this is the way to nuke the warning while
loading a particular file. For example, with lisp-unit:
(declaim #+sbcl(sb-ext:muffle-conditions style-warning)) (load "lisp-unit.lisp") (declaim #+sbcl(sb-ext:unmuffle-conditions style-warning))
#+sbcl makes it conditional for sbcl. That bit of code would fail on other CLs because of the
sb-ext. I occasionally run on ClozureCL too, but it doesn’t cause warnings in the same way, and I haven’t had a need to silence warnings there.
You may or may not want to wrap that
declaim around your interactive bits, weighing that you might miss more important warnings of course.