[RFC] Add the ability for clang-tidy to accept checks via plugins

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[RFC] Add the ability for clang-tidy to accept checks via plugins

Vassil Vassilev via cfe-dev

Hi,


At Sandia we are developing clang-tidy checks for our internal libraries in a llvm-project fork.  The number one request from our users is that we allow checks to be added to clang-tidy via plugins so that they do not have to build a new clang-tidy exe just to get new checks.  


We are willing to give implementing this a try, but I wanted to see if the community could explain why plugins don't currently exist and help us get started in the process. Is it because there are difficult technical limitations? Or is it just that no one has spent much time on adding this feature?


Thanks for any advice and/or input.


-Cannada (Drew)



_______________________________________________
cfe-dev mailing list
[hidden email]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: [RFC] Add the ability for clang-tidy to accept checks via plugins

Vassil Vassilev via cfe-dev
Hi,

I put in an RFC 2 days ago about this.
http://lists.llvm.org/pipermail/cfe-dev/2020-June/065981.html

I'm working on it, but come a little unstuck with figuring out how to
link the plugin correctly. I don't know enough about cmake to get it
working and would appreciate a little help.

Kind regards,
Nathan James

On Thu, 2020-06-25 at 18:34 +0000, Lewis, Cannada via cfe-dev wrote:

> Hi,
>
> At Sandia we are developing clang-tidy checks for our internal
> libraries in a llvm-project fork.  The number one request from our
> users is that we allow checks to be added to clang-tidy via plugins
> so that they do not have to build a new clang-tidy exe just to get
> new checks.  
>
> We are willing to give implementing this a try, but I wanted to see
> if the community could explain why plugins don't currently exist and
> help us get started in the process. Is it because there are difficult
> technical limitations? Or is it just that no one has spent much time
> on adding this feature?
>
> Thanks for any advice and/or input.
>
> -Cannada (Drew)
>
> _______________________________________________
> cfe-dev mailing list
> [hidden email]
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev

_______________________________________________
cfe-dev mailing list
[hidden email]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: [RFC] Add the ability for clang-tidy to accept checks via plugins

Vassil Vassilev via cfe-dev
You can take some inspiration from the static analyzer, though we barely support plugins and don't like to advertise the feature much.

https://reviews.llvm.org/D58065, section "Creating a checker plugin".

On Thu, 25 Jun 2020 at 21:44, Nathan James via cfe-dev <[hidden email]> wrote:
Hi,

I put in an RFC 2 days ago about this.
http://lists.llvm.org/pipermail/cfe-dev/2020-June/065981.html

I'm working on it, but come a little unstuck with figuring out how to
link the plugin correctly. I don't know enough about cmake to get it
working and would appreciate a little help.

Kind regards,
Nathan James

On Thu, 2020-06-25 at 18:34 +0000, Lewis, Cannada via cfe-dev wrote:
> Hi,
>
> At Sandia we are developing clang-tidy checks for our internal
> libraries in a llvm-project fork.  The number one request from our
> users is that we allow checks to be added to clang-tidy via plugins
> so that they do not have to build a new clang-tidy exe just to get
> new checks. 
>
> We are willing to give implementing this a try, but I wanted to see
> if the community could explain why plugins don't currently exist and
> help us get started in the process. Is it because there are difficult
> technical limitations? Or is it just that no one has spent much time
> on adding this feature?
>
> Thanks for any advice and/or input.
>
> -Cannada (Drew)
>
> _______________________________________________
> cfe-dev mailing list
> [hidden email]
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev

_______________________________________________
cfe-dev mailing list
[hidden email]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev

_______________________________________________
cfe-dev mailing list
[hidden email]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: [RFC] Add the ability for clang-tidy to accept checks via plugins

Vassil Vassilev via cfe-dev
Hi Kristóf,

I did get that working, but I was not of fan that method. I'd rather
use the llvm::Registry to load the module. As such I don't want to try
and land the feature in a state which I'd want to remove later (but
wouldn't be able to for backwards compatability reasons).

If I don't figure this out and no one else wants to contribute I would
consider using clang SA approach.

Regards,
Nathan

On Thu, 2020-06-25 at 21:56 +0200, Kristóf Umann via cfe-dev wrote:

> You can take some inspiration from the static analyzer, though we
> barely support plugins and don't like to advertise the feature much.
>
> https://reviews.llvm.org/D58065, section "Creating a checker plugin".
>
> On Thu, 25 Jun 2020 at 21:44, Nathan James via cfe-dev <
> [hidden email]> wrote:
> > Hi,
> >
> > I put in an RFC 2 days ago about this.
> > http://lists.llvm.org/pipermail/cfe-dev/2020-June/065981.html
> >
> > I'm working on it, but come a little unstuck with figuring out how
> > to
> > link the plugin correctly. I don't know enough about cmake to get
> > it
> > working and would appreciate a little help.
> >
> > Kind regards,
> > Nathan James
> >
> > On Thu, 2020-06-25 at 18:34 +0000, Lewis, Cannada via cfe-dev
> > wrote:
> > > Hi,
> > >
> > > At Sandia we are developing clang-tidy checks for our internal
> > > libraries in a llvm-project fork.  The number one request from
> > our
> > > users is that we allow checks to be added to clang-tidy via
> > plugins
> > > so that they do not have to build a new clang-tidy exe just to
> > get
> > > new checks.  
> > >
> > > We are willing to give implementing this a try, but I wanted to
> > see
> > > if the community could explain why plugins don't currently exist
> > and
> > > help us get started in the process. Is it because there are
> > difficult
> > > technical limitations? Or is it just that no one has spent much
> > time
> > > on adding this feature?
> > >
> > > Thanks for any advice and/or input.
> > >
> > > -Cannada (Drew)
> > >
> > > _______________________________________________
> > > cfe-dev mailing list
> > > [hidden email]
> > > https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
> >
> > _______________________________________________
> > cfe-dev mailing list
> > [hidden email]
> > https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
> _______________________________________________
> cfe-dev mailing list
> [hidden email]
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev

_______________________________________________
cfe-dev mailing list
[hidden email]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev