Hacker News new | past | comments | ask | show | jobs | submit login

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.




Those disallow data races, not race conditions. I find that this blog post explains the distinction well: https://blog.regehr.org/archives/490


Ah, yes. My bad... I missed that crucial detail. Still, maybe a non-TC protocol language could fulfill the criteria?




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: