如何使Emacs字节编译警告出错



在我的emacs包fsharp模式的持续集成测试中,我将字节编译添加到测试中,以便获得即时反馈。我大致使用:

 emasc -batch batch-byte-compile *.el

如果存在错误,则返回非零,但如果只是警告,则不返回。如果有任何警告,我也希望得到提醒,因为这可能包括对未定义函数的调用(由于拼写错误,以前也发生过这种情况)。

那么:在编译警告的情况下,我如何获得非零返回代码?

您可以将byte-compile-error-on-warn设置为非零值,如:

$ emacs -Q --batch 
    --eval '(setq byte-compile-error-on-warn t)' 
    -f batch-byte-compile *.el

不过,字节编译器现在会在第一个警告时停止,因此您应该在Makefile中将此设置设为可选设置,并仅在CI设置中使用它。

如果你需要比这更复杂的控制,你必须编写自己的后处理器,例如一个解析字节编译器输出并相应调整退出代码和/或输出的Python脚本,或者编写自己的batch-byte-compile变体来进行更复杂的处理。

最新更新