2009/11/7 Jason L Tibbitts III <tibbs(a)math.uh.edu>:
A question occurred to me after doing a review recently about
Erlang source is compiled and linked together like C source or whether
the source files remain separate like, say, Python. The issue is an
Erlang package where some source files are LGPLv3+ but one is GPLv2+. I
took the safe route and assumed that the final result is GPLv3+, but
unfortunately I don't quite know enough about either Erlang or the
actual legal threshold at which the sources are considered to be
commingled. When I look at the compiled application, it looks as if
each of the .erl files gets turned into a .beam file, and those files
look to be kept separate in the final package.
Well, I've got some erlang experience, so I could say something here.
To illuminate the situation with Erlang and different licensing scheme
for its modules, I would like to describe some basics of erlang
* Every erlang binary is made from the only source file, and none of
them has two or more sources of origin ("include" statement does work
like similar directive in C/C++, although direct copying of other
valid erlang *.erl file is not possible - so they do independent of
* Every binary file is self-sufficient entity and doesn't require that
other modules must exist (however the proper work in this case would
be highly unlikely). Erlang virtual machine doesn't use any kind of
(pre)linking. Modules completely independent from each other,
although may include mentioning/invocation of each other (say, ModuleA
can call ModuleB:MethodB - in this case virtual machine tries to load
ModuleB, execute MethodB and return the result into ModuleA (or
error/exception).Think of this mechanism as of highly upgraded "man 3
* Modules can be dynamically loaded/unloaded/replaced by new ones by
demand (even from/to another host via network).
Feel free to ask me for other details.
From my PoV (IANAL), erlang library/program with sources, released
under different licences, should be marked in spec-file as "License:
LicenseA and LicenseB and LicenseC"
With best regards, Peter Lemenkov.