[erlang-questions] How small could an Erlang emulator be?
Tue Mar 13 09:36:31 CET 2007
ok <ok@REDACTED> writes:
> On 13 Mar 2007, at 2:38 am, Bjorn Gustavsson wrote:
> > The Beam code is quite compact before it is loaded. It would be
> > possible
> > to implement an alternate loader that would load the code in more
> > compact
> > way (at the expense of speed).
> The point was not "how small could compiled Erlang code be",
> but "how small could the EMULATOR be". On these network processors,
> there could be up to 8MB to hold the compiled Erlang code, but only
> 2 k-instructions for the EMULATOR.
The Beam loader now does a lot of instruction combining and instruction
specialing. An alternate loader wouldn't need to do that, so that the
the emulator would have a lot fewer instructions. I have no idea if that
would be enough to fit the emulator into the required space.
> In particular, a "very compact object code" would make the compiled
> code smaller
> (which wouldn't help) at the expense of making the EMULATOR much more
> (which would hurt a lot). In fact, I was thinking that Quintus-style
> 16-bit threaded code
> would probably be a good idea, requiring a minimum of decoding.
Beam uses 32-bit threaded code; it might be possible to adapt it to use
16-bit threaded code.
Björn Gustavsson, Erlang/OTP, Ericsson AB
More information about the erlang-questions