[Development] Qt API review with clazy

Mathias Hasselmann mathias at taschenorakel.de
Mon Sep 12 11:13:27 CEST 2016

Hello Chris,

> On 12 September 2016 at 19:06, Mathias Hasselmann
> <mathias at taschenorakel.de> wrote:
>> Just that the approach of clang-tidy is fundamentally wrong:
> Hi Mathias,
> No offense, but you arguments are fundamentally wrong too. Your
> workflow is not everyone's workflow!
>> You simply don't do static checks as a after thought, at random times when
>> sun, mars and moon are in proper constellation.
> I don't see the problem, people are free to choose if, when and which
> checks they fancy run.
>> 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.
> Running clang-tidy is way slower than compiling code, a nightly check
> might be enough (or not, again this is a personal choice), or you
> could decide to run the checks systematically on pull requests because
> you don't trust the authors (for whatever reason, inc the usual "oops,
> forgot to do that", human do errors).
 > Sanity checks ran by clang-tidy can be of arbitrary complexity, and as
 > such can take really long time. You might not want to be slow down by
 > this while you're actively developing.

Well, with clang-tidy being slow you just gave another reason to have a 
compiler plugin for this quick, very obvious tests. In my experience 
clazy has no measurable impact to compile time.

> If you go this way, then why don't you always run your applications in
> profiling mode to make sure you don't introduce bottle-necks or memory
> leaks "as-you-go"? Well we all know the answer: Because it is way too
> slow.

Besides clazy being blasting fast you are comparing apples with oranges. 
The issues clazy blames are plain Qt usage bugs. Just the same kind of 
issues the compiler reports for regular C++ already. Ideally the 
compilers would checks those issues out of the box already. Obviously 
they can't because Qt layers stuff on top of C++.


More information about the Development mailing list