| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
commit_hash:3ef81205ed4cf9360829f834baa07c2fbf69b999
|
| |
|
|
|
|
| |
around [TRIVIAL]
643d86a500b7db9df11009f54364b468b29a409a
|
| |
|
|
| |
9d68586af8dfca759270be14dad2e1c5a97a7891
|
| |
|
|
|
|
|
|
|
| |
No description
---
b181413931eab2909c605b373dc858657e8bcb14
Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/816
|
| | |
|
| | |
|
| |
|
|
| |
b7397bff929c40b73c27256bbf9be5a5594ebafa
|
| |
|
|
| |
378099ca41e7698fba0ceda68b8d2b554e61b6ea
|
| |
|
|
|
|
| |
allocator
86ad7067e751c73259ce60432651ce3ecd0d057e
|
| |
|
|
| |
9da49d54d0eb5009874c090d094aac3117ca77b7
|
| |
|
|
|
|
| |
This reverts commit d9b67f1778da2d15dd94f7285afe4e3490a233ab, reversing
changes made to 461a09e0c18bd14cef7df8060e7f9537e3ad74b5.
92cdaf4185661b7058f6a30d5a532ad40b725345
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
deps on global variables
What happened:
1. error contents has been split into stripped_error and error. stripped_error contains the error itself (with attributes for now) and macros; error contains stripped_error and some extensions, namely, functions to get fiberId, hostname and traceid/spanid and all functions used to (de-)serialize error. This means that you cannot print error if you only include stripped_error, therefore you are likely to still require the entire error.h at the moment.
2. Mechanic for gathering origin attributes has been moved to newly created library/cpp/yt/error thus having no dependency on fibers, net or tracing. stripped_error uses these attributes as extendable semi-erased (meaning, you still would have to add a field and recompile the entire thing, but you don't have to introduce an extra dependency) storage for a bunch of attributes
3. Parsing of said attributes is done in error file (and not stripped_error).
P.S. So far the plan is to eventually move stripped_error (once dependency on core/ytree/attributes is eliminated) without any actual change to dependency graph of anything outside of core (e.g. you would still have to include misc/error.h to use it). Next step would be re-teaching the error how to print, which would move some more methods from core to the standalone module. After that one could finally depend on the error itself and not the entire core.
Annotations: [nodiff:caesar]
66615172181355821241d2e5f8e4a0f15e0ea791
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Static analysis enabled for TError creation and related macros
TRuntimeFormat can be used to disable this feature, but requires copying the viewed object.
See NYT::TError::DisableFormat overloads to optimize constructions which want to move the given string
Note to future readers: TError is not "perfect-forwarding" unfriendly class. This means that the code
```
template <class... TArgs>
TError MakeError(TArgs&&... args) {
return TError(std::forward<TArgs>(args)...);
}
```
will not compile and needs to be properly adjusted (see. TError::Wrap for implementation example)
This implies that emplace construction in containers will not work either. Use move construction instead, as it is simply a pointer swap and therefore free
Annotations: [nodiff:caesar]
cff12f05849402d09a4487bad26ffcd968215dc7
|
| |
|
|
| |
4356fc70f6d9ceec9f94b1879f49e27f3fee4342
|
| |
|
|
| |
d080266c9235a1852d0115157e87a090c7fe63e1
|
| |
|
|
| |
d9b67f1778da2d15dd94f7285afe4e3490a233ab
|
| |
|
|
| |
5a3405e64b730f0056e381af07658d6c2edcb92b
|
| |
|
|
| |
9aa0e068d05932c7ea3065408ed3dbb7fddb6321
|
| |
|
|
| |
88507df33d73cfbdf2c61c602f3c3bb51dd48ded
|
| |
|
|
| |
ec1d0c473e709e8aad76b4e190a75ad4125a9ce2
|
| |
|
|
|
|
| |
* Also the same for TMutableRange.
* Add TRange, TMutableRange constructor from std::span.
46da1787e68a922bb65181c63a226a3797edae0b
|
| |
|
|
| |
2b4749cade5242ec10775c7819c790735f7484b7
|
| |
|
|
|
|
| |
TAtomicIntrusivePtr
68430c6347c40eee09bc63a3441af024780b86d4
|
| | |
|
| |
|
|
|
| |
https://en.cppreference.com/w/cpp/types/numeric_limits/lowest
349097f620987be824e9db00f76af89746741c75
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The new format is better optimized for VectorizedRead, which is needed in Sequoia.
Previously, the output for the BeginCopy verb was a serialized subtree plus the list of opaque children. In a non-Sequoia world, that is useful and easy to work with. However, in Sequoia, a subtree might not be contained on the same cell, which makes it difficult to use the old data transfer format.
Now it's a vector of nodes with clear separation between them. This change makes it easier to work with VectorizedRead since the conversion between BeginCopy return and VectorizedRead(BeginCopy) return is very straight-forward. Additionally, this change helps with copying from Cypress to Sequoia, since now it's much easier to process each node individually (which is needed for Sequoia to work and not clog up one cell).
In the next PR, I'm planning on:
1. Making BeginCopy a read-request (removing snapshot locks). So the verb will only return meta-information about the requested nodes.
2. Adding a verb, executed before BeginCopy, where the locks would be taken and the general structure of the tree is returned.
017ec9971e8e0a611a7286ed748b6071cfc89048
|
| |
|
|
| |
089f70efa4e50032e1c73e5c556363fa355eb4dc
|
| |
|
|
|
| |
Moving files around so that include of either `string_builder.h` or `format.h` would result in being able to use both `Format` and `TStringBuilder`
8a2abbea2ae7027c1cd3a243ab3de55bdd5d3d27
|
| |
|
|
| |
81b1c42ea62adf4f2a7e2e7ba3601ca9687e29ed
|
| |
|
|
| |
7be48a0651838e770b920150e0348bf3e92416d2
|
| |
|
|
| |
6ac63b68e1f264939c9b4fc169e9381a70ceab8a
|
| |
|
|
| |
e52d229afddf7db640499d3856bc55f2b7360bb4
|
| |
|
|
| |
a27af83d265ebf4e7f4bf273eb41f69850817b05
|
| |
|
|
| |
438bc5ed4e35d7a3aeffcce25e862d21289d4cad
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
e856aa45df227b86e8b121852d3774bb2504193b
|
| | |
|
| |
|
|
| |
4792c7769dba84e38c0d981714741114add571d3
|
| |
|
|
| |
810902d6e6c3104880e1ab3b34d29a8aa4bec21b
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
NYT::Format had several problems:
1. There are too many ways to enable printing of T. Not all are equally good. You could specialize TValueFormatter, you could write an overload of FormatValue, you could write an overload of ToString, you could write an overload of operator << for special stream or you could specialize the Out function.
2. If you attempt to print T which cannot be printed, you get a linker error without a proper source location which is very frustrating to work with.
3. There is no static analysis of format string performed even when it is possible.
4. If you write FormatValue overload, you still have to write ToString overload if you want to use this function (and people tend to use it quite a bit, since it is defined for util types and enums.
This pr addresses these issues to some extent. Relevant changes:
1. The only way to support NYT::Format is to define the FormatValue overload. Otherwise, you get a compile-time error.
2. Format overloads have changed: Now you have two options for general use:
```
TString Format(TStaticFormat<TArgs...> fmt, TArgs&&... args);
TString Format(TRuntimeFormat fmt, TArgs&&... args);
```
Either overload checks if TArg has a FormatValue overload. TStaticFormat performs a compile-time check of flags and the argument count. It binds to any string literal and constexpr string/string_view (and TStringBuf). TRuntimeFormat has to be mentioned explicitly. Otherwise, you will get a compile-time error for using runtime variable as a format.
3(!!!). Types which name begins with NYT:: have a specialization of ToString function which uses FormatValue. Thus, if you write class in namespace NYT and define FormatValue, you get ToString automatically. If your type is not from namespace enclosing NYT, you can just call NYT::ToString for the same effect. This limitation was caused by the fact, that we cannot review all of the external projects code which might inherit from stl classes or adopt some other questionable code practises which may completely break the dispatching mechanism of ToString due to the specialization (there were such cases). Proper documentation of this library will be added soon, so that this interaction is made known. This limitation might be lifted later
77beb68082e10aaf48be1842aad8aba63f26c1bd
|
| |
|
|
| |
f18a9a891758a7ec308b2a88b2cdf3f0942b2301
|
| |
|
|
| |
feeb90a4704dca0309a6252ea872283ea9302a4b
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
85eb5ffdc79771c842f049e9392902ac6868cece
|
| |
|
|
|
| |
YTORM-1057
0aa4ceb80d984a15c92a69f242ecf517b3c7a07c
|
| |
|
|
|
|
| |
apply to global loggers in yt/yt/core
787f98549edf6e8d46ac63cdb8db0609ccde42da
|
| |
|
|
| |
5da23499c430efcdae980093fd84c8391537660c
|
| |
|
|
|
|
| |
TYsonStruct implementation (now with a fixed bug)
94a777c1510546c0a8a7ef3e3b327add7dfc3813
|
| |
|
|
|
|
|
|
|
| |
TYsonStruct implementation
Revert "YT-21310: Introduce CYsonStructSource to remove code duplication in TYsonStruct implementation"
This reverts commit b5dbf4de1df8156e23176662e15b167361fddb19, reversing
changes made to 5ab2a4add3801f5d310e76bf9ba496342d2b765a.
1f84c055d6e4df384230688c946a45dd6351a386
|
| | |
|