A Guide To The Erlang Source

From Erlang Community

(Difference between revisions)
Revision as of 17:55, 19 August 2009 (edit)
Zghst (Talk | contribs)
(New page: A guide to the erlang source. == Download == The source can be downloaded from: http://erlang.org/download.html == Tree. == Most of the interesting code is in: erts/emulator/beam == At...)
← Previous diff
Revision as of 17:59, 19 August 2009 (edit) (undo)
Zghst (Talk | contribs)

Next diff →
Line 4: Line 4:
The source can be downloaded from: http://erlang.org/download.html The source can be downloaded from: http://erlang.org/download.html
-== Tree. ==+== Tree ==
Most of the interesting code is in: Most of the interesting code is in:
erts/emulator/beam erts/emulator/beam
-== Atoms. ==+== Atoms ==
The atoms used in erlang are listed in erts/emulator/beam/atom.names and are referenced in the code as am_foo. So the 'EXIT' atom is am_EXIT in the code. The atoms used in erlang are listed in erts/emulator/beam/atom.names and are referenced in the code as am_foo. So the 'EXIT' atom is am_EXIT in the code.
 +
 +== Types ==
 +Most used types are: Sint, Uint, Eterm, ...
 +Conversion is done in erts/emulator/beam/big.c. For example uint_to_big(Uint x, Eterm *y). term_to_Uint(Eterm term, Uint *up)
== Scheduler == == Scheduler ==
The process struct is defined in erts/emulator/beam/process.h. The important function is Process *schedule(Process *p, int calls). The next process is picked in "pick_next_process" of that method. The process struct is defined in erts/emulator/beam/process.h. The important function is Process *schedule(Process *p, int calls). The next process is picked in "pick_next_process" of that method.

Revision as of 17:59, 19 August 2009

A guide to the erlang source.

Contents

Download

The source can be downloaded from: http://erlang.org/download.html

Tree

Most of the interesting code is in: erts/emulator/beam

Atoms

The atoms used in erlang are listed in erts/emulator/beam/atom.names and are referenced in the code as am_foo. So the 'EXIT' atom is am_EXIT in the code.

Types

Most used types are: Sint, Uint, Eterm, ... Conversion is done in erts/emulator/beam/big.c. For example uint_to_big(Uint x, Eterm *y). term_to_Uint(Eterm term, Uint *up)

Scheduler

The process struct is defined in erts/emulator/beam/process.h. The important function is Process *schedule(Process *p, int calls). The next process is picked in "pick_next_process" of that method.

Erlang/OTP Projects
Personal tools