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

欢迎!请查看关于页面以获取更多关于该功能的详细信息。

+13
集合

添加 queue 函数,用于从集合创建队列,以及 queue? 谓词来检查队列的存在性。

补丁: clj-1078-3.patch

预审: Alex Miller

拥有这将会非常酷。将 `#queue` 添加到默认数据读取器中将会更加酷。

23 个回答

0

评论者:jafingerhut

Timothy,我尝试在2012年9月26日最新的 Clojure master 版本上应用这两个补丁。由于无法使用 git 或 patch 应用 0001-make-PersistentQueue-ctor-public.patch,我不得不手动应用它。构建成功,但未能通过几个 Clojure 测试。你检查过这些测试失败的原因并修复了它们吗?我在 Ubuntu 11.10 上使用 Oracle JDK 1.6 和 1.7 进行了测试,并发现两者都出现了类似的失败。

0

评论文档:halgari

修复了补丁。测试通过,创建了补丁,将其应用于不同的源副本,测试依然通过。因此,这个新的补丁应该可以使用了。

0
by

评论者:jafingerhut

蒂莫西,我不确定你是如何应用这个补丁并得到成功结果的。你能尝试以下步骤看看会发生什么吗?我在10月26日的Clojure master最新版本的测试中遇到了错误。另外,请使用JIRA工作流程页面上的步骤来创建git格式补丁(在“开发”标题下的“http://dev.clojure.org/display/design/JIRA workflow”)。

% git clone git://github.com/clojure/clojure.git
% cd clojure
% patch -p1 < queues.patch
修补文件 src/clj/clojure/core.clj
修补文件 src/jvm/clojure/lang/PersistentQueue.java
Hunk #1失败于32。
1个街区中有1个街区失败--将拒绝保存到文件src/jvm/clojure/lang/PersistentQueue.java.rej。
修补文件test/clojure/test_clojure/data_structures.clj
Hunk #1在123处成功,模糊值2。
Hunk #2在861处成功,模糊值2。
Hunk #3失败于872。
3个街区中有1个街区失败--将拒绝保存到test/clojure/test_clojure/data_structures.clj.rej
修补文件test/clojure/test_clojure/java_interop.clj

0
by

评论文档:halgari

我之前使用了git apply。我尝试了你上面显示的方法,现在我看到了你上面显示的相同问题。

0
by

评论者:jafingerhut

只是让您知道,创建和应用的补丁的首选方法是“git format-patch master --stdout > patch.txt”来创建补丁(在按照JIRA工作流程页面上的分支命令进行分支操作后),然后用“git am --keep-cr -s < patch.txt”应用补丁。如果补丁以这种方式创建并且应用命令正常,那么你可以肯定没问题。

"patch -p1 < patch.txt"命令只是有时用作应用上述格式输出的补丁或在该方法中应用时出现错误的辅助方法。

0
by

评论文档:halgari

只是让您知道,创建和应用的补丁的首选方法是“git format-patch master --stdout > patch.txt”来创建补丁(在按照JIRA工作流程页面上的分支命令进行分支操作后),然后用“git am --keep-cr -s < patch.txt”应用补丁。如果补丁以这种方式创建并且应用命令正常,那么你可以肯定没问题。

"patch -p1 < patch.txt"命令只是有时用作应用上述格式输出的补丁或在该方法中应用时出现错误的辅助方法。

0
by

评论文档:halgari

已添加补丁

0

评论者:jafingerhut

这一个问题干净利落并且通过了所有测试。它应该会在下一个预筛查补丁列表中显示。谢谢。

0

评论者:richhickey

我们在其他地方没有使用queue*规范,例如vec和vector。我认为queue应该像vec和set一样接受一个集合。(queue (link: 1 2 3))可以被制作出来,使集合作为前面。

0

评论者:jafingerhut

补丁队列.queue.patch在2012年10月26日不再在最近的CLJ-1000提交后干净利落,但只是因为有一行更改的补丁上下文。使用"patch -p1 < queue.patch"仍然可以干净利落应用。不考虑更新由于Rich的评论而建议的更多实质性更改的陈旧补丁。

0

评论者:[email protected]

参见CLJ-976(对PersistentQueue的标记文字支持)

0

评论者:eigenhombre

不想在这里踩到Timothy B的脚趾头,但看起来将他的补丁应用到Rich的建议上是直截了当的。如果现在没有人想要这个票据,我会提出提供帮助。

0

评论者:eigenhombre

在clojure-dev上发起的讨论:https://groups.google.com/forum/?fromgroups#!topic/clojure-dev/2BOqHm24Vc4

0

评论者:eigenhombre

此补丁(如果被接受)将取代Timothy Baldridge的补丁;它实现了“队列”和“队列?”(不包括“队列**”);“队列”接受一个集合,而不是作为可变参数函数,如Rich的建议。

0

评论者:jafingerhut

补丁clj-1048-queue-takes-collections.diff于2014年1月23日顺利应用于最新的Clojure主版本,但在1月30日没有。在这一周内,Clojure进行了几个提交,涉及更新哈希函数,这些函数与本补丁存在某种冲突。我尚未检查更新此补丁的可能难易程度。

...