A Guide To The Erlang Source
From Erlang Community
(Difference between revisions)
| Revision as of 17:59, 19 August 2009 (edit) Zghst (Talk | contribs) ← Previous diff |
Revision as of 18:22, 19 August 2009 (edit) (undo) Zghst (Talk | contribs) Next diff → |
||
| Line 2: | Line 2: | ||
| == Download == | == Download == | ||
| - | The source can be downloaded from: http://erlang.org/download.html | + | The source can be downloaded from: http://erlang.org/download.html or http://github.com/mfoemmel/erlang-otp/tree/master |
| == Tree == | == Tree == | ||
| Line 16: | Line 16: | ||
| == 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) in process.c . The next process is picked in "pick_next_process" of that method. |
Revision as of 18:22, 19 August 2009
A guide to the erlang source.
Contents |
Download
The source can be downloaded from: http://erlang.org/download.html or http://github.com/mfoemmel/erlang-otp/tree/master
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) in process.c . The next process is picked in "pick_next_process" of that method.

Digg It
Del.icio.us
Reddit
Facebook
Stumble Upon
Technorati

