On Erlang distributions

Leon Smith <>
Wed Jan 29 20:21:33 CET 2003

I don't like the idea of fragmenting Erlang into multiple distributions, 
unless we are going to have another implementation of Erlang.   However, 
making a more modular distribution is in order.

Personally, I strongly dislike "make".   Makefiles are large, ugly, and 
usually ad-hoc.  Different people use drastically different conventions.   
For example, with the Erlang distribution, you can't cd into a given 
directory that you've made some changes to and type "make" and "make install" 
to update that directory alone.  Many other packages support this.

SRC Modula-3 had 'quake', a simple language that was Modula-3's integrated 
build system.   It was far more intelligent than "make" about recompiling and 
relinking only when necessary.  Dependencies were automatically gathered from 
source files and accounted for in the build process.  All you had to do in 
the makefile was point the build system at the files you were interested in, 
though you weren't limited to this.  Nearly every aspect of compilation was 
controllable within quake.

Once the Modula-3 source was downloaded, it was really quite simple to 
compile/not compile any number of the extensive libraries and (large) example 
application programs that came with the distribution, by simply 
commenting/uncommenting a single line in the main m3makefile.

So, here is my idea:  strip down Erlang/OTP to the bare essentials.   Create 
a simple, intelligent, distributed builld system, perhaps in the spirit of 
Modula-3's quake.  Then, have all the non-core libraries and applications 
relegated to separate packages.    Allow packages to be installed or updated 
with one or two simple Erlang commands.  I don't think that basing this 
system around RPM or Debian Packages is really worth the time and effort, nor 
do I think these standards would give an erlang build system any significant 

In the short run, this is a fair bit of work.  In the long run, this would be 
a lot less work than trying to create a separate distribution every time 
Ericcson releases another version.  It would be easy to create your very own 
personal distribution by simply creating/editing a erlmakefile to suit your 

Maybe downloading stuff from the internet yourself and unzipping it and 
building doesn't give most people much difficultly, but hey, programmers are 
supposed to be lazy.  I'd much rather just type "erlbuild" some directory to 
update what I want, or type a single short command into eshell to download 
and compile a package I need.  Plus, this would give people a better, 
standard, cross-platform build system for their own Erlang apps.   And much 
of the erlang distribution is (quite rightly) based around standard ways of 
accomplishing such common tasks.  


More information about the erlang-questions mailing list