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

欢迎!请访问关于页面了解更多关于其如何运作的信息。

+13
序列
重新标记

对此做法反序并首先提交票证/补丁表示歉意。票证在这里:https://clojure.atlassian.net/jira/software/c/projects/CLJ/issues/CLJ-2786

票证包含所有重要细节、基准测试结果和代码。在这里,我想知道人们是否通常使用 transients,他们是如何决定使用 transients 是否会导致性能提升而不是降低,以及其他可能的疑虑。当通过 transients 做事情时,我总是感到矛盾,可能是因为《Clojure 的乐趣》一本书中声称 transients 对小输入效率低下。使用当前版本 Clojure 进行的基准测试总体上确认了这一点。

这个变化会对对象的哈希或等价语义产生影响吗?
我确信它不会。补丁引入了没有任何新概念——在当前的实现中,除了根节点之外的所有节点都是按需复制的,而只有根节点是预先复制的。补丁只是将现有的行为扩展到根节点。
好奇的话,你能把你的补丁发布到Github吗? :)
嗨Janet!你可以在工单中查看补丁:[https://clojure.atlassian.net/jira/software/c/projects/CLJ/issues/CLJ-2786]; 它可以在附件中找到。或者你是不是建议上传到Github,因为它作为纯文本读取并不太容易?
嘿Alex,我一开始甚至没有意识到那是一个git diff。是的,我希望能有一个Github上的分支或者什么的 :P
确实,直接在浏览器中查看原始补丁不是最喜欢的方式。当在本地查看时,大多数编辑器至少会为变更着色,但你仍然无法像在(repo)中的git提交一样方便地导航。

问题是,发送补丁是向Clojure贡献代码的唯一接受工作流程。这就是为什么你会看到带有补丁附件的Jira工单,而没有Github上的PR。

无论如何,这是我在Github上的提交:[https://github.com/alexander-yakushev/clojure/commit/9d12dec06e4a9e0ec21e1b43741dc7d6adafc45e]

登录注册来回答这个问题。

...