

A Concurrency System for Idris and Erlang - kungfooguru
http://lenary.co.uk/publications/dissertation/

======
vezzy-fnord
Quite interesting. It's an Idris interface that wraps around the Erlang
primitives and OTP behaviors so as to generate Erlang code from a verified
Idris implementation.

It's an interesting way to get around the dynamically typed nature of Erlang,
as some of its properties have meant that despite several attempts, no one has
managed to retrofit a complete type system yet, though Dialyzer provides
approximate inference, in a similar manner to what I believe is a SAT solver.

Nonetheless, it's worth noting that Erlang's dynamically typed nature is
nowhere near as much of an impediment as in other languages precisely due to
fault tolerance guarantees from preemptively scheduled isolated actors and
standard OTP behaviors providing supervision links, plus the fact that you
pattern match on literal values. This and the encapsulation provided by
modules leads to a remarkable system resilience even without much of a typing
discipline, which shows that robust systems should have many other properties
besides the type system.

Even still, anything to formally verify Erlang behaviors is a welcome advance.
A rigorous approach is likely to uncover plenty of bugs and strengthen BEAM,
which in turn will improve Elixir and others as well.

~~~
rdtsc
Another powerful approach is property testing.

Here is a series of blog posts about how it was using to find bugs in the new
implementation of maps:

[https://medium.com/@jlouis666/breaking-erlang-
maps-1-31952b8...](https://medium.com/@jlouis666/breaking-erlang-
maps-1-31952b8729e6)

------
efnx
I like his Simpsons reference at the end there.

~~~
qnaal
isn't it more of a slashdot reference now?

