On Erlang distributions
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