4 ms·
I assume you mean "Functional Reactive Animation" (1997) by Conal Elliott and Paul Hudak? While searching for this, I found a great collection of papers on this
by lioeters 3mo ago
I assume you mean "Functional Reactive Animation" (1997) by Conal Elliott and Paul Hudak? While searching for this, I found a great collection of papers on this topic of Functional Reactive Programming in the Haskell language wiki. Most are by Elliot and/or Hudak. Good stuff!
https://wiki.haskell.org/Research_papers/Functional_reactive_programming https://wiki.haskell.org/Research_papers/Functional_reactive...
This feels related to many other topics and various strategies, like incremental parsing/compilation/computation, reactivity, CRDTs (conflict-free replicated data type) and distributed computing. About coordinating state changes, reconciling differences, managing dependencies and derived values.
@jitl, the "Data oriented signal library", dalien-signals, looks very interesting and useful, particularly for efficient UI rendering like large tables or maybe editors. I'll enjoy exploring it.
- jitl 3mo agohere’s a page with a very unscientific benchmark that runs a computed signal for every pixel of a {320p, 480p, 720p, 1080p, 4k} canvas and tries to recompute 10% of the graph per frame. on my m4 macbook pro, dalien-signals manages the highest fps and lowest heap out of libraries i could find to test. i think there’s still room for improvement though, im not satisfied with cache locality of graph under heavy churn; iirc i only compact/move stuff on resize or a large deallocation batch. so theres potential for original js-heap-allocated alien-signals to be faster in spots where moving GC becomes an advantage. lemme know if my library ends up being a win for you! https://justjake.github.io/dalien-signals/ https://justjake.github.io/dalien-signals/
- lioeters 3mo ago[dead]
- seanmcdirmid 3mo agoYes definitely for compilation. Memoizing the tree and then repairing parsing and type information on each edit is how you get super fast responsiveness with code completion. It was relevant a couple of decades ago, things are different now with AI.