gcc-in-cxx: Garbage Collecting STL Containers
Taras
taras.judge@shaw.ca
Wed Jun 25 19:22:00 GMT 2008
Daniel Berlin wrote:
> Maybe at some point then we should just stop using gengtype and just
> hand-write the walkers once.
>
> One of the reasons gengtype exists is because you can't easily have an
> abstract interface with member functions that you can force people to
> implement in C.
>
> In C++, we can.
>
> This is of course, a large change, but i'm not sure how much more work
> it really is than trying to understand gengtype and rewrite it to
> properly parse C++/support STL containers.
>
I might be the only person out there who likes GTY annotations. The fact
that gengtype has a separate parser is highly inconvenient. Why not use
the GCC C/C++ parser on gengtype? It seems that with some refactoring,
it should be possible to bootstrap just the C++ parser( without memory
management or maybe some minimal handwritten stuff).
Then the parser could parse the headers to extract GTY annotations with
full semantic info.
For my plugin stuff I use a macro to convert GTY stuff to GNU
attributes(patch is coming as soon as I get the paperwork done) which
allows me to do some trivial metaprogramming to produce useful things
such generate most of the code for a JavaScript binding to GIMPLE gcc
plugin(http://developer.mozilla.org/en/docs/Treehydra).
Overall I think the the GTY annotations make the structs more
understandable and the fact that they allow for generating
structure-aware code is awesome. I think there may be other automation
benefits to be reaped from GTY-style annotations elsewhere in the code,
so the system should be improved, not canned.
Taras
>
> On Wed, Jun 25, 2008 at 10:49 AM, Tom Tromey <tromey@redhat.com> wrote:
>
>>>>>>> "Daniel" == Daniel Jacobowitz <drow@false.org> writes:
>>>>>>>
>>>> On Wed, Jun 25, 2008 at 08:35:41AM -0600, Tom Tromey wrote:
>>>> I think most of the needed changes will be in gengtype. If you aren't
>>>> familiar with what this does, read gcc/doc/gty.texi.
>>>>
>> Daniel> Also - I may regret saying this but - doesn't gengtype have a
>> Daniel> simplistic C parser in it? How upset is it likely to get on C++
>> Daniel> input?
>>
>> Yeah, it does -- see gengtype-parse.c.
>> I haven't done extensive hacking there; I don't really know how upset
>> it will be. I assume it won't work the first time :)
>>
>> Tom
>>
>>
More information about the Gcc
mailing list