catboost 1.25.1 → 1.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. package/DEPLOYMENT.md +22 -15
  2. package/README.md +37 -27
  3. package/binding.gyp +5 -7
  4. package/build_scripts/bootstrap.js +2 -1
  5. package/build_scripts/out/build.js +46 -68
  6. package/build_scripts/out/build_model.js +1 -1
  7. package/build_scripts/out/{build_ya.js → build_native.js} +1 -1
  8. package/build_scripts/out/ci.js +5 -5
  9. package/build_scripts/out/config.js +32 -18
  10. package/build_scripts/out/install.js +5 -3
  11. package/build_scripts/out/package_prepublish.js +1 -1
  12. package/build_scripts/out/packaging.js +1 -19
  13. package/build_scripts/out/run_tests.js +1 -1
  14. package/build_scripts/out/test.js +8 -3
  15. package/config.json +18 -11
  16. package/inc/catboost/libs/model_interface/c_api.h +349 -3
  17. package/lib/catboost.d.ts +65 -21
  18. package/package.json +4 -4
  19. package/src/api_helpers.cpp +100 -24
  20. package/src/api_helpers.h +8 -7
  21. package/src/api_module.cpp +1 -2
  22. package/src/model.cpp +483 -83
  23. package/src/model.h +24 -9
  24. package/inc/contrib/libs/cxxsupp/system_stl/include/stlfwd +0 -14
  25. package/inc/util/charset/recode_result.h +0 -9
  26. package/inc/util/charset/unicode_table.h +0 -123
  27. package/inc/util/charset/unidata.h +0 -421
  28. package/inc/util/charset/utf8.h +0 -384
  29. package/inc/util/charset/wide.h +0 -843
  30. package/inc/util/charset/wide_specific.h +0 -22
  31. package/inc/util/datetime/base.h +0 -669
  32. package/inc/util/datetime/constants.h +0 -7
  33. package/inc/util/datetime/cputimer.h +0 -124
  34. package/inc/util/datetime/parser.h +0 -292
  35. package/inc/util/datetime/systime.h +0 -47
  36. package/inc/util/datetime/uptime.h +0 -8
  37. package/inc/util/digest/city.h +0 -88
  38. package/inc/util/digest/fnv.h +0 -73
  39. package/inc/util/digest/multi.h +0 -14
  40. package/inc/util/digest/murmur.h +0 -57
  41. package/inc/util/digest/numeric.h +0 -86
  42. package/inc/util/digest/sequence.h +0 -48
  43. package/inc/util/draft/date.h +0 -129
  44. package/inc/util/draft/datetime.h +0 -184
  45. package/inc/util/draft/enum.h +0 -136
  46. package/inc/util/draft/holder_vector.h +0 -102
  47. package/inc/util/draft/ip.h +0 -131
  48. package/inc/util/draft/matrix.h +0 -108
  49. package/inc/util/draft/memory.h +0 -40
  50. package/inc/util/folder/dirent_win.h +0 -46
  51. package/inc/util/folder/dirut.h +0 -121
  52. package/inc/util/folder/filelist.h +0 -81
  53. package/inc/util/folder/fts.h +0 -108
  54. package/inc/util/folder/iterator.h +0 -109
  55. package/inc/util/folder/lstat_win.h +0 -20
  56. package/inc/util/folder/path.h +0 -225
  57. package/inc/util/folder/pathsplit.h +0 -113
  58. package/inc/util/folder/tempdir.h +0 -42
  59. package/inc/util/generic/adaptor.h +0 -134
  60. package/inc/util/generic/algorithm.h +0 -765
  61. package/inc/util/generic/array_ref.h +0 -282
  62. package/inc/util/generic/array_size.h +0 -24
  63. package/inc/util/generic/benchmark/vector_count_ctor/f.h +0 -9
  64. package/inc/util/generic/bitmap.h +0 -1115
  65. package/inc/util/generic/bitops.h +0 -459
  66. package/inc/util/generic/bt_exception.h +0 -24
  67. package/inc/util/generic/buffer.h +0 -232
  68. package/inc/util/generic/cast.h +0 -176
  69. package/inc/util/generic/deque.h +0 -24
  70. package/inc/util/generic/explicit_type.h +0 -42
  71. package/inc/util/generic/fastqueue.h +0 -55
  72. package/inc/util/generic/flags.h +0 -244
  73. package/inc/util/generic/function.h +0 -103
  74. package/inc/util/generic/fwd.h +0 -171
  75. package/inc/util/generic/guid.h +0 -61
  76. package/inc/util/generic/hash.h +0 -2032
  77. package/inc/util/generic/hash_primes.h +0 -140
  78. package/inc/util/generic/hash_set.h +0 -490
  79. package/inc/util/generic/hide_ptr.h +0 -3
  80. package/inc/util/generic/intrlist.h +0 -876
  81. package/inc/util/generic/is_in.h +0 -53
  82. package/inc/util/generic/iterator.h +0 -137
  83. package/inc/util/generic/iterator_range.h +0 -105
  84. package/inc/util/generic/lazy_value.h +0 -66
  85. package/inc/util/generic/list.h +0 -22
  86. package/inc/util/generic/map.h +0 -44
  87. package/inc/util/generic/mapfindptr.h +0 -60
  88. package/inc/util/generic/maybe.h +0 -713
  89. package/inc/util/generic/maybe_traits.h +0 -164
  90. package/inc/util/generic/mem_copy.h +0 -55
  91. package/inc/util/generic/noncopyable.h +0 -38
  92. package/inc/util/generic/object_counter.h +0 -53
  93. package/inc/util/generic/ptr.h +0 -1113
  94. package/inc/util/generic/queue.h +0 -57
  95. package/inc/util/generic/refcount.h +0 -162
  96. package/inc/util/generic/reserve.h +0 -11
  97. package/inc/util/generic/scope.h +0 -65
  98. package/inc/util/generic/serialized_enum.h +0 -406
  99. package/inc/util/generic/set.h +0 -42
  100. package/inc/util/generic/singleton.h +0 -136
  101. package/inc/util/generic/size_literals.h +0 -65
  102. package/inc/util/generic/stack.h +0 -18
  103. package/inc/util/generic/store_policy.h +0 -120
  104. package/inc/util/generic/strbase.h +0 -612
  105. package/inc/util/generic/strbuf.h +0 -552
  106. package/inc/util/generic/strfcpy.h +0 -17
  107. package/inc/util/generic/string.h +0 -1572
  108. package/inc/util/generic/string_hash.h +0 -21
  109. package/inc/util/generic/string_ut.h +0 -1175
  110. package/inc/util/generic/type_name.h +0 -34
  111. package/inc/util/generic/typelist.h +0 -114
  112. package/inc/util/generic/typetraits.h +0 -325
  113. package/inc/util/generic/utility.h +0 -132
  114. package/inc/util/generic/va_args.h +0 -400
  115. package/inc/util/generic/variant.h +0 -631
  116. package/inc/util/generic/variant_traits.h +0 -171
  117. package/inc/util/generic/vector.h +0 -119
  118. package/inc/util/generic/xrange.h +0 -258
  119. package/inc/util/generic/yexception.h +0 -212
  120. package/inc/util/generic/yexception_ut.h +0 -14
  121. package/inc/util/generic/ylimits.h +0 -92
  122. package/inc/util/generic/ymath.h +0 -206
  123. package/inc/util/memory/addstorage.h +0 -93
  124. package/inc/util/memory/alloc.h +0 -27
  125. package/inc/util/memory/blob.h +0 -296
  126. package/inc/util/memory/mmapalloc.h +0 -8
  127. package/inc/util/memory/pool.h +0 -432
  128. package/inc/util/memory/segmented_string_pool.h +0 -194
  129. package/inc/util/memory/segpool_alloc.h +0 -118
  130. package/inc/util/memory/smallobj.h +0 -141
  131. package/inc/util/memory/tempbuf.h +0 -111
  132. package/inc/util/network/address.h +0 -136
  133. package/inc/util/network/endpoint.h +0 -61
  134. package/inc/util/network/hostip.h +0 -16
  135. package/inc/util/network/init.h +0 -60
  136. package/inc/util/network/interface.h +0 -17
  137. package/inc/util/network/iovec.h +0 -65
  138. package/inc/util/network/ip.h +0 -116
  139. package/inc/util/network/nonblock.h +0 -8
  140. package/inc/util/network/pair.h +0 -9
  141. package/inc/util/network/poller.h +0 -58
  142. package/inc/util/network/pollerimpl.h +0 -707
  143. package/inc/util/network/sock.h +0 -608
  144. package/inc/util/network/socket.h +0 -421
  145. package/inc/util/random/common_ops.h +0 -130
  146. package/inc/util/random/easy.h +0 -47
  147. package/inc/util/random/entropy.h +0 -21
  148. package/inc/util/random/fast.h +0 -101
  149. package/inc/util/random/init_atfork.h +0 -3
  150. package/inc/util/random/lcg_engine.h +0 -66
  151. package/inc/util/random/mersenne.h +0 -46
  152. package/inc/util/random/mersenne32.h +0 -50
  153. package/inc/util/random/mersenne64.h +0 -50
  154. package/inc/util/random/normal.h +0 -38
  155. package/inc/util/random/random.h +0 -30
  156. package/inc/util/random/shuffle.h +0 -39
  157. package/inc/util/str_stl.h +0 -266
  158. package/inc/util/stream/aligned.h +0 -99
  159. package/inc/util/stream/buffer.h +0 -119
  160. package/inc/util/stream/buffered.h +0 -225
  161. package/inc/util/stream/debug.h +0 -53
  162. package/inc/util/stream/direct_io.h +0 -43
  163. package/inc/util/stream/file.h +0 -108
  164. package/inc/util/stream/format.h +0 -444
  165. package/inc/util/stream/fwd.h +0 -100
  166. package/inc/util/stream/hex.h +0 -8
  167. package/inc/util/stream/holder.h +0 -44
  168. package/inc/util/stream/input.h +0 -273
  169. package/inc/util/stream/labeled.h +0 -19
  170. package/inc/util/stream/length.h +0 -100
  171. package/inc/util/stream/mem.h +0 -255
  172. package/inc/util/stream/multi.h +0 -32
  173. package/inc/util/stream/null.h +0 -61
  174. package/inc/util/stream/output.h +0 -304
  175. package/inc/util/stream/pipe.h +0 -112
  176. package/inc/util/stream/printf.h +0 -25
  177. package/inc/util/stream/str.h +0 -207
  178. package/inc/util/stream/tee.h +0 -28
  179. package/inc/util/stream/tempbuf.h +0 -21
  180. package/inc/util/stream/tokenizer.h +0 -214
  181. package/inc/util/stream/trace.h +0 -60
  182. package/inc/util/stream/walk.h +0 -35
  183. package/inc/util/stream/zerocopy.h +0 -91
  184. package/inc/util/stream/zerocopy_output.h +0 -57
  185. package/inc/util/stream/zlib.h +0 -173
  186. package/inc/util/string/ascii.h +0 -236
  187. package/inc/util/string/builder.h +0 -39
  188. package/inc/util/string/cast.h +0 -347
  189. package/inc/util/string/cstriter.h +0 -14
  190. package/inc/util/string/escape.h +0 -70
  191. package/inc/util/string/hex.h +0 -59
  192. package/inc/util/string/join.h +0 -194
  193. package/inc/util/string/printf.h +0 -13
  194. package/inc/util/string/reverse.h +0 -16
  195. package/inc/util/string/split.h +0 -1080
  196. package/inc/util/string/strip.h +0 -257
  197. package/inc/util/string/strspn.h +0 -65
  198. package/inc/util/string/subst.h +0 -56
  199. package/inc/util/string/type.h +0 -50
  200. package/inc/util/string/util.h +0 -195
  201. package/inc/util/string/vector.h +0 -132
  202. package/inc/util/system/align.h +0 -50
  203. package/inc/util/system/atexit.h +0 -22
  204. package/inc/util/system/atomic.h +0 -51
  205. package/inc/util/system/atomic_gcc.h +0 -90
  206. package/inc/util/system/atomic_ops.h +0 -189
  207. package/inc/util/system/atomic_win.h +0 -114
  208. package/inc/util/system/backtrace.h +0 -39
  209. package/inc/util/system/byteorder.h +0 -186
  210. package/inc/util/system/compat.h +0 -84
  211. package/inc/util/system/compiler.h +0 -620
  212. package/inc/util/system/condvar.h +0 -71
  213. package/inc/util/system/context.h +0 -181
  214. package/inc/util/system/context_aarch64.h +0 -8
  215. package/inc/util/system/context_i686.h +0 -9
  216. package/inc/util/system/context_x86.h +0 -12
  217. package/inc/util/system/context_x86_64.h +0 -7
  218. package/inc/util/system/cpu_id.h +0 -159
  219. package/inc/util/system/daemon.h +0 -28
  220. package/inc/util/system/datetime.h +0 -98
  221. package/inc/util/system/defaults.h +0 -149
  222. package/inc/util/system/demangle.h +0 -5
  223. package/inc/util/system/demangle_impl.h +0 -23
  224. package/inc/util/system/direct_io.h +0 -71
  225. package/inc/util/system/dynlib.h +0 -119
  226. package/inc/util/system/env.h +0 -32
  227. package/inc/util/system/error.h +0 -95
  228. package/inc/util/system/event.h +0 -122
  229. package/inc/util/system/execpath.h +0 -17
  230. package/inc/util/system/fasttime.h +0 -6
  231. package/inc/util/system/fhandle.h +0 -27
  232. package/inc/util/system/file.h +0 -210
  233. package/inc/util/system/file_lock.h +0 -34
  234. package/inc/util/system/filemap.h +0 -383
  235. package/inc/util/system/flock.h +0 -35
  236. package/inc/util/system/fs.h +0 -156
  237. package/inc/util/system/fs_win.h +0 -29
  238. package/inc/util/system/fstat.h +0 -46
  239. package/inc/util/system/getpid.h +0 -12
  240. package/inc/util/system/guard.h +0 -179
  241. package/inc/util/system/hi_lo.h +0 -139
  242. package/inc/util/system/hostname.h +0 -10
  243. package/inc/util/system/hp_timer.h +0 -36
  244. package/inc/util/system/info.h +0 -12
  245. package/inc/util/system/interrupt_signals.h +0 -22
  246. package/inc/util/system/madvise.h +0 -30
  247. package/inc/util/system/maxlen.h +0 -32
  248. package/inc/util/system/mem_info.h +0 -18
  249. package/inc/util/system/mincore.h +0 -38
  250. package/inc/util/system/mktemp.h +0 -11
  251. package/inc/util/system/mlock.h +0 -43
  252. package/inc/util/system/mutex.h +0 -67
  253. package/inc/util/system/nice.h +0 -3
  254. package/inc/util/system/pipe.h +0 -90
  255. package/inc/util/system/platform.h +0 -246
  256. package/inc/util/system/progname.h +0 -13
  257. package/inc/util/system/protect.h +0 -25
  258. package/inc/util/system/rusage.h +0 -26
  259. package/inc/util/system/rwlock.h +0 -78
  260. package/inc/util/system/sanitizers.h +0 -122
  261. package/inc/util/system/sem.h +0 -41
  262. package/inc/util/system/shellcommand.h +0 -472
  263. package/inc/util/system/shmat.h +0 -32
  264. package/inc/util/system/sigset.h +0 -78
  265. package/inc/util/system/spin_wait.h +0 -10
  266. package/inc/util/system/spinlock.h +0 -121
  267. package/inc/util/system/src_location.h +0 -25
  268. package/inc/util/system/src_root.h +0 -68
  269. package/inc/util/system/sys_alloc.h +0 -43
  270. package/inc/util/system/sysstat.h +0 -52
  271. package/inc/util/system/tempfile.h +0 -34
  272. package/inc/util/system/thread.h +0 -167
  273. package/inc/util/system/tls.h +0 -307
  274. package/inc/util/system/types.h +0 -119
  275. package/inc/util/system/unaligned_mem.h +0 -67
  276. package/inc/util/system/user.h +0 -5
  277. package/inc/util/system/utime.h +0 -6
  278. package/inc/util/system/valgrind.h +0 -48
  279. package/inc/util/system/winint.h +0 -43
  280. package/inc/util/system/yassert.h +0 -121
  281. package/inc/util/system/yield.h +0 -4
  282. package/inc/util/thread/factory.h +0 -65
  283. package/inc/util/thread/fwd.h +0 -30
  284. package/inc/util/thread/lfqueue.h +0 -406
  285. package/inc/util/thread/lfstack.h +0 -188
  286. package/inc/util/thread/pool.h +0 -388
  287. package/inc/util/thread/singleton.h +0 -42
  288. package/inc/util/ysafeptr.h +0 -427
  289. package/inc/util/ysaveload.h +0 -700
@@ -1,90 +0,0 @@
1
- #pragma once
2
-
3
- #ifdef __GNUC__
4
- #pragma GCC diagnostic push
5
- #pragma GCC diagnostic ignored "-Warray-bounds" //need because of bug in gcc4.9.2
6
- #endif
7
-
8
- #include "defaults.h"
9
- #include "file.h"
10
- #include <util/generic/ptr.h>
11
- #include <util/network/pair.h>
12
- #include <util/generic/noncopyable.h>
13
-
14
- using PIPEHANDLE = SOCKET;
15
- #define INVALID_PIPEHANDLE INVALID_SOCKET
16
-
17
- /// Pipe-like object: pipe on POSIX and socket on windows
18
- class TPipeHandle: public TNonCopyable {
19
- public:
20
- inline TPipeHandle() noexcept
21
- : Fd_(INVALID_PIPEHANDLE)
22
- {
23
- }
24
-
25
- inline TPipeHandle(PIPEHANDLE fd) noexcept
26
- : Fd_(fd)
27
- {
28
- }
29
-
30
- inline ~TPipeHandle() {
31
- Close();
32
- }
33
-
34
- bool Close() noexcept;
35
-
36
- inline PIPEHANDLE Release() noexcept {
37
- PIPEHANDLE ret = Fd_;
38
- Fd_ = INVALID_PIPEHANDLE;
39
- return ret;
40
- }
41
-
42
- inline void Swap(TPipeHandle& r) noexcept {
43
- DoSwap(Fd_, r.Fd_);
44
- }
45
-
46
- inline operator PIPEHANDLE() const noexcept {
47
- return Fd_;
48
- }
49
-
50
- inline bool IsOpen() const noexcept {
51
- return Fd_ != INVALID_PIPEHANDLE;
52
- }
53
-
54
- ssize_t Read(void* buffer, size_t byteCount) const noexcept;
55
- ssize_t Write(const void* buffer, size_t byteCount) const noexcept;
56
-
57
- // Only CloseOnExec is supported
58
- static void Pipe(TPipeHandle& reader, TPipeHandle& writer, EOpenMode mode = 0);
59
-
60
- private:
61
- PIPEHANDLE Fd_;
62
- };
63
-
64
- class TPipe {
65
- public:
66
- TPipe();
67
- /// Takes ownership of handle, so closes it when the last holder of descriptor dies.
68
- explicit TPipe(PIPEHANDLE fd);
69
- ~TPipe();
70
-
71
- void Close();
72
-
73
- bool IsOpen() const noexcept;
74
- PIPEHANDLE GetHandle() const noexcept;
75
-
76
- size_t Read(void* buf, size_t len) const;
77
- size_t Write(const void* buf, size_t len) const;
78
-
79
- // Only CloseOnExec is supported
80
- static void Pipe(TPipe& reader, TPipe& writer, EOpenMode mode = 0);
81
-
82
- private:
83
- class TImpl;
84
- using TImplRef = TSimpleIntrusivePtr<TImpl>;
85
- TImplRef Impl_;
86
- };
87
-
88
- #ifdef __GNUC__
89
- #pragma GCC diagnostic pop
90
- #endif
@@ -1,246 +0,0 @@
1
- #pragma once
2
-
3
- // ya style breaks indentation in ifdef's and code becomes unreadable
4
- // clang-format off
5
-
6
- // What OS ?
7
- // our definition has the form _{osname}_
8
-
9
- #if defined(_WIN64)
10
- #define _win64_
11
- #define _win32_
12
- #elif defined(__WIN32__) || defined(_WIN32) // _WIN32 is also defined by the 64-bit compiler for backward compatibility
13
- #define _win32_
14
- #else
15
- #define _unix_
16
-
17
- #if defined(__sun__) || defined(sun) || defined(sparc) || defined(__sparc)
18
- #define _sun_
19
- #endif
20
-
21
- #if defined(__hpux__)
22
- #define _hpux_
23
- #endif
24
-
25
- #if defined(__linux__)
26
- // Stands for "Linux" in the means of Linux kernel (i. e. Android is included)
27
- #define _linux_
28
- #endif
29
-
30
- #if defined(__FreeBSD__)
31
- #define _freebsd_
32
- #endif
33
-
34
- #if defined(__CYGWIN__)
35
- #define _cygwin_
36
- #endif
37
-
38
- #if defined(__APPLE__)
39
- #define _darwin_
40
- #endif
41
-
42
- #if defined(__ANDROID__)
43
- #define _android_
44
- #endif
45
- #endif
46
-
47
- #if defined(__IOS__)
48
- #define _ios_
49
- #endif
50
-
51
- #if defined(_linux_)
52
- #if defined(_musl_)
53
- // nothing to do
54
- #elif defined(_android_)
55
- // Please do not mix with android-based systems.
56
- // This definition describes Standard Library (libc) type.
57
- #define _bionic_
58
- #else
59
- #define _glibc_
60
- #endif
61
- #endif
62
-
63
- #if defined(_darwin_)
64
- #define unix
65
- #define __unix__
66
- #endif
67
-
68
- #if defined(_win32_) || defined(_win64_)
69
- #define _win_
70
- #endif
71
-
72
- #if defined(__arm__) || defined(__ARM__) || defined(__ARM_NEON) || defined(__aarch64__) || defined(_M_ARM)
73
- #if defined(__arm64) || defined(__arm64__) || defined(__aarch64__)
74
- #define _arm64_
75
- #else
76
- #define _arm32_
77
- #endif
78
- #endif
79
-
80
- #if defined(_arm64_) || defined(_arm32_)
81
- #define _arm_
82
- #endif
83
-
84
- /* __ia64__ and __x86_64__ - defined by GNU C.
85
- * _M_IA64, _M_X64, _M_AMD64 - defined by Visual Studio.
86
- *
87
- * Microsoft can define _M_IX86, _M_AMD64 (before Visual Studio 8)
88
- * or _M_X64 (starting in Visual Studio 8).
89
- */
90
- #if defined(__x86_64__) || defined(_M_X64) || defined(_M_AMD64)
91
- #define _x86_64_
92
- #endif
93
-
94
- #if defined(__i386__) || defined(_M_IX86)
95
- #define _i386_
96
- #endif
97
-
98
- #if defined(__ia64__) || defined(_M_IA64)
99
- #define _ia64_
100
- #endif
101
-
102
- #if defined(__powerpc__)
103
- #define _ppc_
104
- #endif
105
-
106
- #if defined(__powerpc64__)
107
- #define _ppc64_
108
- #endif
109
-
110
- #if !defined(sparc) && !defined(__sparc) && !defined(__hpux__) && !defined(__alpha__) && !defined(_ia64_) && !defined(_x86_64_) && !defined(_arm_) && !defined(_i386_) && !defined(_ppc_) && !defined(_ppc64_)
111
- #error "platform not defined, please, define one"
112
- #endif
113
-
114
- #if defined(_x86_64_) || defined(_i386_)
115
- #define _x86_
116
- #endif
117
-
118
- #if defined(__MIC__)
119
- #define _mic_
120
- #define _k1om_
121
- #endif
122
-
123
- // stdio or MessageBox
124
- #if defined(__CONSOLE__) || defined(_CONSOLE)
125
- #define _console_
126
- #endif
127
- #if (defined(_win_) && !defined(_console_))
128
- #define _windows_
129
- #elif !defined(_console_)
130
- #define _console_
131
- #endif
132
-
133
- #if defined(__SSE__) || defined(SSE_ENABLED)
134
- #define _sse_
135
- #endif
136
-
137
- #if defined(__SSE2__) || defined(SSE2_ENABLED)
138
- #define _sse2_
139
- #endif
140
-
141
- #if defined(__SSE3__) || defined(SSE3_ENABLED)
142
- #define _sse3_
143
- #endif
144
-
145
- #if defined(__SSSE3__) || defined(SSSE3_ENABLED)
146
- #define _ssse3_
147
- #endif
148
-
149
- #if defined(__SSE4_1__) || defined(SSE41_ENABLED)
150
- #define _sse4_1_
151
- #endif
152
-
153
- #if defined(__SSE4_2__) || defined(SSE42_ENABLED)
154
- #define _sse4_2_
155
- #endif
156
-
157
- #if defined(__POPCNT__) || defined(POPCNT_ENABLED)
158
- #define _popcnt_
159
- #endif
160
-
161
- #if defined(__PCLMUL__) || defined(PCLMUL_ENABLED)
162
- #define _pclmul_
163
- #endif
164
-
165
- #if defined(__AES__) || defined(AES_ENABLED)
166
- #define _aes_
167
- #endif
168
-
169
- #if defined(__AVX__) || defined(AVX_ENABLED)
170
- #define _avx_
171
- #endif
172
-
173
- #if defined(__AVX2__) || defined(AVX2_ENABLED)
174
- #define _avx2_
175
- #endif
176
-
177
- #if defined(__FMA__) || defined(FMA_ENABLED)
178
- #define _fma_
179
- #endif
180
-
181
- #if defined(__DLL__) || defined(_DLL)
182
- #define _dll_
183
- #endif
184
-
185
- // 16, 32 or 64
186
- #if defined(__sparc_v9__) || defined(_x86_64_) || defined(_ia64_) || defined(_arm64_) || defined(_ppc64_)
187
- #define _64_
188
- #else
189
- #define _32_
190
- #endif
191
-
192
- /* All modern 64-bit Unix systems use scheme LP64 (long, pointers are 64-bit).
193
- * Microsoft uses a different scheme: LLP64 (long long, pointers are 64-bit).
194
- *
195
- * Scheme LP64 LLP64
196
- * char 8 8
197
- * short 16 16
198
- * int 32 32
199
- * long 64 32
200
- * long long 64 64
201
- * pointer 64 64
202
- */
203
-
204
- #if defined(_32_)
205
- #define SIZEOF_PTR 4
206
- #elif defined(_64_)
207
- #define SIZEOF_PTR 8
208
- #endif
209
-
210
- #define PLATFORM_DATA_ALIGN SIZEOF_PTR
211
-
212
- #if !defined(SIZEOF_PTR)
213
- #error todo
214
- #endif
215
-
216
- #define SIZEOF_CHAR 1
217
- #define SIZEOF_UNSIGNED_CHAR 1
218
- #define SIZEOF_SHORT 2
219
- #define SIZEOF_UNSIGNED_SHORT 2
220
- #define SIZEOF_INT 4
221
- #define SIZEOF_UNSIGNED_INT 4
222
-
223
- #if defined(_32_)
224
- #define SIZEOF_LONG 4
225
- #define SIZEOF_UNSIGNED_LONG 4
226
- #elif defined(_64_)
227
- #if defined(_win_)
228
- #define SIZEOF_LONG 4
229
- #define SIZEOF_UNSIGNED_LONG 4
230
- #else
231
- #define SIZEOF_LONG 8
232
- #define SIZEOF_UNSIGNED_LONG 8
233
- #endif // _win_
234
- #endif // _32_
235
-
236
- #if !defined(SIZEOF_LONG)
237
- #error todo
238
- #endif
239
-
240
- #define SIZEOF_LONG_LONG 8
241
- #define SIZEOF_UNSIGNED_LONG_LONG 8
242
-
243
- #undef SIZEOF_SIZE_T // in case we include <Python.h> which defines it, too
244
- #define SIZEOF_SIZE_T SIZEOF_PTR
245
-
246
- // clang-format on
@@ -1,13 +0,0 @@
1
- #pragma once
2
-
3
- #include <util/generic/fwd.h>
4
-
5
- void SetProgramName(const char* argv0);
6
-
7
- #define SAVE_PROGRAM_NAME \
8
- do { \
9
- SetProgramName(argv[0]); \
10
- } while (0)
11
-
12
- /// guaranted return the same immutable instance of TString
13
- const TString& GetProgramName();
@@ -1,25 +0,0 @@
1
- #pragma once
2
-
3
- #include "defaults.h"
4
-
5
- #include <util/generic/flags.h>
6
-
7
- enum EProtectMemoryMode {
8
- PM_NONE = 0x00, // no access allowed
9
- PM_READ = 0x01, // read access allowed
10
- PM_WRITE = 0x02, // write access allowed
11
- PM_EXEC = 0x04 // execute access allowed
12
- };
13
-
14
- Y_DECLARE_FLAGS(EProtectMemory, EProtectMemoryMode)
15
- Y_DECLARE_OPERATORS_FOR_FLAGS(EProtectMemory)
16
-
17
- /**
18
- * Set protection mode on memory block
19
- * @param addr Block address to be protected
20
- * @param length Block size in bytes
21
- * @param mode A bitwise combination of @c EProtectMemoryMode flags
22
- * @note On Windows there is no write-only protection mode,
23
- * so PM_WRITE will be translated to (PM_READ | PM_WRITE) on Windows.
24
- **/
25
- void ProtectMemory(void* addr, const size_t length, const EProtectMemory mode);
@@ -1,26 +0,0 @@
1
- #pragma once
2
-
3
- #include "defaults.h"
4
- #include <util/generic/utility.h>
5
- #include <util/datetime/base.h>
6
-
7
- /// portable getrusage
8
-
9
- struct TRusage {
10
- // some fields may be zero if unsupported
11
-
12
- ui64 MaxRss = 0;
13
- ui64 MajorPageFaults = 0;
14
- TDuration Utime;
15
- TDuration Stime;
16
-
17
- void Fill();
18
-
19
- static size_t GetCurrentRSS();
20
-
21
- static TRusage Get() {
22
- TRusage r;
23
- r.Fill();
24
- return r;
25
- }
26
- };
@@ -1,78 +0,0 @@
1
- #pragma once
2
-
3
- #include "guard.h"
4
- #include "defaults.h"
5
-
6
- #include <util/generic/ptr.h>
7
-
8
- class TRWMutex {
9
- public:
10
- TRWMutex();
11
- ~TRWMutex();
12
-
13
- void AcquireRead() noexcept;
14
- bool TryAcquireRead() noexcept;
15
- void ReleaseRead() noexcept;
16
-
17
- void AcquireWrite() noexcept;
18
- bool TryAcquireWrite() noexcept;
19
- void ReleaseWrite() noexcept;
20
-
21
- void Release() noexcept;
22
-
23
- private:
24
- class TImpl;
25
- THolder<TImpl> Impl_;
26
- };
27
-
28
- template <class T>
29
- struct TReadGuardOps {
30
- static inline void Acquire(T* t) noexcept {
31
- t->AcquireRead();
32
- }
33
-
34
- static inline void Release(T* t) noexcept {
35
- t->ReleaseRead();
36
- }
37
- };
38
-
39
- template <class T>
40
- struct TTryReadGuardOps: public TReadGuardOps<T> {
41
- static inline bool TryAcquire(T* t) noexcept {
42
- return t->TryAcquireRead();
43
- }
44
- };
45
-
46
- template <class T>
47
- struct TWriteGuardOps {
48
- static inline void Acquire(T* t) noexcept {
49
- t->AcquireWrite();
50
- }
51
-
52
- static inline void Release(T* t) noexcept {
53
- t->ReleaseWrite();
54
- }
55
- };
56
-
57
- template <class T>
58
- struct TTryWriteGuardOps: public TWriteGuardOps<T> {
59
- static inline bool TryAcquire(T* t) noexcept {
60
- return t->TryAcquireWrite();
61
- }
62
- };
63
-
64
- template <class T>
65
- using TReadGuardBase = TGuard<T, TReadGuardOps<T>>;
66
- template <class T>
67
- using TTryReadGuardBase = TTryGuard<T, TTryReadGuardOps<T>>;
68
-
69
- template <class T>
70
- using TWriteGuardBase = TGuard<T, TWriteGuardOps<T>>;
71
- template <class T>
72
- using TTryWriteGuardBase = TTryGuard<T, TTryWriteGuardOps<T>>;
73
-
74
- using TReadGuard = TReadGuardBase<TRWMutex>;
75
- using TTryReadGuard = TTryReadGuardBase<TRWMutex>;
76
-
77
- using TWriteGuard = TWriteGuardBase<TRWMutex>;
78
- using TTryWriteGuard = TTryWriteGuardBase<TRWMutex>;
@@ -1,122 +0,0 @@
1
- #pragma once
2
-
3
- #include "defaults.h"
4
-
5
- extern "C" { // sanitizers API
6
-
7
- #if defined(_asan_enabled_)
8
- void __lsan_ignore_object(const void* p);
9
- #endif
10
-
11
- #if defined(_msan_enabled_)
12
- void __msan_unpoison(const volatile void* a, size_t size);
13
- void __msan_poison(const volatile void* a, size_t size);
14
- void __msan_check_mem_is_initialized(const volatile void* x, size_t size);
15
- #endif
16
-
17
- }; // sanitizers API
18
-
19
- namespace NSan {
20
- class TFiberContext {
21
- public:
22
- TFiberContext() noexcept;
23
- TFiberContext(const void* stack, size_t len, const char* contName) noexcept;
24
-
25
- ~TFiberContext() noexcept;
26
-
27
- void BeforeFinish() noexcept;
28
- void BeforeSwitch() noexcept;
29
- void AfterSwitch() noexcept;
30
-
31
- static void AfterStart() noexcept;
32
-
33
- private:
34
- void* Token_;
35
- const void* Stack_;
36
- size_t Len_;
37
-
38
- #if defined(_tsan_enabled_)
39
- void* const CurrentTSanFiberContext_;
40
- const bool WasFiberCreated_;
41
- #endif
42
- };
43
-
44
- // Returns plain if no sanitizer enabled or sanitized otherwise
45
- // Ment to be used in test code for constants (timeouts, etc)
46
- template <typename T>
47
- inline constexpr static T PlainOrUnderSanitizer(T plain, T sanitized) noexcept {
48
- #if defined(_tsan_enabled_) || defined(_msan_enabled_) || defined(_asan_enabled_)
49
- Y_UNUSED(plain);
50
- return sanitized;
51
- #else
52
- Y_UNUSED(sanitized);
53
- return plain;
54
- #endif
55
- }
56
-
57
- // Determines if asan present
58
- inline constexpr static bool ASanIsOn() noexcept {
59
- #if defined(_asan_enabled_)
60
- return true;
61
- #else
62
- return false;
63
- #endif
64
- }
65
-
66
- // Determines if tsan present
67
- inline constexpr static bool TSanIsOn() noexcept {
68
- #if defined(_tsan_enabled_)
69
- return true;
70
- #else
71
- return false;
72
- #endif
73
- }
74
-
75
- // Determines if msan present
76
- inline constexpr static bool MSanIsOn() noexcept {
77
- #if defined(_msan_enabled_)
78
- return true;
79
- #else
80
- return false;
81
- #endif
82
- }
83
-
84
- // Make memory region fully initialized (without changing its contents).
85
- inline static void Unpoison(const volatile void* a, size_t size) noexcept {
86
- #if defined(_msan_enabled_)
87
- __msan_unpoison(a, size);
88
- #else
89
- Y_UNUSED(a);
90
- Y_UNUSED(size);
91
- #endif
92
- }
93
-
94
- // Make memory region fully uninitialized (without changing its contents).
95
- // This is a legacy interface that does not update origin information. Use __msan_allocated_memory() instead.
96
- inline static void Poison(const volatile void* a, size_t size) noexcept {
97
- #if defined(_msan_enabled_)
98
- __msan_poison(a, size);
99
- #else
100
- Y_UNUSED(a);
101
- Y_UNUSED(size);
102
- #endif
103
- }
104
-
105
- // Checks that memory range is fully initialized, and reports an error if it is not.
106
- inline static void CheckMemIsInitialized(const volatile void* a, size_t size) noexcept {
107
- #if defined(_msan_enabled_)
108
- __msan_check_mem_is_initialized(a, size);
109
- #else
110
- Y_UNUSED(a);
111
- Y_UNUSED(size);
112
- #endif
113
- }
114
-
115
- inline static void MarkAsIntentionallyLeaked(const void* ptr) noexcept {
116
- #if defined(_asan_enabled_)
117
- __lsan_ignore_object(ptr);
118
- #else
119
- Y_UNUSED(ptr);
120
- #endif
121
- }
122
- }
@@ -1,41 +0,0 @@
1
- #pragma once
2
-
3
- #include "defaults.h"
4
-
5
- #include <util/generic/ptr.h>
6
-
7
- //named sempahore
8
- class TSemaphore {
9
- public:
10
- TSemaphore(const char* name, ui32 maxFreeCount);
11
- ~TSemaphore();
12
-
13
- //Increase the semaphore counter.
14
- void Release() noexcept;
15
-
16
- //Keep a thread held while the semaphore counter is equal 0.
17
- void Acquire() noexcept;
18
-
19
- //Try to enter the semaphore gate. A non-blocking variant of Acquire.
20
- //Returns 'true' if the semaphore counter decreased
21
- bool TryAcquire() noexcept;
22
-
23
- private:
24
- class TImpl;
25
- THolder<TImpl> Impl_;
26
- };
27
-
28
- //unnamed semaphore, faster, than previous
29
- class TFastSemaphore {
30
- public:
31
- TFastSemaphore(ui32 maxFreeCount);
32
- ~TFastSemaphore();
33
-
34
- void Release() noexcept;
35
- void Acquire() noexcept;
36
- bool TryAcquire() noexcept;
37
-
38
- private:
39
- class TImpl;
40
- THolder<TImpl> Impl_;
41
- };