2024年Clojure状态调查中分享您的想法!

欢迎!请参阅关于页面以获取更多关于此工作的信息。

+1
集合

我遇到了需要检查某个东西是否为transient的情况,以便了解是否应该调用assoc(image: 或 assoc, conj)或 conj 等等。

此补丁将transient?添加为谓词函数。

11 个答案

0

评论由:alexmiller 发表

补丁需要文档字符串和测试。

0

评论由:devn 发表

Alex: 我认为那会是这样!为此道歉。我已经更新了补丁。现在它包括文档字符串,并对 #{}, (link: ), 和 {} 中的 transient? 进行了测试。

谢谢!

0

评论由:alexmiller 发表

谢谢 - 请不要使用标签“补丁”或“测试”,因为这些已在补丁字段中覆盖。

0

评论由:devn 发表

哎呀,对不起,亚历克斯。我以为你第一次修改时已经将“补丁”作为标签删除了,以标记此工单仍需经过审核的补丁。这是我的错误。

0

评论者:jafingerhut

补丁0001-Add-transient-predicate.patch(2014年3月17日)与最新的Clojure master版本完美匹配,但测试失败,因为新的函数transient?没有:added元数据。请参考clojure.core中的其他Clojure函数作为示例。

运行测试时还生成了新的警告

WARNING: transient? 已经在 clojure.test-clojure.data-structures 命名空间中引用: #'clojure.core/transient?,正被替换为: #'clojure.test-clojure.data-structures/transient?

测试文件data_structures.clj中有一个旧的(但等效的)transient?定义,当将其添加到clojure.core时应删除。

0

评论由:devn 发表

@Andy,我没有添加:added元数据的原因是因为我不知道这个补丁何时会被接受,并且因此,我也无法确定它是否会悄悄进入1.6.X或1.7。目前,我将其添加为1.7。如果有必要提前添加,请告诉我,我将调整它。

关于警告。太感谢了。我已经提交了一个新的补丁,该补丁从data_structures.clj中删除了transient?的私有版本。所有测试都通过了。

编辑增加:截至此次评论的最新补丁是0002-Add-transient-predicate.patch。

0

评论者:jafingerhut

由于今天早些时候提交的一些更改,补丁0002-Add-transient-predicate.patch(2014年3月22日)不再适用于最新的Clojure master版本。我还没有检查此补丁是否容易更新。

0

评论由:devn 发表

我已经将补丁更新到0003-Add-transient-predicate.patch。此补丁与最新版本的master完美匹配。

0

评论者:jafingerhut

补丁0003-Add-transient-predicate.patch(2013年8月6日)在2014年8月29日对Clojure进行提交后不再适用于最新的master版本。在那一天之前它一直适用。

我没有检查更新此补丁可能有多容易或有难度。

0

评论由:devn 发表

我已经将补丁更新到0004-Add-transient-predicate.patch。此补丁对master的最新版本应用无误。

0
参考:[https://clojure.atlassian.net/browse/CLJ-1386](https://clojure.atlassian.net/browse/CLJ-1386)(由 devn 提报)
...