Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
CRoaring
Roaring bitmaps in C (and C++), with SIMD (AVX2, AVX-512 and NEON) optimizations: used by Apache Doris, ClickHouse, and StarRocks
-
clang-format-hooks
Apply a coding style with clang-format only to new code added to an existing code base.
The order should be as follows:
- automated testing;
- -Wall -Wextra, and -Weverything with some exceptions;
- address, memory, thread, and undefined sanitizers;
- fuzzing (at least some sort of), coverage-guided fuzzing with sanitizers;
- static analysis, starting with clang-tidy;
- other static analyzers, such as Coverity, CodeQL - have the least priority.
An example of how everything of the above, everywhere, all at once is applied in public can be seen in the ClickHouse repository: https://github.com/ClickHouse/ClickHouse in the per-commit checks. But keep in mind that the checks are really heavy - run for multiple hours, and we have to apply kludges to support GitHub Actions with spot instances...
Also the dashboard can be checked here: https://aretestsgreenyet.com/
I prefer maximum warnings and use of #pragma to disable a warning at a specific point when I know the warning is useless/wrong. That way I can get to a totally clean build with zero warnings output.
https://github.com/cloudflare/keyless/blob/master/Makefile#L...
The reason I do this is if I leave some warnings in I can get complacent "oh, there's always a few warnings" or "that's expected" and then miss something.
The PR in question seems to be https://github.com/RoaringBitmap/CRoaring/pull/446
I agree that the GitHub analyses are worse than useless, but I also think it highlights the friction between intrinsics and the program in which they appear. There probably is a better model.
If your editor can do it, that's great.
But another option is to apply it on commit [1].
[1] https://github.com/barisione/clang-format-hooks