This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-07-30
Channels
- # aleph (39)
- # announcements (5)
- # babashka (7)
- # beginners (14)
- # biff (1)
- # clj-kondo (7)
- # clojure (38)
- # clojure-chicago (3)
- # clojure-europe (3)
- # clojure-norway (1)
- # clojurescript (8)
- # cursive (17)
- # data-science (6)
- # defnpodcast (3)
- # emacs (4)
- # figwheel-main (1)
- # honeysql (2)
- # hyperfiddle (2)
- # malli (20)
- # missionary (24)
- # off-topic (27)
- # reagent (4)
- # scittle (11)
- # shadow-cljs (51)
- # spacemacs (1)
- # xtdb (2)
@zimablue we'd need to impl persistent datastructures over typed arrays, kinda like https://github.com/Bnaya/objectbuffer And to get that working well between workers, we'd need to do a simple form of GC, using weak refs to lean on the JS garbage collector
A shorter path in the short term might be to wrap mfikes/bean around bnaya/objectbuffer, just to get a CLJS data facade over SABs
But you'd still have one conversion step, serializing your native CLJS data into the buffer data. But after that, you could bang on it all you want, from different workers
I'd recommend wrapping the buffered data in a swap!/deref interface, clearly demarcating the two types of data, so folks know that any data living inside of, or entering the swap transaction, is getting transformed to and from the formats, on the way in and way out. But whatever's living in there can stay that way, and can be shared between workers transparently
There's an initial crack at Typed Array backed persistent vectors here: https://clojure.atlassian.net/browse/CLJS-1153