summaryrefslogtreecommitdiffstats
path: root/library/cpp/yt
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Fix disabling ref counted trackingnastprol2024-10-172-0/+8
| | | | commit_hash:8552424a0dfce80a71c406632beba95646bf5b3e
* Fancier error messages upon static analysis check failurearkady-e1ppa2024-10-162-43/+15
| | | | commit_hash:f939fba86939275047d2eca49b11bec3d0ea3ce7
* Move atomic object to library/cpp/yt/threadingarkady-e1ppa2024-10-142-0/+160
| | | | | [nodiff:caesar] commit_hash:446e45e0378f6b2cb31d85bcc3e4516efbdfe5a7
* Styledgolear2024-10-141-0/+2
| | | | commit_hash:e267dc9b41e9291970d760657852a20f06fa8410
* Extract string_builderbabenko2024-10-136-177/+217
| | | | commit_hash:1573c88f09db79bab2755c9c2c3ffd0bc219b2d2
* Support Android build for YT librarykharcheva2024-10-102-1/+11
| | | | commit_hash:a21164c621de657007dd5ba88024cf92cb5ba739
* YT: Support plain enum deserializationdgolear2024-10-103-10/+33
| | | | | (HIDDEN_URL commit_hash:d9358ac48da1ab4a4ef9ccdbf7eb77a100cf3897
* Intermediate changesrobot-piglet2024-10-083-12/+113
| | | | commit_hash:8b7eb71badc9f2fcd168ee34e8c379b35577eccb
* Drop redundant MarkAsIntentionallyLeakedbabenko2024-10-081-3/+0
| | | | commit_hash:a7e152eae3d2996e60fa5940906933bfb64bdc88
* Fix spellingbabenko2024-10-083-13/+13
| | | | commit_hash:4ef7f7ef82cc22483672460eb87dfe4fa6b5d817
* Assume LSan is always enabled in ASan buildsbabenko2024-10-083-4/+4
| | | | commit_hash:e48e4ec5e5215afc5c32dc6213398b6b28dbdd7b
* Remove Size, Empty and Data usages from librarymikhnenko2024-10-044-4/+4
| | | | commit_hash:ef5ad4cfa9e68bbfc586492e8c376c732d0a48af
* Add TExpiringSet::Removebabenko2024-09-303-4/+42
| | | | commit_hash:5d76a2050843e639046dc696be3b43c1795fd1dc
* Extract TExpiringSet to library/cpp/containersbabenko2024-09-304-0/+239
| | | | commit_hash:dd1c08771b1d4865d03a492927afa0f9895a5f44
* Add an option to disable refcounted trackingnastprol2024-09-253-3/+13
| | | | commit_hash:ceb575c0377d4a48c0507590d878e690e92f5c63
* Intermediate changesrobot-piglet2024-09-231-38/+53
| | | | commit_hash:9da3eb91ac1626625fafab7ae80b22f3f3b75821
* Fix TAtomicIntrusivePtr::Reset for lsanbabenko2024-09-231-1/+0
| | | | commit_hash:7db063d2838aac3ab4a0c681ca1744361cfbb31e