在我的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
变体来进行更复杂的处理。