summaryrefslogtreecommitdiffstats
path: root/library/cpp/yt
Commit message (Collapse)AuthorAgeFilesLines
...
* Refactor and improve crash handler stderr dumpsbabenko2025-02-013-25/+10
| | | | | | | | | 1. Prevent concurrent crashes to interleave in stderr 2. Cleaner and more compact formatting of registers dump 3. Omit `OLDMASK` (nobody seems to know what is it for) 4. Don't print the top backtrace frame twice 5. Code cosmetics commit_hash:f7a4c960b3400d6dfb0f8f60317aa524611d2fd0
* Switch to std::string for logging tagsbabenko2025-01-193-22/+62
| | | | | [nodiff:caesar] commit_hash:62fa96ca05b1a4018e2e51e6b589483cd3a44fc4
* Babenkoed: Shadow Warssabdenovch2025-01-164-8/+27
| | | | commit_hash:deadebefdfd81b6c737b9464435356b8f652e296
* Typoscoteeq2025-01-161-1/+1
| | | | commit_hash:afeeeea3c2cbdec0ddeed0fea5f88df9d8575f8b
* Squeeze contiguous sequences of blocks in loggingngc2242025-01-143-0/+192
| | | | commit_hash:5dda6f5ef324f03c99af3dae32ebf4a059f02bd3
* Add direct includes in librarymikhnenko2025-01-132-0/+3
| | | | commit_hash:747602d8e470d51bcf6f38dfddafa12047d210df
* YT-18571: library/cpp/yt/small_containers -> library/cpp/yt/compact_containersbabenko2025-01-1220-10/+10
| | | | commit_hash:fc31d2770ebeffeb513c4535bd146c731b7f78fb
* Cosmeticsdtorilov2025-01-111-3/+3
| | | | commit_hash:f51f172878d227b49cb480296f61a6575e5d6e67
* YT: Removed extra trailing comma in std::tuple formattingbulatman2025-01-102-1/+8
| | | | commit_hash:19b37bd3d7e3b4d80e4844676c881bbef1fec76b
* YT-21233: Drop dependency on yson in library/cpp/yt/error by switch to ↵arkady-e1ppa2024-12-2613-593/+594
| | | | | | | std::string everywhere done commit_hash:8a83afa39917ba66a5161388a7cd74a4488d9908
* YT-23859: Various memory tracking improvementssabdenovch2024-12-253-2/+12
| | | | commit_hash:c87fb9e7c5cb8a896dd4b758ad73c5c540339df7
* YT-21233: Issues and tidying up of rXXXXXXarkady-e1ppa2024-12-256-59/+39
| | | | commit_hash:19481c9fbb008aab4f4d676f1a3a242f6e90e90e
* YT-21233: Adjust (To/From)ErrorAttributeValue CPOs, revert ConvertTo ↵arkady-e1ppa2024-12-2523-106/+3493
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | becoming CPO, move TErrorCode and TError to library/cpp/yt/error \[nodiff:caesar\] List of changes: 1) Make `ConvertTo` a normal function again (basically, a revert of previous change). It turned out to be very inconvenient entry point 2) Introduce concept for "Primitive types" which are handled without yt/core module. Please note that inclusion of core **does not** affect work with primitive types (otherwise we would be facing and ODR violation). These are numerics, duration, instant, string-like objects and guid 3) Introduce `FromErrorAttributeValue` which is a substitute to `ConvertTo` with special behavior (see below) 4) Scheme for (de-)serialization has changed: 1) Primitive types are handled via `ConvertToTextYsonString` and `ConvertFromTextYsonString` 2) Other types are not supported without yt/core. Otherwise `ConvertToYsonString(value, EYsonFormat::Text)` used for serialization and `ConvertTo<T>(value)` for deserialization. 5) New format of attribute value storage allows to not care about concrete type of the attribute (text yson strings can be detected since they start with `\"` and deserialized so are text yson bools, everything else is already human readable). This drops dependency on `TTokenizer` 6) Some small parts (e.g. enums or constants or aliases) of yt/core/misc files were moved to library/cpp/yt/\* locations and re-included to drop dependencies of stripped\_error on them 7) `TErrorAttributes` is now a simple hash map instead of a handle to `IAttributeDictionary` 8) `ExtractFromAttributes` weak symbol is finally moved to library/cpp/yt/error due to point 9 allowing to fully drop dependency on `IAttributeDictionary`. Combined with point 7 this drops dep on yt/core/ytree altogether 9) Moved `TErrorCode` to library/cpp/yt/error. There is a logger there which forces dep on library/cpp/yt/logging. It is not required really, and can be later removed 10) Moved `TError` with format and macroes to library/cpp/yt/error. It still (and probably forever will) depend on yson. What can be done next: Switch TYsonString to TString and move ConvertTo/FromTextYsonString to library/cpp/yt/error. This would remove dep on library/cpp/yt/yson\_string commit_hash:6f11dc478ab782a1f98a5aedcd45a4800d3f4e7b
* Fixed bug in loggingsabdenovch2024-12-251-1/+1
| | | | commit_hash:a31e79330e3ec72361743d932a47fc67f92fb7a0
* Intermediate changesrobot-piglet2024-12-246-0/+134
| | | | commit_hash:41c16027e2f796197b98307419a63da9fa3f1a88
* YT-18571: Pluggable singleton registrybabenko2024-12-215-252/+0
| | | | commit_hash:534ea2df7961feea6932d1e243df20d825c7fe69
* YT-21233: Introduce Convert(To/From)TextYsonString in ↵arkady-e1ppa2024-12-212-2/+515
| | | | | | library/cpp/yt/yson_string to be later used for error attribute serialization commit_hash:f7632c9622c71e023148c9454a9889e9cac75ecd
* Adapt type erasure to clang-16 compiler bugarkady-e1ppa2024-12-191-5/+16
| | | | commit_hash:690d178c5c95ad7106aee6c26a031e6eeec1f093
* Intermediate changesrobot-piglet2024-12-191-1/+1
| | | | commit_hash:57515baf5d33fd78c2555cb2b3351498b9189c72
* Use AnyObject to remove type erasure logic from yt/yt/corearkady-e1ppa2024-12-173-7/+19
| | | | commit_hash:79b0a0b437e41879c3a7d4c079ab571bbaafd45f
* Introduce (any use) YT_STATIC_INITIALIZERbabenko2024-12-141-0/+19
| | | | commit_hash:7d3055f901a21e63f7860f443252a86e9895fd08
* Enable -Wimplicit-fallthrough (and also fix the discovered issues)babenko2024-12-081-0/+1
| | | | commit_hash:06fd6ffa9ec768168c34547fcdfb15e2f9ad75f8
* Intermediate changesrobot-piglet2024-12-073-0/+78
| | | | commit_hash:7b57398460fb850349f35c543b8cef63f6490b6b
* Fix various issuespogorelov2024-12-066-9/+8
| | | | commit_hash:50f729d3716d8b1f5b852cfc008e228172fb79c4
* Intermediate changesrobot-piglet2024-12-061-7/+7
| | | | commit_hash:87c6f9898873ec96e4aa9dc4c7df86e67a11e313
* YT-23698: Check size of ref counted objectslukyan2024-12-041-0/+4
| | | | commit_hash:97159680fa733af4212c094e917bc78a47eb0c15
* Intermediate changesrobot-piglet2024-12-044-0/+1462
| | | | commit_hash:cbf5ab65e5ba1b2d286f974a6b6b463ed152b381
* Intermediate changesrobot-piglet2024-12-014-82/+127
| | | | commit_hash:320ab736dea5dae74e2ec8c344fb915be4c4df99
* YT-21233: Introduce ToAttributeValue cpo which removes dependency of ↵arkady-e1ppa2024-11-297-32/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | TErrorAttribute from yt/core Plan: 1) Remove `IAttributedDictionary` type from the public API. \+ 2) Remove `Set` method from public API in favor of `operator<<=`. \+ 3) Adopt `ConvertTo<T>` (or other name) CPO with proper extension into `NYT::NYson::ConvertTo` from `yt/core`. 4) Use CPO from (3) to eliminate direct dependency on `yt/core` of `Get/Find` methods from attributes API. 5) Adopt `ConvertToYsonString` (or other name) CPO with proper extension into `yt/core` customisations. 6) Use CPO from (5) to eliminate direct dependency on `yt/core` of `TErrorAttribute` ctor. 7) Swap attributes implementation to the one which doesn’t use `IAttributeDictionary`. 8) At this point `stripped_error*` can be moved to library/cpp/yt and so can recursively dependant on THROW macro methods `Get/Find/…`. 9) Adjust CPO’s to work with `std::string` instead of `TYsonString` assuming text format to be used (maybe `TString` for now). 10) Remove dep of `library/cpp/yt/error` on `yson` entirely. This pr addresses 5-6 steps of plan. Below is a brief explanation of design decisions. We also expressed everything related to key-value code in terms of aliases of `TErrorAttribute` so that later we could make a relatively simple switch to `std::string`. We expect to do steps 7-8 in the next pull request as everything should be ready commit_hash:de9feca2bd24d823b33d904ef0fa5f4856f9b020
* Intermediate changesrobot-piglet2024-11-292-8/+0
| | | | commit_hash:60e005cdf76d5bff2a370a6b8f35ef4f6792f414
* YT-23435: Parse format string at compile timearkady-e1ppa2024-11-186-54/+251
| | | | commit_hash:804530d1ee861ff42d7d8cad25d9f569b4feaacf
* YT-22885: Handle unknown values in (Try)CheckedEnumCastbabenko2024-11-163-3/+61
| | | | commit_hash:5ce8019253cdb971d1af36350e3efa3a4ec8545c
* Fix babenko issues of rXXXXXXarkady-e1ppa2024-11-142-4/+4
| | | | | [nodiff:caesar] commit_hash:93eef00a7132e68e727aa1f4028616db6522d03c
* YT-23346: Introduce YT_ASSUME and YT_UNREACHABLE macros.thenewone2024-11-121-0/+14
| | | | | | | | | | | | | Y_ASSUME and Y_UNREACHABLE macros are platform-independent ways to give a hint for a compiler about some value or state. Compilier may use that hint for optimization. On the other hand if the hint is wrong it may lead to undefined behavior. YT_ASSUME and YT_UNREACHABLE are wrappers around Y_ASSUME and Y_UNREACHABLE that actually check that the hint is correct in debug build. That introduces some code safety and at the same time allows certain optimization in optimized build. commit_hash:2d0969361910a10a870bae226d838d494e656edb
* Add TSharedRef::FromString overloads for std::stringbabenko2024-11-113-9/+52
| | | | commit_hash:2edff041e77ead18a6bb7efeb13c8163d85c0750
* Intermediate changesrobot-piglet2024-11-082-2/+4
| | | | commit_hash:17dbd6d7e5fc440afa2d816e245a73e25135bfb5
* YT-21233: Rewrite ConvertTo CPO using TagInvokearkady-e1ppa2024-11-088-0/+386
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Plan: 1) Remove `IAttributedDictionary` type from the public API. \+ 2) Remove `Set` method from public API in favor of `operator<<=`. \+ 3) Adopt `ConvertTo<T>` (or other name) CPO with proper extension into `NYT::NYson::ConvertTo` from `yt/core`. 4) Use CPO from (3) to eliminate direct dependency on `yt/core` of `Get/Find` methods from attributes API. 5) Adopt `ConvertToYsonString` (or other name) CPO with proper extension into `yt/core` customisations. 6) Use CPO from (5) to eliminate direct dependency on `yt/core` of `TErrorAttribute` ctor. 7) Swap attributes implementation to the one which doesn’t use `IAttributeDictionary`. 8) At this point `stripped_error*` can be moved to library/cpp/yt and so can recursively dependant on THROW macro methods `Get/Find/…`. 9) Adjust CPO’s to work with `std::string` instead of `TYsonString` assuming text format to be used (maybe `TString` for now). 10) Remove dep of `library/cpp/yt/error` on `yson` entirely. This pr addresses 3-4 steps of plan. Below is a brief explanation of design decisions. We want to have a concept which detects if there is a `ConvertTo` method and if true, try calling it. Templates can only perform unqualified name lookup and if we allow non-ADL overloads to be found, we would have dependency on inclusion order (if `ConvertTo` is included prior to our code, everything works fine, but if the order is reverse, templated dispatch would fail, but direct call would work just fine). That is why we adopt niebloids which first disable ADL lookup of the name `ConvertTo` by directing it to niebloid implemented via `TagInvoke` mechanism. TagInvoke design <https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1895r0.pdf> . TL;DR: we want to have behavior which is consistent with inclusion order. Key difference now is that `ConvertTo` works consistently in both manual calls and template function body calls and is no longer visible for ADL part of the unqualified name lookup commit_hash:32af641bd0af559bfe670c2ceb36721fb4afc2dd
* Better diagnostics in AbortProcess(Silently|Dramatically)babenko2024-11-068-12/+108
| | | | commit_hash:7bbc13afbd569ca9bb064aed656c12644fd2de96
* NaN-safe comparison and hashingbabenko2024-11-069-2/+294
| | | | commit_hash:46d59ab3acbd313753d3e46f3a6f10a8ebc424d8
* Intermediate changesrobot-piglet2024-11-051-3/+3
| | | | commit_hash:fa9cb13adebcd335794779a600c4d88ad1af00d4
* add ::element_type, .get() to smart pointers for better compatibility with stdpavook2024-11-044-0/+22
| | | | | For example, this makes it possible to use gtest pointer matchers on smart pointers commit_hash:2650074ae18ee35696b297d3d1f0393e7350789f
* YT-22885: Refactor checked castsbabenko2024-11-038-51/+122
| | | | commit_hash:7f7600d332c3ddb5c8372e921bcba3b4fbed68f8
* Intermediate changesrobot-piglet2024-10-311-3/+3
| | | | commit_hash:6c7ea26efb0f57227eee0726fe43fe72e05f8f33
* Fix regression: static anchors are not updated properlybabenko2024-10-303-19/+51
| | | | commit_hash:ab0bd9b2d0569820e495c714baecb05145ed35bf
* YT-22593: Migrate table schemas to std::stringbabenko2024-10-292-0/+8
| | | | | [nodiff:caesar] commit_hash:5dbd8e19169560e317e150cd4c6a420a32abdc05
* Add GetAllSetValue and IsKnownValuebabenko2024-10-273-5/+72
| | | | commit_hash:cbc39112d8384b8c4bcd2410f0a203466b400c10
* YT-22885: DEFINE_ENUM_UNKNOWN_VALUE, string-related conversionsbabenko2024-10-267-96/+165
| | | | commit_hash:14c7e42422af750383f04855b4a7ea6b267b92d2
* YT-21233: Introduce TErrorAttributes as an opaque type for attributes to ↵arkady-e1ppa2024-10-226-0/+315
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | hide dependencies on IAttributeDictionary's API Plan: 1) Remove `IAttributedDictionary` type from the public API. \+ 2) Remove `Set` method from public API in favor of `operator<<=`. \+ 3) Adopt `ConvertTo<T>` (or other name) CPO with proper extension into `NYT::NYson::ConvertTo` from `yt/core`. 4) Use CPO from (3) to eliminate direct dependency on `yt/core` of `Get/Find` methods from attributes API. 5) Adopt `ConvertToYsonString` (or other name) CPO with proper extension into `yt/core` customisations. 6) Use CPO from (5) to eliminate direct dependency on `yt/core` of `TErrorAttribute` ctor. 7) Swap attributes implementation to the one which doesn’t use `IAttributeDictionary`. 8) At this point `stripped_error*` can be moved to library/cpp/yt and so can recursively dependant on THROW macro methods `Get/Find/…`. 9) Adjust CPO’s to work with `std::string` instead of `TYsonString` assuming text format to be used (maybe `TString` for now). 10) Remove dep of `library/cpp/yt/error` on `yson` entirely. This pull request covers steps 1 and 2 laying foundation to 3-4 being implemented in the next one commit_hash:e899bccdef4ebed321ea2eb93215282694c261ac
* Introduce message_level_overrides to tune log message levels at runtimebabenko2024-10-203-20/+35
| | | | | | | | * Changelog entry Type: feature Add message_level_overrides option to logging config for better run-time tuning. commit_hash:07e9563fd111c437edf7ac0e5dd190781878d8fa
* YTORM-1187: Fix IN and BETWEEN expression work with indexesdgolear2024-10-172-31/+29
| | | | commit_hash:12d86de033f73ea238ebde7f47b689d30014119a