Recent BEAM documentation ?

Mikael Pettersson <>
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 ( 
 > 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
  completely redesigned.
- 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 mailing list