[erlang-questions] picky dialyzer

Björn Gustavsson bgustavsson@REDACTED
Tue Jan 18 08:36:52 CET 2011


2011/1/14 Kostis Sagonas <kostis@REDACTED>:

> You are right. Apparently, enabling HiPE causes the loader to crash
> miserably when one tries to load a function with 256 arguments.
> This is very surprising, because no native code is involved.

The crash is in hipe_unified_loader. It crashes the code_server
process before it has found out that there is no native code
to load.

> I can of course investigate and possibly correct this throughout but I am
> also wondering: is this 0..256 a sane choice? Why on earth one would have
> such a range? Wasn't Erlang exotic enough without this feature? :-)

The 0..256 range was an arbitrary choice decided long before
there was a Dialyzer.

Actually, I am willing to change the range to 0..255 in the next
release in order to keep the Dialyzer type simple and beautiful.
I don't think that there is any code depending on a function
having 256 arguments, so that change should be safe.

> PS. I still do not like:
>
>        erlc f_257.erl
>
>    Happily succeeding and generating a bogus file.
>

The loader will refuse to load the file, so it will not
crash the emulator. But I'll try to add the check to
the compiler in the next release.

-- 
Björn Gustavsson, Erlang/OTP, Ericsson AB


More information about the erlang-bugs mailing list