This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-06-15
Channels
- # ai (1)
- # announcements (1)
- # aws (4)
- # babashka (9)
- # biff (1)
- # calva (1)
- # clerk (15)
- # clj-kondo (24)
- # clojure (23)
- # clojure-austin (7)
- # clojure-europe (19)
- # clojure-nl (2)
- # clojure-norway (33)
- # clojurescript (43)
- # conjure (4)
- # data-science (2)
- # datahike (5)
- # datomic (14)
- # defnpodcast (27)
- # domino-clj (1)
- # events (1)
- # honeysql (13)
- # hyperfiddle (44)
- # introduce-yourself (1)
- # java (4)
- # jobs (1)
- # jobs-discuss (11)
- # lsp (3)
- # malli (14)
- # missionary (5)
- # off-topic (44)
- # pedestal (2)
- # podcasts-discuss (1)
- # releases (8)
- # remote-jobs (2)
- # shadow-cljs (3)
b.31
released - DAG supervision https://github.com/leonoel/missionary/issues/70
hello memo
stream
signal
- check docstrings and readme snippet, more docs coming
goodbye reactor
stream!
signal!
- still usable but deprecated, will be removed eventually
So IIUC, this is cool for two reasons:
• it is essentially garbage collection for signals
• it removes the reactor
— the most complicated part of missionary — thereby making missionary substantially easier to use and more obvious how to use it
Also, congratulations to Leo on figuring all this out – we did a literature review and i believe we found very little discussion of the problem of garbage collection in reactive programming. (Like a few sentences in a 20 year old paper that noted this as future work, IIRC)
To see the API simplification, look at the https://github.com/leonoel/missionary/commit/f594fb0a7bcc2fb2ab8cf75c1d1d190c638bf9f8 – the green version has two fewer APIs needed (no m/reactor
and no m/stream
. I remember back in 2021 trying to figure out how to use the reactor and why m/stream!
was necessary and being unable to figure it out without Leo explaining it to me over zoom. So I think this is a major win.
I found surprisingly few prior art regarding garbage collection. One I did not mentioned in the ticket was Jane Street's incremental, which also discards nodes based on reference counting, unsubs are detected with GC finalizers which has reliability problems in practice (explanation : https://youtu.be/G6a5G5i4gQU?t=1488)