[erlang-questions] Stand Alone Erlang or Equivalent

Benjamin Tolputt bjt@REDACTED
Thu Sep 6 00:21:41 CEST 2007

Kenneth Lundin wrote:
> I think you and many others discussing Standalone Erlang are mixing up
> things here. The important thing for end user deployment is that it is
> easy and quick to install and uninstall a SW package and that does not 
> imply that for example all the beam files must be packed together in 
> one or a few bigger files.
> As long as the installation is distributed as e.g a self extracting
> and self installing exe file  (Windows) it should be ok.
> Of course this package should only contain the beam files from OTP
> that are actually used plus the specific .beam files for the SW in
> question.
I would agree that there seems to be some confusion in the discussion. 
On the other hand, being able to create a single executable (with 
perhaps one or two other files for the related beam archives) is where I 
am coming from.

As I mentioned in an earlier email, the standard in game deployment is a 
single executable, with whatever necessary DLL's required (as few as 
possible), and a small number of (generally large) archive files for the 
game resources (everything from scripts & byte-code to image, models, & 
sound files).

The primary reason I suggested having the beam files "compiled into" the 
executable is that the game publishing industry is quite strict about 
having copyright protection mechanisms embedded into the deployment. I 
am recommending Erlang as the "primary" development language rather than 
just the "scripting" language (as this would make best use of Erlang's 
superior concurrency) and, as such, being able to protect (if only 
marginally) the beam files that actually relate to how Erlang loads 
modules, executes, etc (i.e. the kernel, stdlib, etc) is somoewhat of a 
commercial (as opposed to "technical") necessity.

A single executable with beams in a separate archive (ZIP or otherwise) 
would be suitable with some personal modifications to the Erlang VM's 
source code (i.e. adding in relatively useless encryption).code database 
or zip file)?
> We have already implemented (but not released) code loading from ZIP archives.
> We are working on "standalone" features but I can not promise today when we
> will release something.
I understand the need to not make promises, but could we get a "squishy" 
delivery time frame? That is, is this something for "soon" or planned 
for a more "long term" release?
> Erlang/OTP as available today as open source is a DEVELOPMENT SYSTEM
> which the developer uses to create a TARGET SYSTEM. The target system
> can be a simple standalone application to be installed on many clients
> or it can be a complex distributed embedded server system.
Again, something I completely understand. For server deployments 
(requiring hot-swap code updating and the like), the deployment tree as 
it stands works well (and is pretty much a requirement). However, there 
are not many applications I have seen that use Erlang outside this niche.

Given the paradigm shift that has & still is occurring in the game 
development industry toward high concurrency / multi-threaded 
application structures (in order to make full use of multi-core PC's and 
consoles) - I think being able to deploy something that will not 
hot-swap (and hence does not need the large number of "real" files in 
the deployment) will add to Erlang's ability to be used in such an 
> To create the target system you need the following:
> 1) Know what parts of Erlang/OTP you need in the target app.
> You can pick OTP components on complete application level i.e. stdlib,
> kernel, mnesia etc. which is easy.
> <...snip...>
> 3) Pack 1 and 2 together in a distribution.
> You can pack together all resulting files and directory hierarchies
> just as they are.
> Or you can try to create something which result in just a few files
> when installed (e.g. beam files packed together, one per OTP
> application or one for all .beam files)
> <snip>
> We will primarily address 1 and 3 above and probably offer several
> alternatives for doing them
(1) & (3) are pretty much the essentials for what I am looking at 
anyway. If the code for these deployment tools becomes available, it 
should be fine & dandy to use for deployments where commercial 
considerations require "twiddling" for copyright protection purposes.


More information about the erlang-questions mailing list