[erlang-questions] dialyzer and re(3)

Kostis Sagonas <>
Fri Nov 14 11:24:55 CET 2008


Paul Guyot wrote:
> 
> Le 11 nov. 08 à 17:34, Kostis Sagonas a écrit :
> 
>>>> While we appreciate dialyzer very much and we rely on it,
>>>> we are somewhat disappointed by its current limitations
>>
>> Can you please be a bit more specific about "its current limitations" ?
>> (perhaps even off the list if you think that's more appropriate).
> 
> All limitations we noticed were mentioned here. For example, there is 
> the lack of support for recursive types, or the contract induction that 
> is sometimes too liberal. But we gave up on recursive types and being 
> too liberal just means that dialyzer might miss bugs, which it always 
> will anyway.
> 
> Like many other erlang users, we wish there was a generalized support 
> for types in stdlib, with a merge of edoc and -spec syntaxes, which is 
> planned for R13 I read. A generalized support for parametrized types 
> would also improve dialyzers' scope. For example a gb_sets where all 
> elements are of a single type X would allow dialyzer to check operations 
> such as gb_sets:add_element/2. We'd also love an extended support for 
> apply/2 and apply/3 (which is more tricky) and for behaviour callbacks. 
> For example, we implemented a parse_transform that checks at compile 
> time that gen_server:call and cast calls match the handle_call and 
> handle_cast callbacks, but this typically could be checked by dialyzer.

These are all very good suggestions/wishes and most of them(*) are also 
on our TODO list.  Let's see when we'll get to them...

However, a nice property of open source projects is that they offer the 
opportunity for users to contribute.  Dialyzer is no exception in this 
respect.

Kostis

(*) with the exception of apply.



More information about the erlang-questions mailing list