[erlang-questions] How small could an Erlang emulator be?

Joe Armstrong <>
Mon Mar 12 14:11:31 CET 2007


Well before bignums and binaries etc. it was pretty small.

For a long time I struggled to keep the executable under 1.4 MB
so it would fit on one floppy.

Robert made an Erlang (the Vee) that had a reference counting GC
and it would run happily in 75KB of memory (excluding the space for
the emulator)
The JAM was designed with a compact byte code.

So if we threw out bignums and floats and designed a very compact object
code - (huffman) then it could be very small.

A fun student project (hint)

/Joe




On 3/12/07, ok <> wrote:
> I spent last weekend reading the manual for Intel's IXP 1200 series
> Network processor.
> A seriously weird but interesting machine.  It's said to be "low-
> cost", but heaven only knows what
> that means.  I have spent the last 45 minutes searching the web for a
> price, to no avail.
>
> These are chips with
>   - an ARM processor (32-bit sort-of-RISC, rather nice, really)
>   - 6 "micro-engines", each of which is a 32-bit RISC-cum-
> microprogrammable core (as in, memory
>      referencing is straightforward, but the gap between issuing a
> request and the thing happening is
>     architecturally painfully visible), each having 4 hardware
> contexts for very fast thread switch, and
> - oodles of special-purpose stuff to interface to various buses and
> interfaces.
>
> How could you make parallel programming EASY on one of these things?
> Simple: the same way you would make concurrency easy anywhere, use
> Erlang.
>
> But could you?  The microengines have a 2 k-instruction control store
> each (1 k-instruction in the
> oldest models; the current IXP2xxx generation have 8 x 8-thread, 4 k-
> instruction control stores).
>
> The current Erlang VM (BEAM) and its emulator are aimed at some mix
> of portability and speed.
> Programming something like a network processor in Erlang would
> require a very compact emulator,
> which might not be so efficient.
>
> Just out of idle curiosity, has anyone looked at the possibility of
> Erlang on a network processor?
> If you chucked out bignums and flonums, how small could an Erlang
> emulator be?
>
>
> _______________________________________________
> erlang-questions mailing list
> 
> http://www.erlang.org/mailman/listinfo/erlang-questions
>



More information about the erlang-questions mailing list