This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: adding destroyable objects into Ggc


On Tue, 18 Oct 2011 17:19:56 +0200
Duncan Sands <baldrick@free.fr> wrote:

> Hi Basile,
> 
> > I would like to add destroyable objects into Ggc (the GCC garbage collector, see files
> > gcc/ggc*.[ch]).
> >
> > The main motivation is to permit C++ objects to be garbage collected (I discussed that
> > briefly in the Gcc meeting at Google in London): adding destroyable object is a
> > prerequisite for that goal.
> 
> it is already possible to have garbage collected C++ objects with destructors.
> I use this in the dragonegg plugin (see the file Cache.cpp).  I do only use
> htab's though, which comes with support for destructors.  

Thanks for the tip.

I'm not sure to understand what you mean, and I did have a look into the htab_create_ggc
macro of gcc/ggc.h and also at lvm.org/viewvc/llvm-project/dragonegg/trunk/src/Cache.cpp

To be concrete:

How do you create inside Ggc heap an instance of std::ostringstream (as provided by the
standard C++ library) or of std::string ?

or, to be more Gcc specific,
how do you create inside Ggc heap a PPL constraint, that is a pointer to a 
struct ppl_Constraint_tag*, ie a ppl_Constraint_t opaque type, which should call
ppl_delete_Constraint at destruction time?

I don't want to have an explicit hash-table keeping these things... (because I have no
specific hash keys for them). Or are you suggesting it is the way to have destructed
objects in Ggc? Are these hash-tables weak, in the sense that when nothing points to the
value, the association of the key to the value is removed?

Regards.
-- 
Basile STARYNKEVITCH         http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mine, sont seulement les miennes} ***


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]