| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
commit_hash:f939fba86939275047d2eca49b11bec3d0ea3ce7
|
| |
|
|
|
|
|
|
|
|
|
| |
We slightly rework inner workings of stat analysis. For almost any sane use case the behavior is identical, but should compile a little faster.
If you send string literals like `char[N]` or `const char*` make them constexpr. If you can't (e.g. `ex.what()` case) wrap it in `TStringBuf`, if you want the "by the book; 100% right" solution then wrap it in `TRuntimeFormat` instead.
`SetRequestInfo` methods now statically checks the format. Only one error was found -- hooray!
Some other internal stuff was added, a lot removed -- don't worry about it. You won't be able to see the difference
62050dfe8a9cedc1289f18e80397ff33a8e2ecdb
|
| |
|
|
| |
810902d6e6c3104880e1ab3b34d29a8aa4bec21b
|
|
|
Added static analysis to format of YT_LOG_XXX macro's. We expect you to write format string as first or the second argument and follow the rules as if you are writing arguments for `NYT::Format`, which match those of printf: https://en.cppreference.com/w/cpp/io/c/fprintf plus few extra flags like 'v'. At the moment analyser checks if flags sequences is
1. Correctly terminated
2. Only contains specifiers valid for a given argument (if we are parsing nth argument of type T, then T must have all specifiers from its list of Conversion or Flag specifiers.
(2) Also means that the number of flag sequences must match the number of arguments supplied to format.
You can specialize `TFormatArg<T>` which is used to determine allowed Conversion and Flag specifiers to customise rules of static analysis. E.g. you can introduce new flags to the mix which you promise to parse in the related FormatValue function.
If you feel like this produces to much overhead in terms of compile time, you are free to use macro YT_DISABLE_FORMAT_STATIC_ANALYSIS to turn the entire thing into a no-op. We have measured compile time to be affected by roughly 3-5% in a log intensive files.
ae6def509474e8a42027bb4ed84ac040509b7c85
|