turion / rhine

Haskell Functional Reactive Programming framework with type-level clocks
http://hackage.haskell.org/package/rhine
123 stars 21 forks source link

Performance and Scalable FRP #183

Open jmatsushita opened 2 years ago

jmatsushita commented 2 years ago

Hi @turion

Hope you're doing well. I've been reading this paper on FRP performance which has a scalable-frp gitlab repo and was wondering if you're aware of it, and if you had thoughts about how some of the techniques could be applied and if they're relevant in the context of Rhine. For instance it seems that:

I wonder if it would then be possible to introduce define a route function of ClSFs over IORefs for optiimising stateful Rhines.

It feels to me that going this route possibly opens the door to interpret FRP into a somehow more ECS-ish approach, where we get to think both about pure signals in continuous time, type-safe synchronisation but also about efficient memory representations.

I also wonder if some of the benchmarks from the scalable-frp repo could be adapted to Rhine?

Cheers,

Jun

turion commented 2 years ago

I had read that article a longer while ago, and already forgotten about it. A couple of comments:

So my point is that for scalability, we actually need to improve large-scale composability. And that's what rhine tries. In summary it's always interesting to see at what other points in the design space people improve something, but it's not an improvement that I see necessary for rhine.

this route possibly opens the door to interpret FRP into a somehow more ECS-ish approach

Ah, how is that?

also wonder if some of the benchmarks from the scalable-frp repo could be adapted to Rhine?

Yes, benchmarks and tests would be a great addition to rhine!