This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-05-31
Channels
- # announcements (6)
- # babashka (40)
- # beginners (6)
- # calva (1)
- # cider (1)
- # clerk (43)
- # clj-kondo (3)
- # clojure (93)
- # clojure-denver (8)
- # clojure-europe (52)
- # clojure-norway (20)
- # clojure-sweden (7)
- # community-development (5)
- # datascript (15)
- # datomic (30)
- # emacs (24)
- # events (15)
- # fulcro (23)
- # graalvm (12)
- # gratitude (1)
- # helix (4)
- # honeysql (4)
- # hoplon (39)
- # hyperfiddle (7)
- # introduce-yourself (1)
- # jobs (1)
- # jobs-discuss (26)
- # lambdaisland (3)
- # lsp (6)
- # matcher-combinators (2)
- # matrix (5)
- # meander (39)
- # nrepl (4)
- # nyc (1)
- # off-topic (5)
- # portal (73)
- # practicalli (1)
- # re-frame (2)
- # reitit (22)
- # releases (1)
- # remote-jobs (4)
- # shadow-cljs (5)
- # sql (17)
- # testing (1)
- # tools-deps (15)
Just stumbled across this gold mine getting ready for my talk with the Hoplon crowd: https://tailrecursion.com/~alan/micha_on_hoplon_vs_react/index.html Impressed even more by the similarities wit #CKCBP3QF9 So glad it is being refurbished. The new mic is fun!
wanted to check understanding of propagation model: is it true that formulas are only run if they have a dependency? e.g. reads on formulas mark the formula for execution on the next "cycle"?
"is it true that formulas are only run if they have a dependency?"
Ah, I left that out. If a formula hits no dependencies, including hitting only dependencies which themselves turn out to have no dependencies, they get optimized out of existence. This, btw, turned out to be a huge performance win, because of the cost of dependency tracking. I was stunned by the peformance win.
"reads on formulas mark the formula for execution on the next "cycle""
Reads on formulas, those that have not been optimized away, result in a "link" object being created that both cells know about. But like Javelin, IIUC, re-computation of a formula on the next state change does not happen unless a dependency actually changes. Links just tell the depended on cell whom to notify should it change, and tell the depending cell from whom to disconnect should they no longer need it, either because they go out of existence entirely, or because they get triggered and conditional branching in the cell formula decides not to sample a cell used the last time. This is the "dynamic dependency" I touched on only briefly, and why in the case of (if A B C)
we always depend on A but never depend on both B and C after a cycle.
Forgot to ping you! @U04VC31U8
thanks very much, all makes sense 👍