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

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

+13
core.async

我在想,随着Project Loom的进展顺利,我们是否有重写或改造core.async的计划.... https://www.reddit.com/r/Clojure/comments/ch90sh/fibers_and_continuations_in_clojure_with_project/

2 答案

+1

看起来可以 straightforwardly 利用 pulsar 的 core.async 实现中的工作(pulsar 的作者似乎实际上在参与 Loom 的开发)。

pulsar.async

看起来只需将 pulsar 的纤维 API 替换为遗留 Clojure 代码的直接端口,或者围绕 Fiber 类及其友邻创建一个新的小 shiww。

虽然保持与传统 core.async 的 API 兼容性是期望的,所以代码在 clj/cljs 之间可迁移。我认为这主要为您提供将任意函数/闭包放在 go-block 中以及重新启用常见的惯用语模式的能力,如 for 或其他利用局部创建的闭包来实现的功能。
似乎这会得到一个功能超集(例如,在 JVM 上的 core.async 可以做更多),这意味着编写可移植代码的人必须注意可能的不兼容性。

考虑到多年来几乎没有观察到的大声反对,我很好奇目标市场将是谁。

+1

目前没有计划,看起来还是很猜测性的。

...