Just that the approach of clang-tidy is fundamentally wrong:

You simply don't do static checks as a after thought, at random times when sun, mars and moon are in proper constellation.

Why? Because when running this checks occasionally too much cruft will have accumulated that it is worth and reasonable to fix those issues: Too big chunk of boring and still expensive work. Too big risk to introduce regressions.

You really want to make this checks part of your daily development experience, you want the compiler to tell you about your mistakes as soon as you compile that code for the first time. It's much easier to fix your mistakes if you just wrote them. It's much safer to fix them before even doing the first tests. Well, and you'll learn much earlier about possible anti-patterns, so you'll write less of such code.

I hear you saying "but you could add clang-tidy" to your build scripts, but that's not a valid argument adding the following flags is considered too much effort already:

  -Xclang -load -Xclang ClangLazy.so -Xclang -add-plugin -Xclang clang-lazy

Thanks,
Mathias

Disclaimer: I am working with Sergio and using his awesome plugin since its very first days.

Am 12.09.2016 um 08:38 schrieb Ch'Gans:
On 12 September 2016 at 10:34, Sergio Martins <sergio.mart...@kdab.com> wrote:
On Sunday, 11 September 2016 21:43:46 WEST Jérémie Delaitre wrote:
Can the same checks be implemented in clang-tidy instead of having yet
another tool? clang-tidy now has boost specific checks so maybe they would
also accept a Qt specific module in there.

I haven't been able to use clang-tidy on big qmake projects such as Qt, it
either crashes or stops with "include not found" errors. It also requires an
intermediate step, where you generate a "compiler command database" file with
yet another tool [1]

Both CMake (since 2.8.5, see [1]) and Qbs (master branch) can generate
this "compiler command database".
Maybe your tool could be made to work with this DB (via clang-tidy)
and as a clang plugin.
The DB approach has the added advantage that it doesn't require
modifying CXX flags, which can be a problem on projects that have
"buggy" build files.
Having your checks run by clang-tidy would also definitely widen your user base.
clang-tidy have specific rules for LLVM, boost, google, ... Would be
nice to add Qt.

Chris

[1] http://clang.llvm.org/docs/JSONCompilationDatabase.html#supported-systems

clazy, otoh, is a compiler plugin, it integrates with your normal compilation
run, you don't have to run any more tools after doing "make" as you usually
do.

Enabling clazy is just a matter of modifying your CXX flags,  which you can
easily do with qmake or mkspec. Or ENABLE_CLAZY in CMake if you're building
KDE.


[1] https://github.com/rizsotto/Bear

Regards,
--
Sérgio Martins | sergio.mart...@kdab.com | Senior Software Engineer
Klarälvdalens Datakonsult AB, a KDAB Group company
Tel: Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322)
KDAB - The Qt Experts
_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development
_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to