评论者:jafingerhut
好吧,我写了一个程序来检查我的:added 注释是否具有正确的版本,并编写了一些代码来检查*所有*公共变量,或者至少是 public-vars-with-docstrings-have-added deftest 做的,以查看它们在哪些已发布的 Clojure 版本中成功解析,以及在哪些版本中它们无法解析(或者它们的命名空间在那个版本的 Clojure 中甚至根本不存在)。
使用该程序已经确认 clj-2519-v2.patch 中所有:added 元数据的版本号都是正确的。
我发现了24个可能没有正确冒号版本号的公共变量,但它们都出现在冒号版本是“1.3”或更早版本的情况下,而修正后的版本也将是“1.3”或更早。是否有人有兴趣纠正其中的任何一个?
示例:这些变量都具有冒号版本“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具有冒号版本“1.0”,而inc'具有添加“1.2”,这是正确的。在1.3发布前一段时间,这两个函数定义的名称进行了交换,但冒号版本值仍然保持在函数实现体中,从那时起我们就有了冒号版本为“1.2”的inc和冒号版本为“1.0”的inc'。我相信对于名称末尾带有单引号的其他函数也是类似的。