[erlang-questions] internal error in v3_life

Håkan Mattsson hm@REDACTED
Wed Jul 17 16:46:37 CEST 2013


On Wed, Jul 10, 2013 at 5:10 PM, Tuncer Ayaz <tuncer.ayaz@REDACTED> wrote:
> On Wed, Jul 10, 2013 at 4:05 PM, Hakan Mattsson wrote:
>> There is no explicit calls to any function in the 'v3_life' module.
>> Its functions are only called via apply. This means that reltool may
>> have problems to determine that the module is used or not.
>>
>> But as the default setting of module inclusion ('mod_cond' set to
>> 'all') in reltool also includes all modules listed in the app file
>> there should be no problem.
>>
>> I suspect that you have set 'mod_cond' to 'derived'. If that is the
>> case, reltool would not include the module.
>
> Hakan, if you take a look at the previously linked thread[4], you will
> see that with {incl_cond, derived} and without a custom mod_cond
> setting reltool pulls in 14 additional apps. Shouldn't the same apps
> already be included due to {incl_cond, derived} regardless of
> mod_cond?

No. If you for example take the tools app. It is included because sasl
uses xref. But tools does also contain more rarely used modules such
as cover_web. And cover_web uses webtool. webtool uses inets. inets
uses mnesia and ssl. etc. etc. This means that changing mod_cond from
'all' to 'derived' will have a big impact of how many
applications/modules that will be included in the target system.

If you have deep system knowledge you may of course do lots of tweaks
to customize your system. Such as changing mod_cond for the tools app
or explicitly excluding the cover_web module.

I recommend using the graphical version of reltool (erl -s reltool) to
explore system dependencies and play around with different settings of
mod_cond, incl_cond etc. It is interesting (and a bit scary) to see
all these unexpected dependencies...

/Håkan



More information about the erlang-questions mailing list