[erlang-questions] picky dialyzer

Kostis Sagonas kostis@REDACTED
Thu Jan 13 14:09:27 CET 2011


Ulf Wiger wrote:
> On 13 Jan 2011, at 12:09, Kostis Sagonas wrote:
> ....
>> mfa() is an alias for {atom(),atom(),byte()}.
> 
> Ahh, as in {Module, Function, Arity}?
> 
> In the System Limits of the Efficiency Guide, it says that you can have 
> 256 arguments in a function or fun. Since dialyzer is never wrong, I will
> assume that the Efficiency Guide is? :)

Let's see...

%%=========================================================
-module(f_256).

-export([f/256]).

f(_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_) 
-> ok.
%%==========================================================


% erlc f_256.erl
% ~/HiPE/otp/bin/erl
Erlang R14B02 (erts-5.8.3) [source] [smp:4:4] [rq:4] [async-threads:0] 
[hipe] [kernel-poll:false]

Eshell V5.8.3  (abort with ^G)
1> l(f_256).
{"Kernel pid 
terminated",application_controller,"{application_terminated,kernel,shutdown}"}

Crash dump was written to: erl_crash.dump
Kernel pid terminated (application_controller) 
({application_terminated,kernel,shutdown})


Well, what can I say?  Dialyzer is never wrong! ;-)

I guess the efficiency guide needs some fixing.

Also, the compiler should better complain in such cases instead of 
generating a bogus .beam file.

Kostis


More information about the erlang-questions mailing list