请在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

看起来利用pulsar的核心async实现的工作应该很直接(pulsar的作者我认为正在做Loom)

pulsar.async

看起来你只需要用pulsar的fiber API替换它,或者直接复制遗留的clojure代码,或者仅仅创建一个小小的Fiber类和相关的shim

保持与遗留core.async的API兼容性似乎是个不错的选择,所以代码可以便携地在clj/cljs之间转换。我认为这主要给你带来的好处是能够在你的go-blocks中拥有任意函数/闭包,并重新启用诸如for或其他使用局部创建的闭包实现某物的常见惯例。
这可能意味着你会得到功能集的超集(例如,core.async在jvm上可以做到更多),这意味着编写可移植代码的人必须注意可能的兼容性问题。

鉴于多年来观察到的抱怨较少,我很想知道目标市场是谁。

+1

目前没有计划,看起来还很具推测性。

...