This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
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} ***