Professional Documents
Culture Documents
version 1.0
Kostis Sagonas
Uppsala University
Structure of this talk
1. Recent past
2. Present
3. Near future
Part 1: Recent Past
Historical introduction
Code Symbolic
area JAM
JAM JAM
Bytecode Dissassembler
Icode
JAM Other
Emulator Data
RTL
Native
Code HiPE
Loader SPARC
20 HiPE
Etos
Speedup over JAM
JAM
15
BEAM
10
0
fib huff length nrev qsort smith tak decode
Success of HiPE: Let’s take a quick poll...
At Uppsala University:
Erik “Happi” Johansson
Mikael Pettersson
Richard Carlsson
Kostis Sagonas
+
Jesper Wilhelmsson
• Back-ends for:
– SPARC
– x86-based machines running Linux or Solaris
Code Symbolic
area BEAM
BEAM BEAM
Bytecode Dissassembler
Icode
BEAM Other
Emulator Data
RTL
Native
Code HiPE
Loader SPARC X86
• Instead of typing:
1> c(Module, Options).
types:
1> c(Module, [native|
Options]).
• Instead of typing:
1> c(Module, Options).
types:
1> c(Module,
[native,{hipe,[’O3’,...]}|Options]).
8
BEAM
6 HiPE/SPARC
HiPE/x86
4
tak t f
fib g th
qs o r
mi t
h
huf o de
r i n g life to ne
l en s de
c es
HiPE version 1.0: Useful Hints
stack stack
... stack
Global
ETS
stack stack
... stack
Global
ETS
Table
Global Heap
1. Get Erlang/OTP R8
2. Install by typing:
./configure --enable-unified-
heap
./make
Warnings:
– Highly experimental at this point!
– Does not work with HiPE
Request:
Send us your favourite concurrent Erlang application
Core Erlang:Formal Specification and Use in OSE
• Instead of typing:
1> c(Module, Options).
type:
1> c(Module, [inline|Options]).
Extensions of the Erlang language