Pregunta

Estoy interesado en profundizar en el código C de Erlang fuente e intento entender lo que está sucediendo bajo el capó. ¿Dónde puedo encontrar información sobre el diseño y la estructura del código?

¿Fue útil?

Solución

En primer lugar, es posible que desee echar un vistazo a Joe Armstrong tesis , la introducción de Erlang en un nivel alto. Será de gran utilidad para tener una idea de lo que fue la idea detrás de la lengua. Entonces, usted podría centrarse en el Run Time System Erlang ( Erts ). La erlang.erl módulo podría ser un buen comienzo. Entonces, me gustaría centrarse en las aplicaciones que constituye el llamado liberación mínima , kernel y stdlib . Dentro del stdlib, echar un vistazo a la forma en comportamientos se implementan. ¿Puedo sugerir la gen_server.erl módulo como un comienzo?

Otros consejos

La respuesta corta es que no hay una buena guía. Y el código no está muy bien documentada.

Yo recomiendo encontrar a alguien en su vecindario que no conoce el código razonablemente bien, y comprar la cena a cambio de una pequeña charla.

Si usted no tiene la posibilidad de hacerlo, entonces yo recomiendo empezar con el cargador.

./erts/emulator/beam/beam_load.c

Para más información básica también se pueden encontrar por bastante impresión de la representación de la viga. No sé si hay alguna manera de hacerlo suministrada por la Fiscalía, pero el proyecto de EAFI tiene algunos trucos.

hipe:c(MODULE, [pp_beam]).

En caso de que pueda empezar.

(Y también recomiendo el libro de Joe.)

Pretty impresora de haz se puede hacer por 'CELR -S', que es equivalente con HIPE:. C (M, [pp_beam]) mencionado por Daniel

I también utilizan erts_debug:df(Module). desmontar el código viga cargada, que son instrucciones en realidad sido interpretados por la máquina virtual.

A veces uso un depurador. OTP ofrece herramientas de apoyo GDB muy bien. Ver ejemplo de uso en http://www.erlang.org/pipermail /erlang-questions/2008-September/037793.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top