[erlang-questions] McErlang

Kostis Sagonas kostis@REDACTED
Tue Oct 3 11:57:23 CEST 2017


On 10/03/2017 11:05 AM, Lars-Åke Fredlund wrote:
> 
> McErlang was a cool project though. Is McErlang better or worse than 
> Concuerror? Well, it is always better to use a maintained tool than a 
> tool that nobody has time to fix. The tools are based on different 
> internal ideas, with different search strategies, which at least in 
> theory can cause some errors to be detected by one tool to fail to be 
> detected by the other tool, and vice versa.

I would be interested in seeing a simple example program containing a 
_concurrency_ error that can be detected by McErlang but not by Concuerror.

AFAIK, Concuerror finds *all* concurrency errors (for a particular way 
of using/running a program), where the set of concurrency errors 
contains program crashes, assertion violations and global deadlocks that 
happen in some (and not necessarily in all) process schedulings of an 
Erlang program.

Thus Concuerror, in principle at least (i.e., modulo bugs in its code), 
actually *verifies*, using stateless model checking, that a particular 
(part of a) program is free of concurrency errors, in contrast to e.g. 
QuickCheck/PULSE which fundamentally cannot provide any correctness 
guarantees (other than probabilistic ones).

Best,
Kostis



More information about the erlang-questions mailing list