-
Notifications
You must be signed in to change notification settings - Fork 3k
Routemap source tree
Erlang OTP is a complex system. It can be a bit hard to find out where to look if you want to know the details of some implementation. This page is a simple routemap to the interesting parts of the Erlang OTP source code. With ‘interesting’ I mean for users who are interested in the internal workings of Erlang for example for performance reasons and networking.
Erlang Run-Time System Application.This tree includes the virtual machine, the garbage collector, and the port mapper daemon. The documentation about ERTS shows that erl_driver, erl_nif, zlib, epmd, erl and erlang all belong to this basic application.
Erlang’s Beam VM: contains .c and .h files such as:
- erl_process.c,
- beam_emu.c,
- binary.c, The implementation of Erlang binaries (doc)
- erl_driver.h, Erlang drivers header, much more information in the docs
- io.c,
- bif.c the C implementations for builtin functions in the ‘erlang’ module (doc). It contains for example implementations of erlang:spawn() or erlang:link()
- erl_bif_port.c,
- erl_alloc.c (doc)
- erl_nif.c (doc) – The coolest addition to the R13B03 release, Native Implemented Functions!
Erlang’s native code compiler. Interaction between Beam and Native code
- hipe_bif0.tab ‘Secret’ erlang functions for destructive array operations.
Contains the Erlang libraries. That means: lots of files written in Erlang code to implement lots of functions you use every day.
- application.erl
- gen_tcp.erl
- heart.erl
- inet.erl
- array.erl,
- dict.erl,
- gb_trees.erl
- lists.erl
- string.erl
- ets.erl,
- gen_server.erl
- gen_fsm.erl
- gen_event.erl
- io.erl,
- timer.erl,
- unicode.erl
- beam_lib.erl
Note: feel free to edit and point out more interesting parts of the source code.
change footers copy tags