评论由:jafingerhut 提出
好吧,我编写了一个程序来检查我的:添加注解是否具有正确的版本,并且编写了一些代码来检查所有公共变量,或者至少是public-vars-with-docstrings-have-added的deftest所检查的那些变量,以查看它们在哪些Clojure发布版中成功解析,以及它们在哪些发布版中不成功解析(或者它们的包络名称空间在那个Clojure版本中甚至还不存在)。
使用该程序验证了patch clj-2519-v2.patch中的所有:添加元数据都使用了正确的版本号。
我发现了24个可能不具有正确:< added> 版本号的公共变量,但它们都是< : added> 版本为"1.3"或更早的案例,修正后的版本也应该是"1.3"或更早。对这些进行修正是否有兴趣?
示例:所有这些变量的< :added> 都是"1.0",但很可能是从没有"-int"后缀的同名函数实现中复制的。带"-int"后缀的变量实际上是在Clojure 1.3中添加的
unchecked-add-int
unchecked-dec-int
unchecked-divide-int
unchecked-inc-int
unchecked-multiply-int
unchecked-negate-int
unchecked-remainder-int
unchecked-subtract-int
对于inc和inc',当inc'首次在Clojure 1.2之前的很久之前被添加时,inc有:< added> "1.0",inc'有< added> "1.2",这是正确的。在1.3发布之前一段时间,这两个函数定义的名称被交换了,但< :added> 值仍然保留在函数的实现体中,从那时起,我们就有了inc的< added> "1.2"和inc'的< added> "1.0"。我认为其他以单引号结尾的函数也是类似的。