Longstanding issues: structs & standalone Erlang

Robert Virding robert.virding@REDACTED
Mon Feb 20 14:07:49 CET 2006


Kostis Sagonas skrev:
> Bengt Kleberg wrote:
>  > On 2006-02-15 21:01, Claes Wikstrom wrote:
>  > ...deleted
>  > > 1. Strip down OTP and make a base package consisting
>  > >    or erts, compiler, stdlib and kernel.
>  > 
>  > a good idea.
> 
> So far, I have not read any extremely convincing arguments why
> doing this will make Erlang more popular or easy to adopt for
> serious project development. So I am not sure whether this is
> such a good idea as others think it is.
> 
> One related obstacle is that currently doing this is not as
> straightforward as you may think it is.
> 
> For example, "compiler + kernel + stdlib" contain calls to
> functions in the following applications:
> 
> 	crypto, debugger, hipe, xref
> 
> which means that if one wants to maintain the current functionality
> with a guarantee of not getting "unknown function" exceptions during
> runtime, either these four applications will also need to be included
> or calls to them will need to be eliminated.
> 
> If the former is chosen, continuing this process until fixpoint,
> requires that the following set of applications is included:
> 
>    asn1, compiler, crypto, debugger, edoc, et, gs, hipe, inets,
>    kernel, observer, mnesia, mnemosyne, parsetools, runtime_tools,
>    snmp, stdlib, ssl, syntax_tools, tools, webtool, xmerl
> 
> Pretty much the bulk of OTP these days, except for
> 
> 	cos*, ic, megaco, mnesia_session, odbc, orber,
> 	os_mon, otp_mibs, pman, sasl, ssh, toolbar, and tv
> 
> The moral: software with lots of functionality often comes with
> complex dependencies between its components.

The main problem is that to do this properly then the libraries have to 
be strictly layered, and OTP is decidedly NOT layered! For example 
'erlang' is really part of the language yet also part of OTP, which 
means that from a layer view OTP is part of the language.

If this was done then it would be possible to split OTP into separate 
packages. It is not impossible to do it, it would just take some work 
and someone to be "layer nazi" and decide.

Robert



More information about the erlang-questions mailing list