close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Changes between Version 4 and Version 5 of Ticket #1079


Ignore:
Timestamp:
Feb 3, 2011, 10:47:20 AM (14 years ago)
Author:
Víctor de Buen Remiro
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1079 – Description

    v4 v5  
    99Estas son las posibilidades que se recomiendan a la hora de integrar un GC en una aplicación C/C++:
    1010
    11  * '''Conservative garbage collector''': Estos sistemas aportan funciones de asignación y reasignación que hay que llamar en lugar de malloc, realloc o new. En teoría es posible sustituir las funciones del sistema por las del GC para que no haya que tocar el código. [http://www.hpl.hp.com/personal/Hans_Boehm/gc/issues.html Aquí] se pueden ver ventajas e inconvenientes de este tipo de sistemas 
     11 * '''Conservative garbage collector''': Estos sistemas aportan funciones de asignación y reasignación que hay que llamar en lugar de malloc, realloc o new. En teoría es posible sustituir las funciones del sistema por las del GC para que no haya que tocar el código. [http://www.hpl.hp.com/personal/Hans_Boehm/gc/issues.html Aquí] se pueden ver ventajas e inconvenientes de este tipo de sistemas. Parece relativaente sencillo de incorporar la parte C (malloc, calloc, ...) pero no está tan claro qué pasa con new, y especialmente con new []
    1212  * [http://www.hpl.hp.com/personal/Hans_Boehm/gc/ Boehm-Demers-Weiser GC]: de HP con licencia GPL
    1313  * [http://developers.sun.com/solaris/articles/libgc.html libgc ]: Creo sólo funciona en el sistema Oracle Solaris y no estoy seguro del tipo de licencia.
    1414  * [http://www.codeproject.com/KB/cpp/conservative_gc.aspx CGCC]: Proyecto unipersonal de Yasin HINISLIOGLU con licencia GPL
    15  * '''Template Smart Pointers''': Hay que heredar de una clase base y llamar a un template del tipo para el alojamiento de memoria. Sólo sirve en C++ por razones obvias.
     15 * '''Template Smart Pointers''': Hay que heredar de una clase base y llamar a un template del tipo para el alojamiento de memoria. Sólo sirve en C++ por razones obvias. No parece fácil de incorporar a TOL pues lo que se propone es no usar los punteros directamente, sino instancias del template.
    1616  * [http://blog.ilikeblues.com/2010/09/c-garbage-collection-usando-la-libreria-boost/ shared_ptr]: se distribuye dentro de BOOST
    1717  * [http://www.codeproject.com/KB/cpp/automatic_gc_using_sp.aspx gcPtr]: Proyecto unipersonal sin licencia específica