# Código fuente

Este directorio contiene el código fuente de los programas y bibliotecas utilizados y desarrollados en el trabajo. A continuación se describe el contenido de los subdirectorios:

dmd-1.063-cdgc

  Contiene el código fuente del compilador DMD, versión 1.063, modificado para proveer información sobre la ubicación de punteros para permitir escanear el heap de forma precisa.

  Para compilarlo es necesario el compilador GCC (probado con GCC 4.4.5) y GNU Make (probado con GNU Make 3.81). El compilador solo funciona en arquitecturas i386, por lo tanto si se utiliza un sistema operativo de 64 bits es necesario instalar las bibliotecas de compatibilidad con 32 bits.

tango-0.99.9-cdgc

  Contiene el código fuente de la biblioteca runtime Tango, versión 0.99.9 más algunas modificaciones para aprovechar la información sobre punteros que provee el compilador modificado y algunas correcciones de errores. Además se agrega un Makefile para incluir el recolector CDGC como recolector del runtime al compilar.

  Para compilarlo sólo es necesario compilar el compilador DMD primero.

cdgc
  Contiene el código fuente del recolector desarrollado en este trabajo. Se compila como parte de la versión modificada de Tango que se provee.
dgcbench

  Contiene el código fuente del banco de pruebas utilizado en este trabajo. Para compilar los programas de prueba basta con ejecutar `make`, luego de haber compilado DMD y Tango.

  Para correr las pruebas resultantes y generar gráficos con los resultados, basta con correr `sudo ./run.sh`. Es posible ver un ejemplo de los resultados generados (los utilizados en el informe) en el directorio ../resultados.

  El código fuente de los programas están dentro del subdirectorio `micro` y cada programa consiste en un solo archivo fuente, a excepción de Dil, que reside en el subdirectorio `dil`, donde está el repositorio Git completo de Dil. Para más información sobre Dil, consultar su documentación.

informe

  Contiene el código fuente del informe de este trabajo. El informe está escrito utilizando Sphinx (probado con la versión 0.6.6) con algunos plug-ins desarrollados especialmente para este trabajo. Sphinx a su vez genera LaTeX, cuyo código fuente también se incluye.

  Para correr Sphinx para generar el código LaTeX hay que tener instalado Sphinx 0.6.6, aafigure 0.5, graphviz 2.26.3, pygments 1.3.1 y Python 2.5. Basta con ejecutar `make` en el directorio `build/sphinx`.

  Para compilar los fuentes de LaTeX que se proveen, hay que tener instalada una distribución completa de LaTeX y hacer `make` en el directorio `build/latex`.