评论由:jafingerhut 发表
OK,我编写了一个用于检查我的:added批注版本是否正确的程序,并编写了一些代码来检查<强>所有的 公共变量,或者至少是public-vars-with-docstrings-have-added deftest 所检查的变量,以查看它们在哪个已发布版本的Clojure中成功解析,以及它们在哪个版本中失败了(或者其命名空间在该版本的Clojure版本中尚不存在)。
该补丁 clj-2519-v2.patch 中所有的:added元数据都经过该程序确认,具有正确的版本号。
我发现有24个公共变量可能没有正确的: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"。我相信对于以单引号结尾的其他函数也是这样。