hi!
so, i'm using deferred warnings, because warnings are useful!
the only problem is that, in this specific case, i get the following after compilation has finished:
; compilation finished in 0:00:00.033 ; in: LAMBDA (SB-PCL::.METHOD-ARGS. SB-PCL::.NEXT-METHODS.) ; (SB-MOP:SLOT-VALUE-USING-CLASS # HU.DWIM.PEREC::INSTANCE ...) ; ; caught WARNING: ; undefined variable: HU.DWIM.PEREC::INSTANCE ; ; compilation unit finished ; Undefined variable: ; HU.DWIM.PEREC::INSTANCE ; caught 1 WARNING condition ; ; compilation unit aborted ; caught 4 fatal ERROR conditions
and it doesn't even tell which file it happened with. (this error comes from the depths of sbcl internals around generic methods).
how was it meant to work originally? is it assumed that the warning will always contain a name or something that helps identifying where it comes from? if so, then it's not always the case, and when warnings are not deferred at least the current toplevel form is visible in the output.
note: this is not a showstopper just an inconvenience. i can identify the file by checking the *.sbcl-warnings files manually.