[cfe-dev] Proposal: parsing Qt signals/slots with attributes

Konstantin Tokarev annulen at yandex.ru
Mon Sep 26 01:31:04 PDT 2011



26.09.2011, 04:33, "Miles Bader" <miles at gnu.org>:
> Konstantin Tokarev <annulen at yandex.ru>
> writes:
>
>>>  I would like to add support for recognising Qt's signal/slot
>>>  mechanism to clang by using attributes. For that, I have a proposal
>>>  for a few small changes to the clang parser. These changes use the
>>>  attributes to mark AST nodes as signal/slot/invokable, and expose
>>>  those attributes through libclang.
>>  Could anybody review this patch? It's very important for Qt community.
>
> It seems pretty weird to add special support for a specific GUI library
> to clang.

Disclaimer: I'm not affiliated with Nokia, and I'm not a developer of Qt (I've
submitted couple of patches though ;). Everything below is my personal
opinion.

Qt is not "a specific GUI library". It's framework for C++ development which
could be used to develop large range of applications including GUI and
non-GUI ones.

> Wouldn't some sort of generic mechanism be more desirable?

OK, could you recommend better way to mark methods in "signals" and "slots"
sections with specific attributes without significant performance loss?

> [Why is it "very important for Qt community" BTW?  Surely they've gotten
> along for many years without this support...]

Clang-based inspection of Qt-based code can bring many new possibilities,
including:

* Reliable code completion in Qt Creator (and maybe other Qt IDEs), taking into
account Qt-specific semantics
* Additional facilities for static analysis of Qt code
* Possibility to write Qt-specific compiler optimizations

Of course it's possible to live without these things, like Apple's implementation of
Objective-C could live without all fancy stuff in clang written exclusively for it.


Erik: Could you bring some light into your future plans on this patch, e.g. are you
planning to maintain this code if it gets into Clang?

-- 
Regards,
Konstantin



More information about the cfe-dev mailing list