summaryrefslogtreecommitdiffstats
path: root/library/cpp/yt/memory
Commit message (Collapse)AuthorAgeFilesLines
* YT-21868: Refactor NYT::Formatarkady-e1ppa2024-06-072-12/+16
| | | | | | | | | | | | | | | | | | | | 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
* Intermediate changesrobot-piglet2024-05-084-0/+236
|
* Fix ASAN issues in GetTlsScratchBufferbabenko2024-05-051-7/+10
| | | | c2cf2ec6852cbccda74fe6f6de74283db553a809
* YT-21566: Access thread local variables via noinline functionslukyan2024-04-262-8/+7
| | | | 970c33b44a7bd166b2716d86d3d2053dcaf05d7d
* Move concepts to library/cpp/yt/misc/concepts.harkady-e1ppa2024-04-211-28/+4
| | | | | Done b2c0a25fcacbb46fcf6294ce86b1a27ad2adac50
* Avoid passing columnPresenceBuffer aroundbabenko2024-04-192-0/+48
| | | | ed3889fb0e8fb71a059686f7c4133e9058935718
* Move FunctionView to library/cpp/yt/memory and add unit testsarkady-e1ppa2024-04-154-0/+405
| | | | 0f22987a2824410add2233f4434e26c9e1903da1
* Add .Data/.data methods to NYT::TRangepechatnov2024-02-151-0/+10
| | | | f637e6debdcb60f78ab07fb4be833a881a1452f7
* feat contrib: aiogram 3armenqa2024-01-196-188/+0
| | | | Relates: https://st.yandex-team.ru/, https://st.yandex-team.ru/
* Library import 8 (#1074)AlexSm2024-01-187-9/+17
| | | | | * Library import 8 * Add contrib/libs/cxxsupp/libcxx/include/__verbose_abort
* Use volatile TLS in library/cpp/ytlukyan2023-12-051-1/+3
|
* External build system generator release 65robot-ya-builder2023-12-051-3/+3
| | | | Update tools: yexport, os-yexport
* add darwin-arm64 CMakeListsdcherednik2023-11-202-0/+36
|
* Support Save/Load TYsonStringyurial2023-11-164-0/+29
|
* YT-20424: Fix move constructor and assignment for TSharedRange.ponasenko-rs2023-11-143-0/+85
|
* Intermediate changesrobot-piglet2023-09-254-0/+295
|
* Removed the last typedefs in the codebasesabdenovch2023-08-287-17/+17
| | | | | removed a lot of typedefs and turned a couple of std::pairs into something more meaningful
* YT-19686: Support building TRef from std::stringgritukan2023-08-073-0/+9
|
* YT-19210: expose YQL shared library for YT.max422023-07-292-0/+65
| | | | After this, a new target libyqlplugin.so appears. in open-source cmake build. Diff in open-source YDB repo looks like the following: https://paste.yandex-team.ru/f302bdb4-7ef2-4362-91c7-6ca45f329264
* Add explicit sanitizer dependencies up to marketreshilkin2023-07-265-0/+5
|
* Intermediate changesrobot-piglet2023-06-302-15/+40
|
* Revert "YT-19324: move YT provider to ydb/library/yql"max422023-06-302-65/+0
| | | | This reverts commit ca272f12fdd0e8d5c3e957fc87939148f1caaf72, reversing changes made to 49f8acfc8b0b5c0071b804423bcf53fda26c7c12.
* YT-19324: move YT provider to ydb/library/yqlmax422023-06-302-0/+65
| | | | | | | | | | | | | | This commit is formed by the following script: https://paste.yandex-team.ru/6f92e4b8-efc5-4d34-948b-15ee2accd7e7/text. This commit has zero effect on all projects that depend on YQL. The summary of changes: - `yql/providers/yt -> ydb/library/yql/providers/yt `- the whole implementation of YT provider is moved into YDB code base for further export as a part of YT YQL plugin shared library; - `yql/providers/stat/{expr_nodes,uploader} -> ydb/library/yql/providers/stat/{expr_nodes,uploader}` - a small interface without implementation and the description of stat expr nodes; - `yql/core/extract_predicate/ut -> ydb/library/yql/core/extract_predicate/ut`; - `yql/core/{ut,ut_common} -> ydb/library/yql/core/{ut,ut_common}`; - `yql/core` is gone; - `yql/library/url_preprocessing -> ydb/library/yql/core/url_preprocessing`. **NB**: all new targets inside `ydb/` are under `IF (NOT CMAKE_EXPORT)` clause which disables them from open-source cmake generation and ya make build. They will be enabled in the subsequent commits.
* add ymake export to ydbalexv-smirnov2023-06-132-0/+69
|
* Intermediate changesrobot-piglet2023-06-111-0/+10
|
* Copy cached responses in TObjectServiceCachebabenko2023-06-062-0/+19
|
* Fix typos in library/cpp/ytbabenko2023-06-032-2/+2
|
* YT-19191: Support system stl for yt/cpp/mapreduce clientnadya732023-05-252-3/+3
| | | Support default stl for yt/cpp/mapreduce client
* YT: Fix memory leak in Newbulatman2023-05-232-2/+19
|
* Enable more tests involving memory taggingbabenko2023-05-201-3/+7
|
* Extract memory tag API to librarybabenko2023-05-198-0/+137
|
* Remove extra semicolons in ytbulatman2023-05-162-2/+2
|
* YT-17689: Move TFreeList to library/cpp/yt/memoryaleexfi2023-05-104-0/+455
| | | Iteration no. 2. First one reverted due to YT-18997
* Intermediate changesrobot-piglet2023-05-052-8/+12
|
* YT-19007: Implement NewWithOffloadedDtorbabenko2023-05-024-112/+120
|
* External build system generator release 29robot-ya-builder2023-04-191-1/+1
| | | Update tools: yexport
* Revert "YT-17689: Move TFreeList to library/cpp/yt/memory"aleexfi2023-04-174-329/+0
| | | | This reverts commit 617a1d07971366c19cdf278579ee9b1cbfa53db8, reversing changes made to 27e0312d3842c4e5e3ea6b09611c8f6ff6938dd6.
* Intermediate changesrobot-piglet2023-04-171-3/+3
|
* Refactor backtrace cursorsbabenko2023-04-138-0/+133
|
* Intermediate changesrobot-piglet2023-04-113-11/+119
|
* YT-18707: Move LLVM out of ytlibdtorilov2023-04-071-0/+16
|
* Revert ymake build from ydb oss exportalexv-smirnov2023-03-282-61/+0
|
* Intermediate changesrobot-piglet2023-03-211-1/+2
|
* External build system generator release 21robot-ya-builder2023-03-171-3/+3
| | | Update tools: yexport
* YT-17689: Move TFreeList to library/cpp/yt/memoryaleexfi2023-03-175-0/+330
|
* add library/cpp/actors, ymake build to ydb oss exportalexv-smirnov2023-03-152-0/+60
|
* Intermediate changesrobot-piglet2023-03-092-0/+30
|
* Intermediate changesrobot-piglet2023-03-073-2/+2
|
* External build system generator release 17robot-ya-builder2023-03-061-1/+1
| | | Update tools: yexport
* Use strong typedefs for TRefCountedTypeCookie and TRefCountedTypeKeybabenko2023-03-062-27/+43
|