这很简单。
(let ((x))
(if (typep x 'null) "a" "b"))
生成有关无法访问的代码删除的警告。据推测,编译器足够智能,可以确定它只执行一次,类型将始终为null。我通常不会编写该代码,但在这种情况下,我只是不想在输出中删除代码。如何关闭SBCL关于该特定警告?作为一个注释,我也无法找到正确的语法告诉sbcl将安全性设置为0,以便我可以溢出整数(教育上)......也许相关?
谢谢, 康拉德
答案 0 :(得分:4)
使用sb-ext:compiler-note
处理的muffle-warning
处理程序包装处理程序中的代码进行包装。另请参阅http://www.sbcl.org/manual/#Controlling-Verbosity
SBCL具有模块化算法,因此您可以通过声明变量类型并将操作包装在(logand mask (+ x y))
中,其中掩码为#xFFFF
或#xFFFFFFFF
或其他任何内容来获得非常快速的算术运算。另请参阅http://www.sbcl.org/manual/#Modular-arithmetic