[erlang-questions] Erlang "jar" file?

Valentin Micic <>
Thu Nov 1 06:54:05 CET 2007


On occasion we do on-line incremental upgrade (code purge/delete) of a 
particular module... how would this aspect work with respect to this change? 
For example, assuming that we have a module M, that has been loaded as a 
part of the archive A. Than, at the later stage, if one upgrade module M, 
well, if archive A is already "on the path", how do we avoid loading old M? 
By removing it from the archive A? That's ok, but how do we roll-back the 
changes, i.e. roll-back to the old version of M? Yes, one can extract the 
old file, than remove it, if possible... in other words, quite cumbersome. 
Then if you have two teams developing independently, both using module X, 
and both teams deciding that they'd like to put it in independent archives. 
Brrrrr... nightmare.

While archive may make some tasks simpler, it might complicate others. One 
may afford some degree of complexity when the time is not an issue. However, 
when one needs to panel-beat the system to satisfy some ad-hoc tests 
(usually politically motivated), complexity is something you would try to 
avoid.

V.

----- Original Message ----- 
From: "Kenneth Lundin" <>
To: "Geoff Cant" <>
Cc: "Bernhard Damberger" <>; <>
Sent: Wednesday, October 31, 2007 11:23 PM
Subject: Re: [erlang-questions] Erlang "jar" file?


> Hi,
>
> Loading code from zip archives or whatever other archive format has
> already been implemented but not released.
>
> We tried code loading from zip files with focus on compatibility and
> improved speed for
> code loading (it is easier if you skip the compatibility or make the
> user to choose between ordinary code loading as of today and archive
> loading)
> There was no speed improvement so we did not release it.
> But now we are considering adding support for code loading from
> archive files again,
> not for the sake of improved speed but for the reduced number of files you 
> need
> to distribute.
>
> This will most probably show up in a R12B-x release next year.
>
> /Kenneth (Erlang/OTP team at Ericsson)
>
> On 10/31/07, Geoff Cant <> wrote:
>> Bernhard Damberger <> writes:
>>
>> > Does erlang support the idea of an archived collection of compiled 
>> > code, like
>> > a jar file? I know that Joe Armstrong wrote a tool called ear that 
>> > creates
>> > an archive for stand alone erlang (see 
>> > http://www.sics.se/~joe/sae.html).
>> > But I got the impression that this is not supported by the standard 
>> > erlang
>> > distribution (or is no longer being actively developed).
>> >
>> > All the interpreter really needs to do is to be able to load the .beam 
>> > files
>> > in from an archived file (say zip format). So, can it currently do so?
>> >
>> > _bernhard
>>
>> I tried building a zip loader as an exercise and it turned out not to be
>> too difficult. (http://git.erlang.geek.nz/?p=ssae.git;a=summary)
>>
>> It probably needs to be taken further so that you can do something like
>> 'erl -s ssae init -s yourmodule init' and only distribute ssae.beam.
>>
>> It would be good if the people who are interested in SAE to put together
>> a wiki page detailing what they expect out of SAE - then we could see
>> how difficult it would be to provide that. My guess is that modifying
>> the runtime system to load beam files out of a zip section in the
>> runtime binary would be tricky - but maybe that's not the requirement.
>>
>> Cheers,
>> --
>> Geoff Cant
>>
>> _______________________________________________
>> erlang-questions mailing list
>> 
>> http://www.erlang.org/mailman/listinfo/erlang-questions
>>
> _______________________________________________
> erlang-questions mailing list
> 
> http://www.erlang.org/mailman/listinfo/erlang-questions 




More information about the erlang-questions mailing list