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

欢迎!请访问关于页面获取更多关于如何使用本站的信息。

+1 投票
集合

我遇到了一些情况,想检查某事物是否为transient,以便知道是否应该调用assoc(image: 或 assoc, conj)或conj等。

此补丁为predicat fn添加了transient?。

11 答案

0 投票

评论者:alexmiller

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

0 投票

评论者:devn

Alex:我想那应该是这种情况!抱歉,我已更新了补丁。现在它包括文档字符串,并对 #{}, (link: ), 和 {} 的 transident? 进行了测试。

谢谢!

0 投票

评论者:alexmiller

谢谢 - 请不要使用 "补丁" 或 "测试" 标签 - 这些已经由补丁字段包括。

0 投票

评论者:devn

啊,对不起Alex。我原以为你第一次删除"补丁"标签是为了将此票据标记为仍需经过审查的补丁。我的错。

0 投票

评论人:jafingerhut

2014年3月17日的补丁0001-Add-transient-predicate.patch在最新版本的Clojure master中可以干净地应用,但未能通过测试,因为新函数transient?没有:added元数据。请参考clojure.core中其他大多数Clojure函数作为示例。

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

警告:transient?已经引用:#'(clojure.core/transient?),位于命名空间clojure.test-clojure.data-structures中,正在被'#(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

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

0 投票

评论者:devn

我已经将补丁更新为0003-Add-transient-predicate.patch。此补丁可以干净地应用于最新版本的master。

0 投票

评论人:jafingerhut

2013年8月6日的补丁0003-Add-transient-predicate.patch在2014年8月29日对Clojure进行了一些提交后,不再适用于最新的master。在那一天之前,它仍然可以干净应用。

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

0 投票
by

评论者:devn

我已经更新了补丁到0004-Add-transient-predicate.patch。这个补丁可以干净地应用于最新版本的master。

0 投票
by
参考: https://clojure.atlassian.net/browse/CLJ-1386 (由devn报告)
...