On 03/11/2013 10:20 AM, Daniel Patterson wrote:
Is there a way to call remote procedures in signal handlers? I looked through the manual and basis.urs and couldn't find anything.

The use case isn't particularly strange: I want to persist client side changes on the server, ideally only making rpc calls when something actually changes. I can spawn a thread that checks periodically if the value has changed (that's what I ended up hacking together), but at that point I'm replicating imperatively what FRP is supposed to eliminate!

I would actually consider it a bug if what you ask were possible! The [signal] monad is meant to rule out side effects, and RPCs can cause arbitrary side effects, not just locally but out in the real world. There would need to be some kind of type system, etc., to recognize RPCs that are suitably pure. Imagine the consequences of the "launch missile" RPC running every time the runtime system decides that some DOM subtree needs recomputation. ;)

Why not implement a general library for change listeners? Certainly there is some duplication with FRP, but at the same time I would expect it's pretty straightforward to implement. You could create a new abstract type that encapsulates a [source] plus change listeners.

_______________________________________________
Ur mailing list
[email protected]
http://www.impredicative.com/cgi-bin/mailman/listinfo/ur

Reply via email to