Answers:
我的建议:
从代码实际使用的函数,变量,宏等开始。如果它使用Emacs的给定版本或函数的源库中引入的内容,则以该版本作为最低版本开始。
首次引入时,您使用的功能版本可能与该功能的原始版本不符。也许增加了更多的论点。检查这对您的特定用途是否重要。如果不是,那么您可以忽略此。如果是,则找到支持您的代码期望的最旧的源版本。
测试。至少获取您声称支持的任何版本的库的副本,然后尝试。
有时,对函数进行了较小的更改,并且您的代码从根本上不需要更新的版本。但是可能需要对其进行修改,以支持多个版本(如果您要这样做的话)。您可能需要测试该功能是否存在(fboundp
)或具有正确的签名/调用顺序。对于后者,subr-arity
可以帮助实现内置功能,但您可能需要使用condition-case
Lisp函数(以扩展数量的args进行调用,并通过以更少的args进行调用来处理错误数目的args错误)。