[erlang-questions] Remove behaviour checking from erl_lint (continued)

Fred Hebert <>
Tue Dec 20 15:52:29 CET 2016

I'm not taking position here; I do enjoy the compiler yelling at me for 
valid reasons when it can, and most tools out there provide good 
integration with my editor based on its output rather than the output of 
other tools.

That being said, I'm not closed to the idea of people who care about the 
compiler's well-being to be able to clean it up and maintain it better.

On 12/20, Loïc Hoguin wrote:
>I believe xref should be made more approachable though, either in 
>documentation or interface. It seems to be capable of a lot more than 
>"rebar xref".

Xref is a better candidate to move that stuff to than dialyzer, which 
requires minutes of runtime the first time around, but also requires a 
lot of memory.

On my VPS, if I try to run dialyzer on the rebar3 code base, it will 
take minutes, yes, but will also hover between 1.0 and 1.5GB of RAM 
usage while pegging 3-4 of the 4 CPUs at 100%, until it eventually gets 
killed by the OS.

That's for 62 source files, and 29,000 LoC (we get 59 files and 12637 
lines of code if we stop analyzing certifi, which has CA cert bundles 
inlined -- but does not change the overall dialyzer behaviour of getting 
killed by the OS).

I'm not saying this to disparage dialyzer, but the type of analysis it 
can do and that I use it for (and where I run it) does not include the 
basic checks that xref or the compiler does.

xref usability also needs to be a bit better before I'd consider it to 
be an intuitive tool that does not require wrapping before running as an 
end user.

More information about the erlang-questions mailing list