Fork me on GitHub
#funcool
<
2023-02-08
>
mccraigmccraig16:02:56

i've just got all tests green in promisespromises using promesa-CSP (public CI is broken, because there is no new promesa release yet)- so that's a cross-platform manifold-like (plus error-propagation, plus chunking) streams API, with promesa-CSP underlying

mccraigmccraig17:02:34

i'm really quite excited now ... the funcool/promesa + prpr/stream + prpr/a-frame (an async port of the event/cofx/fx bits of re-frame - much easier to grok than effects from freer monads 😬) stack gives a straightforward foundation for writing portable (clj/cljs) concurrent code with strict separation between pure/impure parts

mccraigmccraig17:02:18

i've already been using this approach on the backend, with manifold as the transport, but now i can use it on cljs too, which opens up some possibilities for a local-first app i'm working on - re-frame like events, but with cofx and fx hitting sqlite or indexeddb

niwinz22:02:08

nice to hear that 🎉

niwinz22:02:06

I'm working hard on bring CLJS part of promesa with compliant promise implementation that work the identical way as CompletableFuture, and I'm almost done, fixing tests and so... I guess, soon I will have it ready to prepare a new release

❤️ 2
niwinz22:02:12

On the end, my decision is going without the flag. Promesa has two API styles, one adapted for -> and other adaped to ->>. The first one, is base don then and catch and handle and finally and this will continue work as it working right now. The second one, is based on fmap, mcat, hmap, hcat and fnly, they were already stricter and performance oriented (in the same way as then' variant), so the posible breakage only will affect that API, not very common and not very well documented.

niwinz22:02:23

The API breakage is relative, because the docstrings are already clear on how it should work, If people is relying on the detail of implementation, it should to mean undefined behavior, so strictly it does not break anything.