Estoy interesado en profundizar en el C source code de Erlang y tratar de entender qué está pasando debajo del capó. ¿Dónde puedo encontrar información sobre el diseño y la estructura del código?Guía del código fuente de Erlang
Respuesta
En primer lugar, es posible que desee echar un vistazo a Joe Armstrong's thesis, la introducción de Erlang en un nivel alto. Será útil tener una idea de cuál fue la idea detrás del lenguaje. Luego, podría centrarse en el sistema de tiempo de ejecución de Erlang (erts). El módulo erlang.erl podría ser un buen comienzo. Luego, me centraría en las aplicaciones que constituyen el llamado versión mínima, kernel y stdlib. Dentro del stdlib, eche un vistazo a cómo se implementan los comportamientos . ¿Puedo sugerir el módulo gen_server.erl como inicio?
Una guía para el Erlang Fuente
http://www.trapexit.org/A_Guide_To_The_Erlang_Source
Gracias. Buen lugar para comenzar. Sin embargo, esta es realmente una breve guía. – GabiMe
La respuesta corta es que no hay una buena guía. Y el código no está muy bien documentado.
Recomiendo encontrar a alguien en su vecindario que conozca el código razonablemente bien, y cómpreles la cena a cambio de una pequeña charla.
Si no tiene la posibilidad de hacerlo, le recomiendo comenzar con el cargador.
./erts/emulator/beam/beam_load.c
También se puede encontrar información útil imprimiendo bastante la representación del rayo. No sé si hay alguna forma de hacerlo provista por OTP, pero el proyecto HiPE tiene algunos trucos.
hipe:c(MODULE, [pp_beam]).
Debería comenzar.
(Y también recomiendo el libro de Joe.)
impresora bonita de la viga puede ser realizado por '-S CELR', lo que equivale a hipe: c (H, [pp_beam]) mencionado por Daniel.
También uso erts_debug:df(Module).
para desmontar el código del haz cargado, que en realidad son instrucciones interpretadas por la máquina virtual.
A veces utilizo un depurador. OTP ofrece herramientas que soportan gdb muy bien. Vea el uso del ejemplo en http://www.erlang.org/pipermail/erlang-questions/2008-September/037793.html
- 1. guía para escribir especificaciones en Erlang
- 2. Finalización del código Emacs/TextMate para Erlang?
- 3. Compilación del código Erlang en Windows
- 4. Descarga del código fuente de Android
- 5. Código fuente del reproductor de música Android
- 6. Descarga del código fuente de Eclipse
- 7. Código fuente del kernel de Android 4.0?
- 8. Código fuente del método nativo de Java
- 9. código fuente del SDK de Android
- 10. Métodos de gestión del código fuente
- 11. Cambiar la fuente predeterminada del código github
- 12. Ingeniería inversa C-código fuente del ensamblaje
- 13. Descarga del código fuente .NET 4
- 14. Código fuente del botón "Pin It" (pinterest.com)
- 15. donde descargar el código fuente del muelle?
- 16. eliminar comentarios del código fuente html
- 17. Vinculación del archivo de comandos del enlazador al código fuente
- 18. Intercambio de código en caliente en Erlang
- 19. ¿Qué código métricas \ guía está utilizando?
- 20. ¿Cómo depurar el código de Erlang?
- 21. Ejecutar bloque de código C en Erlang
- 22. uso del corazón de erlang
- 23. Optimizaciones del compilador de Erlang
- 24. guía del evento sangría Líneas En Xcode
- 25. ¿Hay una guía del usuario de vsVim?
- 26. Analizador de código fuente Java
- 27. Unix V6 Código fuente
- 28. Optimización del motor de búsqueda - ¿Guía del desarrollador?
- 29. Modificación del código fuente de un paquete de elaboración casera
- 30. C++ fuente del proyecto de diseño de código
Esta tesis es una lectura fascinante. Gracias por esto – GabiMe