Remix.run Logo
BlanketLogic 4 days ago

It is based on actors and "reference capabilities". These two blogs[1,2], could provide nice introduction.

1. https://blog.jtfmumm.com//2016/03/06/safely-sharing-data-pon... 2. https://bluishcoder.co.nz/2017/07/31/reference_capabilities_...

gpderetta 4 days ago | parent [-]

That's quite interesting, but it doesn't answer the question: Would the python program running on an interpreter written in pony deadlock or not?

gf000 4 days ago | parent [-]

It would livelock

gpderetta 4 days ago | parent [-]

I wouldn't call it a livelock, because I wouldn't expect the runtime to be doing any (useless) work on behalf of the program.

Still, trading deadlocks for livelocks is a net negative as they are harder to identify and diagnose.

senderista 4 days ago | parent [-]

Paxos necessarily livelocks and still seems useful. More generically, all nonblocking algorithms which are only “obstruction-free” can livelock, but techniques like randomized backoff can make them quite reliable in practice (just like Paxos/Raft).