这是个简单的。
(let ((x))
(if (typep x 'null) "a" "b"))
生成有关无法访问的代码删除的警告。大概编译器足够聪明,可以确定它只执行一次并且类型将始终为空。我通常不会编写该代码,但在这种情况下,我只是不希望在我的输出中出现代码删除通知。我怎样才能让 SBCL 关闭那个特定的警告?作为一个注释,我也无法找到正确的语法来告诉 sbcl 将安全设置为 0,以便我可以溢出一个整数(教育上)......也许相关?
谢谢,康拉德
这是个简单的。
(let ((x))
(if (typep x 'null) "a" "b"))
生成有关无法访问的代码删除的警告。大概编译器足够聪明,可以确定它只执行一次并且类型将始终为空。我通常不会编写该代码,但在这种情况下,我只是不希望在我的输出中出现代码删除通知。我怎样才能让 SBCL 关闭那个特定的警告?作为一个注释,我也无法找到正确的语法来告诉 sbcl 将安全设置为 0,以便我可以溢出一个整数(教育上)......也许相关?
谢谢,康拉德
使用处理程序将编译代码的任何内容包装在处理程序绑定中,以处理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