Recent BEAM documentation ?
Tue May 9 22:06:26 CEST 2006
Terrance Sullivan writes:
> I recently tripped across the paper "A high performance Erlang
> system" by Eric Johanasson (http://user.it.uu.se/~happi/publications/
> p32-johansson.pdf) which I gather was published for the PPDP 2000
> conference in Montreal.
> Short of wading into recent source code, would people here have any
> recommendations for published documents that would provide more
> recent lower level design & implementation details on BEAM. Or is
> this document basically representative of the present Erlang state-of-
> the-art ?
That paper is quite old, describing essentially the culmination of
the 1st generation of HiPE, which only supported UltraSPARCs and the
JAM-based Erlang system.
Off the top of my head, things that have happened since then:
- Erlang/OTP has switched to the much better BEAM virtual machine.
- The low-level data representation (aka "tagging scheme") has been
- BEAM optimizes blocks of floating-point operations, and uses
floating-point exceptions (when possible) to reduce the number
of tests needed to detect f.p. overflows/div-by-zero and such.
- Core Erlang is used as the foundation in both the BEAM compiler's
front-end and parts of HiPE's front-end. More rational and better
support for compile-time analysis of the code.
- Bit-syntax. Way cool.
- Different heap models (shared, hybrid).
- Multithreading (aka "the SMP system").
- HiPE has added support for x86, AMD64, PowerPC, and ARM. As a byproduct
of the AMD64 work, the Erlang/OTP runtime system has been made to work
much better on 64-bit machines in general.
- Much more compile-time analysis and optimization in HiPE.
- Much improved register allocators in HiPE.
- Much improved handling of floating-point and bit syntax in HiPE.
- Generational stack scanning during garbage collection in HiPE.
(Helps deeply recursive programs.)
And there's probably more I don't recall right now.
Most relevant publications ought to be in the HiPE publications page,
the EUC proceedings, or the Erlang Workshop proceedings.
More information about the erlang-questions