[erlang-questions] Dialyzer and multiple plt files

Kostis Sagonas <>
Thu May 8 07:48:43 CEST 2008


Eric Merritt wrote:
> Guys (probably Tobias ;)
> 
> Is there a way to get Dialyzer to use multiple plt files for its
> analysis. Let me give you the background. Sinan uses dialyzer for its
> analysis task. During its first run in a project it generates a new
> plt file for that projects dependencies and stores it in the build
> area. Depending on the project that can take a huge amount of time. I
> think a nice way to solve this problem is to generate plt files for an
> OTP app and distribute those files with that app. Then in my analysis
> phase I just have to identify the plt files stored in the dependencies
> and let Dialyzer make use of them. I don't believe this is possible at
> the moment and it may be that I am the only one with this type of
> requirement, but it would be a nice feature to have.

The feature you want is a nice thing to have but realizing it properly 
is quite complicated.  The reason is that good PLTs cannot be built in 
isolation: dependencies between applications have to be taken into 
account and these dependencies are often circular -- Erlang does not 
enforce an hierarchical module system as e.g. ML does.  Also, for a 
sound analysis, these dependencies have to be checked every time a PLT 
is used.

We have been discussing this issue for quite a while now and recently 
(10 days ago) decided to change the way PLTs are built and used so that 
it is possible to merge two (or more) PLTs.  This will achieve something 
very similar to what you want: you will be able to build PLTs on a per 
application basis, but these PLTs will not be coming pre-built in the 
OTP system.  Interested users will need to build them themselves. 
Hopefully, this change will make it into R12B-3.

Stay tuned,

Kostis



More information about the erlang-questions mailing list