请参与 2024 Clojure 状态调查!

欢迎!请在关于页面了解有关此方式的更多信息。

+13
序列
重新标记

抱歉没能倒序进行,而是先提交了票据/补丁。票据在这里: https://clojure.atlassian.net/jira/software/c/projects/CLJ/issues/CLJ-2786

该票据包含所有重要细节、基准测试结果和代码。这里我想听听大家对transient的普遍使用看法,他们是如何决定transient是否能带来性能提升而不是降级,以及其他任何可能的疑虑。我发现自己在使用transient时总有些矛盾的心理,可能是因为在《Clojure 的欢乐时光》一书中提到transient对于小输入不高效。当前Clojure版本的基准测试整体确认了这一点。

这个更改是否影响对象的自定义哈希或等价性语义?
我坚信它不会。这个补丁没有引入任何新的概念 —— 在当前的实现中,除了根节点之外的所有节点都已经按需复制,只有根节点提前复制。这个补丁只是将现有行为扩展到根节点。
对好奇的人来说,你可以在 Github 上发布你的补丁吗? :)
嗨 Janet!你可以在任务 https://clojure.atlassian.net/jira/software/c/projects/CLJ/issues/CLJ-2786 中查看补丁;它可以在附件中找到。或者你是要求上传到 Github,因为它是文本格式,不是很容易阅读吗?
嗨 Alex,我一开始甚至没有意识到那是一个 git diff。是的,我希望能有一个在 Github 上的分支或者其他什么 :P
的确,原始补丁不是在浏览器中查看的最佳选择。在本地查看时,大多数编辑器至少会为更改着色,但你无法像在仓库中的 git 提交那样很好地导航。

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

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

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

...