GTY as attributes
Basile STARYNKEVITCH
basile@starynkevitch.net
Sat Feb 23 17:16:00 GMT 2008
Taras Glek wrote:
>
> Would you consider restructuring GTY markers to be more like GCC
> attributes?
It could have some advantages, but if I understand what you mean it
would make sense only on platforms where GCC is compiled by itself. I
believe that (perhaps unfortunately) the rule is that GCC should be
compilable by any ISO-C conformant compiler.
> I'm writing code to generate code to convert GCC trees to
> JavaScript objects for my GCC plugin. Clearly this is similar to what
> gengtype does. However, I would like to reuse GTY markers without using
> the gengtype parser. Since I already use the GCC asts, it would be handy
> if GTYs were just gnu attributes.
>
> I think it was also be beneficial to do GTYs as gcc attributes for
> consistency instead of having yet another language extension.
>
> So far I've defined GTY as
> #define GTY(x) __attribute__((user (#x)))
>
> Which appears to work for most cases except for numerous cases of
>
> typedef struct Name GTY(()) {
> };
>
> These would parse fine as attributes if they were more like
>
> typedef struct GTY(()) Name {
> };
Maybe you might patch gengtype to accept such a change, and be able to
parse the above? Then you only have to (trivially) patch all the files
so that typedef struct Name GTY(()) is changed to
typedef struct GTY(()) Name
> Would you be willing to accept such a change?
>
> Another possible benefit of raising GTYs to attribute status would be
> that other projects could do compile-time reflection similar to what GCC
> does in a semi-formal way.
This would be interesting (including for my MELT branch)
A more disruptive technique would be to have all the data defined with
GTY described (perhaps more precisely) elsewhere. I mean to have all the
GGC handled data described -probably in a different syntax- elsewhere,
and having all the struct and GGC routines generated otherwise.
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 mines, sont seulement les miennes} ***
More information about the Gcc
mailing list