[erlang-questions] picky dialyzer

Tony Rogvall <>
Fri Jan 14 16:24:30 CET 2011


On 14 jan 2011, at 15.56, Ulf Wiger wrote:

> Ouch! What say you, Kostis? Waiting for the comeback from Dialyzer. :)
> 
> Of course now I'm also curious what leads to such a weird limit as 256
> arguments… obviously, 0 args is allowed, so the range 0..256 does at
> least make my eyebrow twitch a little. Björn?
> 

Switch side now, are we ? ;-)

/Tony

> BR,
> Ulf
> 
> On 14 Jan 2011, at 15:40, Björn Gustavsson wrote:
> 
>> On Thu, Jan 13, 2011 at 2:09 PM, Kostis Sagonas <> wrote:
>>> 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})
>>> 
>> 
>> Works fine for me:
>> 
>> $ erlc f_256.erl
>> $ /ldisk/bjorn/otp/bin/erl
>> Erlang R14B02 (erts-5.8.3) [source] [smp:4:4] [rq:4] [async-threads:0]
>> [kernel-poll:false]
>> 
>> Eshell V5.8.3  (abort with ^G)
>> 1> l(f_256).
>> {module,f_256}
>> 2>
>> 
>> 
>> If I try to load a function with 257 arguments, the loader will
>> refuse to load the file:
>> 
>> Erlang R14B02 (erts-5.8.3) [source] [smp:4:4] [rq:4] [async-threads:0]
>> [kernel-poll:false]
>> 
>> Eshell V5.8.3  (abort with ^G)
>> 1> c(f_257).
>> 
>> =ERROR REPORT==== 14-Jan-2011::15:34:45 ===
>> beam/beam_load.c(2115): Error loading function f_257:f/257: op
>> i_func_info: IaaI:
>> too many arguments: 257
>> 
>> {error,badfile}
>> 
>> =ERROR REPORT==== 14-Jan-2011::15:34:45 ===
>> Loading of /home/bjorn/test/f_257.beam failed: badfile
>> 2>
>> 
>> 
>> (Hint: Note that HiPE is not enabled in the
>> emulator I used.)
>> 
>> -- 
>> Björn Gustavsson, Erlang/OTP, Ericsson AB
> 
> Ulf Wiger, CTO, Erlang Solutions, Ltd.
> http://erlang-solutions.com
> 
> 
> 
> 
> ________________________________________________________________
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:
> 

"Have run Make so many times I dunno what's installed anymore"



More information about the erlang-questions mailing list