2024年Clojure调查问卷中分享您的想法!

欢迎!请参阅关于页面了解更多关于如何使用该网站的信息。

+13
Collections

添加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测试。您查看了这些测试失败以找出原因并修复它们吗?我在Oracle JDK 1.6和1.7的Ubuntu 11.10上测试了,两种情况都出现了类似的失败。

0

评论由:halgari制作

修复了补丁。测试通过,创建了补丁,将其应用到源代码的不同副本上,测试仍然通过。因此,这个新的补丁应该没问题。

0

评论由:jafingerhut制作

Timothy,我不确定你是在怎样应用此补丁时获得成功的。你能尝试以下步骤看看会发生什么吗?我在2012年10月26日的Clojure master上尝试应用补丁时遇到了错误。另外,请使用“开发”标题下的JIRA工作流页面上的步骤创建git格式补丁(在“http://dev.clojure.org/display/design/JIRA workflow”下找到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
第1个块在第32处失败。
1个块失败(3个块失败)-- 将错误存储在文件 src/jvm/clojure/lang/PersistentQueue.java.rej
正在打补丁文件 test/clojure/test_clojure/data_structures.clj
第1个块在第123处成功,模糊度2。
第2个块在第861处成功,模糊度2。
第3个块在第872处失败。
3个块失败(3个块失败)-- 将错误存储在文件 test/clojure/test_clojure/data_structures.clj.rej
正在打补丁文件 test/clojure/test_clojure/java_interop.clj

0

评论由:halgari制作

我知道你们了,我使用git apply。我试了你上面显示的方法,现在我遇到了和你显示的相同问题。

0

评论由:jafingerhut制作

请注意,创建和应用补丁的首选方法是“git format-patch master --stdout > patch.txt”创建补丁(在遵循JIRA工作流页面上的分支命令创建更改分支之后),以及“git am --keep-cr -s < patch.txt”应用补丁。如果以此方式创建的补丁可干净地应用该命令,则您绝对可以继续。

"patch -p1 < patch.txt"命令只是有时用来尝试应用上述格式产生的补丁或该方法应用时出现问题的辅助方法。

0

评论由:halgari制作

请注意,创建和应用补丁的首选方法是“git format-patch master --stdout > patch.txt”创建补丁(在遵循JIRA工作流页面上的分支命令创建更改分支之后),以及“git am --keep-cr -s < patch.txt”应用补丁。如果以此方式创建的补丁可干净地应用该命令,则您绝对可以继续。

"patch -p1 < patch.txt"命令只是有时用来尝试应用上述格式产生的补丁或该方法应用时出现问题的辅助方法。

0

评论由:halgari制作

添加了补丁

0

评论由:jafingerhut制作

这一项已经干净地应用并通过了所有测试。它应该会出现在下一个预审查补丁列表中。谢谢。

0

评论者:richhickey

我们其他地方不使用 queue* 约定,例如 vec 和 vector。我认为 queue 应该接受类似于 vec 和 set 的集合。可以将 (queue (link: 1 2 3)) 制作成“采用”集合作为头部。

0

评论由:jafingerhut制作

2012年10月26日发布的 patch queue.patch 已在最近的 CLJ-1000 提交后不再干净应用,但这仅仅是因为更改了补丁上下文的唯一一行。使用 "patch -p1 < queue.patch" 仍然可以干净应用。不再更新陈旧的补丁,因为 Rich 的评论建议进行更多的实质性更改。

0

评论者:[email protected]

参看 CLJ-976 (为 PersistentQueue 提供标记字面支持)

0

评论者:eigenhombre

不想踩脚 Tim B 的地盘,但是看起来把他的补丁应用到 Rich 的建议上是直接的。如果没有人想接手这个任务,我会试着修改它。

0

评论者:eigenhombre

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

0

评论者:eigenhombre

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

0

评论由:jafingerhut制作

此patch clj-1048-queue-takes-collections.diff成功应用到截至2014年1月23日的最新Clojure master版本,但在2014年1月30日并没有成功。在那周Clojure中做了几个提交,涉及更新哈希函数,这些更新与这个补丁存在冲突。我还没有检查更新补丁可能有多容易或者有多难。

...