Welcome! Please see the About page for a little more info on how this works.

+13 votes
in core.async by

I was wondering if there are any plans to revamp/rewrite core.async now that Project Loom seems well underway.... https://www.reddit.com/r/Clojure/comments/ch90sh/fibers_and_continuations_in_clojure_with_project/

2 Answers

+1 vote
by

Seems like it would be straightforward to leverage the work from pulsar's core.async implementation (author of pulsar is actually working on Loom I think):

pulsar.async

Looks like you just replace the fiber API from pulsar with either a straight port of the legacy clojure stuff, or a new little shim around the Fiber class and friends.

Maintaining API compatibility with legacy core.async seems desirable though, so code is portable between clj/cljs. I think the main thing this buys you is the ability to have arbitrary functions/closures in you go-blocks and re-enables common idiomatic patterns like for or anything else that leverage locally created closures to implement something.
It seems like you'd get a superset of functionality (e.g. core.async on jvm could do more), which means folks authoring portable code would have to pay attention to possible incompatibilities.

Given the lack of observed outcry over the years, I'm curious as to who the target market would be.

+1 vote
by

No plans right now, seems fairly speculative still.

...