Kostis Sagonas
Leader of the HiPE Team and Erlang Tool Developer
Uppsala University and National Technical University of Athens
Kostis Sagonas is an academic who has been heavily involved in the development of Erlang and its implementation since 1999. At Uppsala University, he led the development team of the HiPE native code compiler that nowadays is part of Erlang/OTP. Together with his students, first at Uppsala University and more recently at the National Technical University of Athens, he has proposed various changes and additions to the language (most notably: bit-level pattern matching and bit-stream comprehensions, and the language of type and spec declarations) and has contributed to its compiler and runtime system. Besides HiPE, he has designed and implemented software development tools for Erlang (dialyzer, typer, tidier, proper, ...) and has contributed bug fixes to many open-source Erlang projects.
GitHub: kostis
Kostis Sagonas is Giving the Following Talks
Finding Concurrency Errors using Concuerror
Concurrent programs are notoriously difficult to get completely error free. This, sadly, is as true in Erlang as it is in other languages.
Specific process interleavings that occur only rarely can result in unexpected errors that manage to puzzle and surprise even expert
Erlang programmers. Furthermore they are often difficult to reproduce.
This talk will show some examples of such errors. More importantly, it will introduce Concuerror, an open-source systematic testing (also
known as stateless model checking) tool that supports the test-driven development of concurrent Erlang programs in order to detect early and
eliminate the vast majority of concurrency-related errors (e.g. data races, unexpected crashes, deadlocks, etc.) that may occur in their
execution. A salient feature of Concuerror is that it is completely automatic and works out of the box with existing (Eunit) test suites
and in principle finds all concurrency related errors that are triggered by a specific test. In addition, the tool clearly shows
execution traces that lead to errors, it can deterministically replay them, and comes with a variety of options.
If time permits the talk will include live demos.
Talk objectives: Convince Erlang programmers both about the subtlety of concurrency errors and the ease of applying TDD using Concuerror.
Target audience: Erlang developers.