Dimitry Gashinsky wrote:
> ; in: LAMBDA NIL
> ; (SB-KERNEL:FLOAT-WAIT)
> ; note: deleting unreachable code
I'm not familiar with 'sb-aclrepl, but my guess is that this has to do with
the CLX hack in the sb-ext:with-timeout code.
expands into (timer.lisp):
(IF (> 5 0)
(LET ((#:TIMER975 (MAKE-TIMER (LAMBDA () (CERROR "Continue" 'TIMEOUT)))))
(SCHEDULE-TIMER #:TIMER975 5)
(UNWIND-PROTECT (PROGN (PRINC "foo")) (UNSCHEDULE-TIMER #:TIMER975)))
(PROGN (PRINC "foo")))
which clearly does in fact delete code. This issue seems to generate a lot of
messages about deleting sb-kernel:float-wait when sb-ext:with-timeout is
combined with handler-bind and related macros. The reason that the message
only shows up on x86 platforms is the handler-bind macro includes a special case
for x86 (defboot.lisp):
;; Wait for any float exceptions.
I am not familiar with why this particular hack for CLX was needed, and it
does seem to generate a substantial amount of needless notes and messages.
Without fixing this bug, this noise can be muffled by wrapping any calls to
(locally (declare (sb-ext:muffle-conditions sb-ext:code-deletion-note)) ...)
This is, of course, an ugly hack in and of itself.