@TechReport{ it:2000-029, author = {Mikael Pettersson}, title = {A staged tag scheme for {E}rlang}, institution = {Department of Information Technology, Uppsala University}, department = {Computing Science Division}, year = {2000}, number = {2000-029}, month = nov, abstract = {The runtime systems in Ericsson's implementations of the Erlang programming language, up to and including release R6B, use a simple tag scheme which allows for fast computation of an object's type. However, the tag scheme also restricts all Erlang objects to a 28- or 30-bit address space. This is problematic when Erlang is ported to new systems, and reduces reliability for applications needing large amounts of memory. This paper describes the development of a new \emph{staged} tag scheme, which was designed to \emph{not} restrict the range of pointers, and thus eliminate the source of the abovementioned problems. Secondary benefits also followed: the staged tag scheme is more flexible, and, perhaps surprisingly, is actually more efficient. The staged tag scheme has been integrated into Ericsson's Erlang code, and is a standard feature starting with release R7A. } }