Subject: Re: [erlang-questions] Remove behaviour checking
from erl_lint (continued)
On 12/21/2016 04:13 PM, Richard A. O'Keefe wrote:
Let me offer another perspective.
Once you add -type and -spec declarations to your Erlang code,
it becomes ASTONISHING that your code is not in fact type checked
by the compiler.
There is no other programming language that I use or have ever
used in which source code *with* type information isn't checked
by the normal compiler, to the extent that it *can* be checked
It is fatally easy to think that because you took care
to write -type and -spec and the compiler is silent that
your code is type correct, when it isn't.
Long term, we should not be shunting off ever more checking
from the compiler to the dialyzer; on the contrary, the
dialyzer as a separate tool should disappear. There should
still be some compiler option to say how *much* checking is
to be done, but the default should be "I'll check everything
I can within the limits of what you've given me".
It doesn't seem like what you have said is as specific as it could be. I agree
it would be nice to have the compiler to type checking on the single module it
is processing. However, are you suggesting that the Erlang compiler that is
fed a single module should know about all other modules that will be used along
with it, at the same time, and effectively run dialyzer on the single module?
Since, if so, that should inherit the speed and memory problems dialyzer has,
only they would be multiplied by the number of modules being processed due to
the overhead involved. That would be a way of avoiding the need for dialyzer
erlang-questions mailing list