评论人:jafingerhut
好吧,我写了一个程序来检查我的:added注释是否具有正确的版本,并编写了一些代码来检查所有公共列表,或者至少是public-vars-with-docstrings-have-added deftest所做的那些,以查看它们在哪个发布版本中的Clojure中成功解析,哪些没有(或它们的命名空间在该版本的Clojure中甚至还不存在)。
使用这个程序,补丁clj-2519-v2.patch中的所有:added元数据都经过确认,其版本号是正确的。
我发现24个公共var可能没有正确的: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' 有添加 "1.2",这是正确的。在 1.3 版本发布前的一段时间内,这两个函数定义的名称被调换了,但 :added 值仍然与函数的实现主体相关联。从那时起,inc 有 :added "1.2",inc' 有 :added "1.0"。我相信对其他以单引号结尾的函数也是如此。