Fork me on GitHub
#missionary
<
2023-06-15
>
leonoel19:06:24

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

🔥 28
Dustin Getz14:06:33

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

Dustin Getz14:06:00

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)

Dustin Getz14:06:53

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.

leonoel19:06:45

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)