▲ | kentonv 3 days ago | |
Almost all ocap systems seem to use event loops -- and many of the biggest ocap nerds I know are also the biggest event loop nerds I know. I'm not actually sure if this is a coincidence or if there's something inherent that makes it necessary to pair them. But one thing I can't figure out: What would be the syntax for promise pipelining, if you aren't using promises to start with? | ||
▲ | catern 3 days ago | parent [-] | |
>What would be the syntax for promise pipelining, if you aren't using promises to start with? Oh, great point! That does seem really hard, maybe even intractable. That's definitely a reason to like cooperative concurrency, huh... Just to tangent even further, but some ideas: - Do it the ugly way: add an artificial layer of promises in an otherwise pre-emptive, direct-style language. That's just, unfortunately, quite ugly... - Use a lazy language. Then everything's a promise! Some Haskell optimizations feel kind of like promise pipelining. But I don't really like laziness... - Use iterator APIs; that's a slightly less artificial way to add layers of promises on top of things, but still weird... - Punt to the language: build an RPC protocol into the language, and promise pipelining as a guaranteed optimization. Pretty inflexible, and E already tried this... - Something with choreographic programming and modal-types-for-mobile-code? Such languages explicitly track the "location" of values, and that might be the most natural way to represent ocap promises: a promise is a remote value at some specific location. Unfortunately these languages are all still research projects... |