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

时间:2014-09-08 13:34:45

标签: testing emacs

在我的emacs包fsharp-mode的持续集成测试中,我正在为测试添加字节编译,以便立即获得反馈。我大致使用:

 emasc -batch batch-byte-compile *.el

如果出现错误,则返回非零值,但如果只是一个警告,则返回非零值。如果有任何警告,我也会收到警告,因为这可能包括调用未定义的函数(由于输入错误而发生过这种情况)。

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

1 个答案:

答案 0 :(得分:5)

您可以将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变体来执行更复杂的处理。