Welcome to Dialyzer's site at the Software Engineering Laboratory of NTUA

This site contains information for Dialyzer, the DIscrepancy AnaLYZer for ERlang applications.

Dialyzer is a static analysis tool that identifies software discrepancies such as definite type errors, code which has become dead or unreachable due to some programming error, unnecessary tests, etc. in single Erlang modules or entire (sets of) applications. Dialyzer starts its analysis from either debug-compiled BEAM bytecode or from Erlang source code. The file and line number of a discrepancy is reported along with an indication of what the discrepancy is about. Dialyzer bases its analysis on the concept of success typings which allows for sound warnings (no false positives).

You will soon find here papers about Dialyzer and tutorials for its suggested use (coming soon!)

You can find more information on how to use Dialyzer here.

For the time being, you can find results of continuously running Dialyzer on a set of open-source applications whose code is updated periodically.

In particular, under:

  • Current warnings: you can find warnings as produced by Dialyzer in the current Erlang/OTP development version ('dev')
  • Concurrency warnings: you can find warnings as produced by an experimental version of Dialyzer that detects some kinds of possible concurrency errors
  • Intersection warnings: you can find warnings as produced by an experimental version of Dialyzer that employs a stronger type inference which tracks argument-result dependencies
  • Finally, under Warning-free applications you can see the set of code bases for which Dialyzer was run but no warnings were emitted (in any of the above categories)

If you'd like your application to be added (or removed) from these runs, don't hesitate to contact us!

The first versions of Dialyzer were created by Kostis Sagonas and Tobias Lindahl.

People actively working and maintaining Dialyzer are Kostis Sagonas, Maria Christakis and Stavros Aronis.