2 ms·
I think Erlang does? I don't really know Erlang, but AFAIK there's no way to share anything mutable between processes. Any data which is shared is (semantically
by Quekid5 7y ago
I think Erlang does? I don't really know Erlang, but AFAIK there's no way to share anything mutable between processes. Any data which is shared is (semantically) copied when it's sent to a different process. (Ignoring FFI, and such.)
Same thing applies to the STM "subset" of Haskell -- conformance to which is statically verified by the type checker[1].
[1] There's no particular magic going on wrt. checking -- STM is a monad. It just happens to have "magic" runtime support.
- zeeboo 7y agoThose disallow data races, not race conditions. I find that this blog post explains the distinction well: https://blog.regehr.org/archives/490 https://blog.regehr.org/archives/490
- Quekid5 7y agoAh, yes. My bad... I missed that crucial detail. Still, maybe a non-TC protocol language could fulfill the criteria?