catboost 1.25.1 → 1.27.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 (290) hide show
  1. package/DEPLOYMENT.md +22 -15
  2. package/README.md +43 -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/common.js +1 -1
  10. package/build_scripts/out/config.js +32 -18
  11. package/build_scripts/out/install.js +5 -3
  12. package/build_scripts/out/package_prepublish.js +1 -1
  13. package/build_scripts/out/packaging.js +1 -19
  14. package/build_scripts/out/run_tests.js +1 -1
  15. package/build_scripts/out/test.js +8 -3
  16. package/config.json +18 -11
  17. package/inc/catboost/libs/model_interface/c_api.h +367 -5
  18. package/lib/catboost.d.ts +65 -21
  19. package/package.json +4 -4
  20. package/src/api_helpers.cpp +100 -24
  21. package/src/api_helpers.h +8 -7
  22. package/src/api_module.cpp +1 -2
  23. package/src/model.cpp +483 -83
  24. package/src/model.h +24 -9
  25. package/inc/contrib/libs/cxxsupp/system_stl/include/stlfwd +0 -14
  26. package/inc/util/charset/recode_result.h +0 -9
  27. package/inc/util/charset/unicode_table.h +0 -123
  28. package/inc/util/charset/unidata.h +0 -421
  29. package/inc/util/charset/utf8.h +0 -384
  30. package/inc/util/charset/wide.h +0 -843
  31. package/inc/util/charset/wide_specific.h +0 -22
  32. package/inc/util/datetime/base.h +0 -669
  33. package/inc/util/datetime/constants.h +0 -7
  34. package/inc/util/datetime/cputimer.h +0 -124
  35. package/inc/util/datetime/parser.h +0 -292
  36. package/inc/util/datetime/systime.h +0 -47
  37. package/inc/util/datetime/uptime.h +0 -8
  38. package/inc/util/digest/city.h +0 -88
  39. package/inc/util/digest/fnv.h +0 -73
  40. package/inc/util/digest/multi.h +0 -14
  41. package/inc/util/digest/murmur.h +0 -57
  42. package/inc/util/digest/numeric.h +0 -86
  43. package/inc/util/digest/sequence.h +0 -48
  44. package/inc/util/draft/date.h +0 -129
  45. package/inc/util/draft/datetime.h +0 -184
  46. package/inc/util/draft/enum.h +0 -136
  47. package/inc/util/draft/holder_vector.h +0 -102
  48. package/inc/util/draft/ip.h +0 -131
  49. package/inc/util/draft/matrix.h +0 -108
  50. package/inc/util/draft/memory.h +0 -40
  51. package/inc/util/folder/dirent_win.h +0 -46
  52. package/inc/util/folder/dirut.h +0 -121
  53. package/inc/util/folder/filelist.h +0 -81
  54. package/inc/util/folder/fts.h +0 -108
  55. package/inc/util/folder/iterator.h +0 -109
  56. package/inc/util/folder/lstat_win.h +0 -20
  57. package/inc/util/folder/path.h +0 -225
  58. package/inc/util/folder/pathsplit.h +0 -113
  59. package/inc/util/folder/tempdir.h +0 -42
  60. package/inc/util/generic/adaptor.h +0 -134
  61. package/inc/util/generic/algorithm.h +0 -765
  62. package/inc/util/generic/array_ref.h +0 -282
  63. package/inc/util/generic/array_size.h +0 -24
  64. package/inc/util/generic/benchmark/vector_count_ctor/f.h +0 -9
  65. package/inc/util/generic/bitmap.h +0 -1115
  66. package/inc/util/generic/bitops.h +0 -459
  67. package/inc/util/generic/bt_exception.h +0 -24
  68. package/inc/util/generic/buffer.h +0 -232
  69. package/inc/util/generic/cast.h +0 -176
  70. package/inc/util/generic/deque.h +0 -24
  71. package/inc/util/generic/explicit_type.h +0 -42
  72. package/inc/util/generic/fastqueue.h +0 -55
  73. package/inc/util/generic/flags.h +0 -244
  74. package/inc/util/generic/function.h +0 -103
  75. package/inc/util/generic/fwd.h +0 -171
  76. package/inc/util/generic/guid.h +0 -61
  77. package/inc/util/generic/hash.h +0 -2032
  78. package/inc/util/generic/hash_primes.h +0 -140
  79. package/inc/util/generic/hash_set.h +0 -490
  80. package/inc/util/generic/hide_ptr.h +0 -3
  81. package/inc/util/generic/intrlist.h +0 -876
  82. package/inc/util/generic/is_in.h +0 -53
  83. package/inc/util/generic/iterator.h +0 -137
  84. package/inc/util/generic/iterator_range.h +0 -105
  85. package/inc/util/generic/lazy_value.h +0 -66
  86. package/inc/util/generic/list.h +0 -22
  87. package/inc/util/generic/map.h +0 -44
  88. package/inc/util/generic/mapfindptr.h +0 -60
  89. package/inc/util/generic/maybe.h +0 -713
  90. package/inc/util/generic/maybe_traits.h +0 -164
  91. package/inc/util/generic/mem_copy.h +0 -55
  92. package/inc/util/generic/noncopyable.h +0 -38
  93. package/inc/util/generic/object_counter.h +0 -53
  94. package/inc/util/generic/ptr.h +0 -1113
  95. package/inc/util/generic/queue.h +0 -57
  96. package/inc/util/generic/refcount.h +0 -162
  97. package/inc/util/generic/reserve.h +0 -11
  98. package/inc/util/generic/scope.h +0 -65
  99. package/inc/util/generic/serialized_enum.h +0 -406
  100. package/inc/util/generic/set.h +0 -42
  101. package/inc/util/generic/singleton.h +0 -136
  102. package/inc/util/generic/size_literals.h +0 -65
  103. package/inc/util/generic/stack.h +0 -18
  104. package/inc/util/generic/store_policy.h +0 -120
  105. package/inc/util/generic/strbase.h +0 -612
  106. package/inc/util/generic/strbuf.h +0 -552
  107. package/inc/util/generic/strfcpy.h +0 -17
  108. package/inc/util/generic/string.h +0 -1572
  109. package/inc/util/generic/string_hash.h +0 -21
  110. package/inc/util/generic/string_ut.h +0 -1175
  111. package/inc/util/generic/type_name.h +0 -34
  112. package/inc/util/generic/typelist.h +0 -114
  113. package/inc/util/generic/typetraits.h +0 -325
  114. package/inc/util/generic/utility.h +0 -132
  115. package/inc/util/generic/va_args.h +0 -400
  116. package/inc/util/generic/variant.h +0 -631
  117. package/inc/util/generic/variant_traits.h +0 -171
  118. package/inc/util/generic/vector.h +0 -119
  119. package/inc/util/generic/xrange.h +0 -258
  120. package/inc/util/generic/yexception.h +0 -212
  121. package/inc/util/generic/yexception_ut.h +0 -14
  122. package/inc/util/generic/ylimits.h +0 -92
  123. package/inc/util/generic/ymath.h +0 -206
  124. package/inc/util/memory/addstorage.h +0 -93
  125. package/inc/util/memory/alloc.h +0 -27
  126. package/inc/util/memory/blob.h +0 -296
  127. package/inc/util/memory/mmapalloc.h +0 -8
  128. package/inc/util/memory/pool.h +0 -432
  129. package/inc/util/memory/segmented_string_pool.h +0 -194
  130. package/inc/util/memory/segpool_alloc.h +0 -118
  131. package/inc/util/memory/smallobj.h +0 -141
  132. package/inc/util/memory/tempbuf.h +0 -111
  133. package/inc/util/network/address.h +0 -136
  134. package/inc/util/network/endpoint.h +0 -61
  135. package/inc/util/network/hostip.h +0 -16
  136. package/inc/util/network/init.h +0 -60
  137. package/inc/util/network/interface.h +0 -17
  138. package/inc/util/network/iovec.h +0 -65
  139. package/inc/util/network/ip.h +0 -116
  140. package/inc/util/network/nonblock.h +0 -8
  141. package/inc/util/network/pair.h +0 -9
  142. package/inc/util/network/poller.h +0 -58
  143. package/inc/util/network/pollerimpl.h +0 -707
  144. package/inc/util/network/sock.h +0 -608
  145. package/inc/util/network/socket.h +0 -421
  146. package/inc/util/random/common_ops.h +0 -130
  147. package/inc/util/random/easy.h +0 -47
  148. package/inc/util/random/entropy.h +0 -21
  149. package/inc/util/random/fast.h +0 -101
  150. package/inc/util/random/init_atfork.h +0 -3
  151. package/inc/util/random/lcg_engine.h +0 -66
  152. package/inc/util/random/mersenne.h +0 -46
  153. package/inc/util/random/mersenne32.h +0 -50
  154. package/inc/util/random/mersenne64.h +0 -50
  155. package/inc/util/random/normal.h +0 -38
  156. package/inc/util/random/random.h +0 -30
  157. package/inc/util/random/shuffle.h +0 -39
  158. package/inc/util/str_stl.h +0 -266
  159. package/inc/util/stream/aligned.h +0 -99
  160. package/inc/util/stream/buffer.h +0 -119
  161. package/inc/util/stream/buffered.h +0 -225
  162. package/inc/util/stream/debug.h +0 -53
  163. package/inc/util/stream/direct_io.h +0 -43
  164. package/inc/util/stream/file.h +0 -108
  165. package/inc/util/stream/format.h +0 -444
  166. package/inc/util/stream/fwd.h +0 -100
  167. package/inc/util/stream/hex.h +0 -8
  168. package/inc/util/stream/holder.h +0 -44
  169. package/inc/util/stream/input.h +0 -273
  170. package/inc/util/stream/labeled.h +0 -19
  171. package/inc/util/stream/length.h +0 -100
  172. package/inc/util/stream/mem.h +0 -255
  173. package/inc/util/stream/multi.h +0 -32
  174. package/inc/util/stream/null.h +0 -61
  175. package/inc/util/stream/output.h +0 -304
  176. package/inc/util/stream/pipe.h +0 -112
  177. package/inc/util/stream/printf.h +0 -25
  178. package/inc/util/stream/str.h +0 -207
  179. package/inc/util/stream/tee.h +0 -28
  180. package/inc/util/stream/tempbuf.h +0 -21
  181. package/inc/util/stream/tokenizer.h +0 -214
  182. package/inc/util/stream/trace.h +0 -60
  183. package/inc/util/stream/walk.h +0 -35
  184. package/inc/util/stream/zerocopy.h +0 -91
  185. package/inc/util/stream/zerocopy_output.h +0 -57
  186. package/inc/util/stream/zlib.h +0 -173
  187. package/inc/util/string/ascii.h +0 -236
  188. package/inc/util/string/builder.h +0 -39
  189. package/inc/util/string/cast.h +0 -347
  190. package/inc/util/string/cstriter.h +0 -14
  191. package/inc/util/string/escape.h +0 -70
  192. package/inc/util/string/hex.h +0 -59
  193. package/inc/util/string/join.h +0 -194
  194. package/inc/util/string/printf.h +0 -13
  195. package/inc/util/string/reverse.h +0 -16
  196. package/inc/util/string/split.h +0 -1080
  197. package/inc/util/string/strip.h +0 -257
  198. package/inc/util/string/strspn.h +0 -65
  199. package/inc/util/string/subst.h +0 -56
  200. package/inc/util/string/type.h +0 -50
  201. package/inc/util/string/util.h +0 -195
  202. package/inc/util/string/vector.h +0 -132
  203. package/inc/util/system/align.h +0 -50
  204. package/inc/util/system/atexit.h +0 -22
  205. package/inc/util/system/atomic.h +0 -51
  206. package/inc/util/system/atomic_gcc.h +0 -90
  207. package/inc/util/system/atomic_ops.h +0 -189
  208. package/inc/util/system/atomic_win.h +0 -114
  209. package/inc/util/system/backtrace.h +0 -39
  210. package/inc/util/system/byteorder.h +0 -186
  211. package/inc/util/system/compat.h +0 -84
  212. package/inc/util/system/compiler.h +0 -620
  213. package/inc/util/system/condvar.h +0 -71
  214. package/inc/util/system/context.h +0 -181
  215. package/inc/util/system/context_aarch64.h +0 -8
  216. package/inc/util/system/context_i686.h +0 -9
  217. package/inc/util/system/context_x86.h +0 -12
  218. package/inc/util/system/context_x86_64.h +0 -7
  219. package/inc/util/system/cpu_id.h +0 -159
  220. package/inc/util/system/daemon.h +0 -28
  221. package/inc/util/system/datetime.h +0 -98
  222. package/inc/util/system/defaults.h +0 -149
  223. package/inc/util/system/demangle.h +0 -5
  224. package/inc/util/system/demangle_impl.h +0 -23
  225. package/inc/util/system/direct_io.h +0 -71
  226. package/inc/util/system/dynlib.h +0 -119
  227. package/inc/util/system/env.h +0 -32
  228. package/inc/util/system/error.h +0 -95
  229. package/inc/util/system/event.h +0 -122
  230. package/inc/util/system/execpath.h +0 -17
  231. package/inc/util/system/fasttime.h +0 -6
  232. package/inc/util/system/fhandle.h +0 -27
  233. package/inc/util/system/file.h +0 -210
  234. package/inc/util/system/file_lock.h +0 -34
  235. package/inc/util/system/filemap.h +0 -383
  236. package/inc/util/system/flock.h +0 -35
  237. package/inc/util/system/fs.h +0 -156
  238. package/inc/util/system/fs_win.h +0 -29
  239. package/inc/util/system/fstat.h +0 -46
  240. package/inc/util/system/getpid.h +0 -12
  241. package/inc/util/system/guard.h +0 -179
  242. package/inc/util/system/hi_lo.h +0 -139
  243. package/inc/util/system/hostname.h +0 -10
  244. package/inc/util/system/hp_timer.h +0 -36
  245. package/inc/util/system/info.h +0 -12
  246. package/inc/util/system/interrupt_signals.h +0 -22
  247. package/inc/util/system/madvise.h +0 -30
  248. package/inc/util/system/maxlen.h +0 -32
  249. package/inc/util/system/mem_info.h +0 -18
  250. package/inc/util/system/mincore.h +0 -38
  251. package/inc/util/system/mktemp.h +0 -11
  252. package/inc/util/system/mlock.h +0 -43
  253. package/inc/util/system/mutex.h +0 -67
  254. package/inc/util/system/nice.h +0 -3
  255. package/inc/util/system/pipe.h +0 -90
  256. package/inc/util/system/platform.h +0 -246
  257. package/inc/util/system/progname.h +0 -13
  258. package/inc/util/system/protect.h +0 -25
  259. package/inc/util/system/rusage.h +0 -26
  260. package/inc/util/system/rwlock.h +0 -78
  261. package/inc/util/system/sanitizers.h +0 -122
  262. package/inc/util/system/sem.h +0 -41
  263. package/inc/util/system/shellcommand.h +0 -472
  264. package/inc/util/system/shmat.h +0 -32
  265. package/inc/util/system/sigset.h +0 -78
  266. package/inc/util/system/spin_wait.h +0 -10
  267. package/inc/util/system/spinlock.h +0 -121
  268. package/inc/util/system/src_location.h +0 -25
  269. package/inc/util/system/src_root.h +0 -68
  270. package/inc/util/system/sys_alloc.h +0 -43
  271. package/inc/util/system/sysstat.h +0 -52
  272. package/inc/util/system/tempfile.h +0 -34
  273. package/inc/util/system/thread.h +0 -167
  274. package/inc/util/system/tls.h +0 -307
  275. package/inc/util/system/types.h +0 -119
  276. package/inc/util/system/unaligned_mem.h +0 -67
  277. package/inc/util/system/user.h +0 -5
  278. package/inc/util/system/utime.h +0 -6
  279. package/inc/util/system/valgrind.h +0 -48
  280. package/inc/util/system/winint.h +0 -43
  281. package/inc/util/system/yassert.h +0 -121
  282. package/inc/util/system/yield.h +0 -4
  283. package/inc/util/thread/factory.h +0 -65
  284. package/inc/util/thread/fwd.h +0 -30
  285. package/inc/util/thread/lfqueue.h +0 -406
  286. package/inc/util/thread/lfstack.h +0 -188
  287. package/inc/util/thread/pool.h +0 -388
  288. package/inc/util/thread/singleton.h +0 -42
  289. package/inc/util/ysafeptr.h +0 -427
  290. package/inc/util/ysaveload.h +0 -700
@@ -1,119 +0,0 @@
1
- #pragma once
2
-
3
- // DO_NOT_STYLE
4
-
5
- #include "platform.h"
6
-
7
- #include <inttypes.h>
8
-
9
- typedef int8_t i8;
10
- typedef int16_t i16;
11
- typedef uint8_t ui8;
12
- typedef uint16_t ui16;
13
-
14
- typedef int yssize_t;
15
- #define PRIYSZT "d"
16
-
17
- #if defined(_darwin_) && defined(_32_)
18
- typedef unsigned long ui32;
19
- typedef long i32;
20
- #else
21
- typedef uint32_t ui32;
22
- typedef int32_t i32;
23
- #endif
24
-
25
- #if defined(_darwin_) && defined(_64_)
26
- typedef unsigned long ui64;
27
- typedef long i64;
28
- #else
29
- typedef uint64_t ui64;
30
- typedef int64_t i64;
31
- #endif
32
-
33
- #define LL(number) INT64_C(number)
34
- #define ULL(number) UINT64_C(number)
35
-
36
- // Macro for size_t and ptrdiff_t types
37
- #if defined(_32_)
38
- # if defined(_darwin_)
39
- # define PRISZT "lu"
40
- # undef PRIi32
41
- # define PRIi32 "li"
42
- # undef SCNi32
43
- # define SCNi32 "li"
44
- # undef PRId32
45
- # define PRId32 "li"
46
- # undef SCNd32
47
- # define SCNd32 "li"
48
- # undef PRIu32
49
- # define PRIu32 "lu"
50
- # undef SCNu32
51
- # define SCNu32 "lu"
52
- # undef PRIx32
53
- # define PRIx32 "lx"
54
- # undef SCNx32
55
- # define SCNx32 "lx"
56
- # elif !defined(_cygwin_)
57
- # define PRISZT PRIu32
58
- # else
59
- # define PRISZT "u"
60
- # endif
61
- # define SCNSZT SCNu32
62
- # define PRIPDT PRIi32
63
- # define SCNPDT SCNi32
64
- # define PRITMT PRIi32
65
- # define SCNTMT SCNi32
66
- #elif defined(_64_)
67
- # if defined(_darwin_)
68
- # define PRISZT "lu"
69
- # undef PRIu64
70
- # define PRIu64 PRISZT
71
- # undef PRIx64
72
- # define PRIx64 "lx"
73
- # undef PRIX64
74
- # define PRIX64 "lX"
75
- # undef PRId64
76
- # define PRId64 "ld"
77
- # undef PRIi64
78
- # define PRIi64 "li"
79
- # undef SCNi64
80
- # define SCNi64 "li"
81
- # undef SCNu64
82
- # define SCNu64 "lu"
83
- # undef SCNx64
84
- # define SCNx64 "lx"
85
- # else
86
- # define PRISZT PRIu64
87
- # endif
88
- # define SCNSZT SCNu64
89
- # define PRIPDT PRIi64
90
- # define SCNPDT SCNi64
91
- # define PRITMT PRIi64
92
- # define SCNTMT SCNi64
93
- #else
94
- # error "Unsupported platform"
95
- #endif
96
-
97
- // SUPERLONG
98
- #if !defined(DONT_USE_SUPERLONG) && !defined(SUPERLONG_MAX)
99
- #define SUPERLONG_MAX ~LL(0)
100
- typedef i64 SUPERLONG;
101
- #endif
102
-
103
- // UNICODE
104
- #ifdef __cplusplus
105
- // UCS-2, native byteorder
106
- typedef char16_t wchar16;
107
- // internal symbol type: UTF-16LE
108
- typedef wchar16 TChar;
109
- typedef char32_t wchar32;
110
- #endif
111
-
112
- #if defined(_MSC_VER)
113
- #include <basetsd.h>
114
- typedef SSIZE_T ssize_t;
115
- #define HAVE_SSIZE_T 1
116
- #include <wchar.h>
117
- #endif
118
-
119
- #include <sys/types.h>
@@ -1,67 +0,0 @@
1
- #pragma once
2
-
3
- #include "defaults.h"
4
- #include "yassert.h"
5
-
6
- #include <string.h>
7
- #include <type_traits>
8
-
9
- // The following code used to have smart tricks assuming that unaligned reads and writes are OK on x86. This assumption
10
- // is wrong because compiler may emit alignment-sensitive x86 instructions e.g. movaps. See IGNIETFERRO-735.
11
-
12
- template <class T>
13
- inline T ReadUnaligned(const void* from) noexcept {
14
- T ret;
15
- memcpy(&ret, from, sizeof(T));
16
- return ret;
17
- }
18
-
19
- // std::remove_reference_t for non-deduced context to prevent such code to blow below:
20
- // ui8 first = f(); ui8 second = g();
21
- // WriteUnaligned(to, first - second) (int will be deduced)
22
- template <class T>
23
- inline void WriteUnaligned(void* to, const std::remove_reference_t<T>& t) noexcept {
24
- memcpy(to, &t, sizeof(T));
25
- }
26
-
27
- template <class T, unsigned Align = sizeof(T)>
28
- class TUnalignedMemoryIterator {
29
- public:
30
- inline TUnalignedMemoryIterator(const void* buf, size_t len)
31
- : C_((const unsigned char*)buf)
32
- , E_(C_ + len)
33
- , L_(E_ - (len % Align))
34
- {
35
- Y_FAKE_READ(buf);
36
- }
37
-
38
- inline bool AtEnd() const noexcept {
39
- return C_ == L_;
40
- }
41
-
42
- inline T Cur() const noexcept {
43
- Y_ASSERT(C_ < L_ || sizeof(T) < Align);
44
- return ::ReadUnaligned<T>(C_);
45
- }
46
-
47
- inline T Next() noexcept {
48
- T ret(Cur());
49
-
50
- C_ += sizeof(T);
51
-
52
- return ret;
53
- }
54
-
55
- inline const unsigned char* Last() const noexcept {
56
- return C_;
57
- }
58
-
59
- inline size_t Left() const noexcept {
60
- return E_ - C_;
61
- }
62
-
63
- private:
64
- const unsigned char* C_;
65
- const unsigned char* E_;
66
- const unsigned char* L_;
67
- };
@@ -1,5 +0,0 @@
1
- #pragma once
2
-
3
- #include <util/generic/fwd.h>
4
-
5
- TString GetUsername();
@@ -1,6 +0,0 @@
1
- #pragma once
2
-
3
- #include "defaults.h"
4
-
5
- int TouchFile(const char* filePath);
6
- int SetModTime(const char* filePath, time_t modtime, time_t actime);
@@ -1,48 +0,0 @@
1
- #pragma once
2
-
3
- #if defined(WITH_VALGRIND) && defined(HAVE_VALGRIND)
4
- #include <valgrind/valgrind.h>
5
- #include <valgrind/memcheck.h>
6
-
7
- #if !defined(VALGRIND_CHECK_READABLE)
8
- #define VALGRIND_CHECK_READABLE(s, l) VALGRIND_CHECK_MEM_IS_DEFINED(s, l)
9
- #endif
10
-
11
- #if !defined(VALGRIND_MAKE_READABLE)
12
- #define VALGRIND_MAKE_READABLE(a, b) VALGRIND_MAKE_MEM_DEFINED(a, b)
13
- #endif
14
- #else
15
- #define RUNNING_ON_VALGRIND 0
16
- #define VALGRIND_CHECK_READABLE(s, l)
17
- #define VALGRIND_MAKE_READABLE(a, b) 0
18
- #define VALGRIND_STACK_REGISTER(start, end) 0
19
- #define VALGRIND_STACK_DEREGISTER(id)
20
- #define VALGRIND_DISCARD(v) ((void)v)
21
- static inline int VALGRIND_PRINTF(...) {
22
- return 0;
23
- }
24
- #define VALGRIND_DO_LEAK_CHECK
25
- #endif
26
-
27
- namespace NValgrind {
28
- inline constexpr static bool ValgrindIsOn() noexcept {
29
- #if defined(WITH_VALGRIND)
30
- return true;
31
- #else
32
- return false;
33
- #endif
34
- }
35
-
36
- // Returns valgrinded if running under Valgrind and plain otherwise
37
- // Ment to be used in test code for constants (timeouts, etc)
38
- template <typename T>
39
- inline constexpr static T PlainOrUnderValgrind(T plain, T valgrinded) noexcept {
40
- #if defined(WITH_VALGRIND)
41
- Y_UNUSED(plain);
42
- return valgrinded;
43
- #else
44
- Y_UNUSED(valgrinded);
45
- return plain;
46
- #endif
47
- }
48
- }
@@ -1,43 +0,0 @@
1
- #pragma once
2
-
3
- #include "platform.h"
4
-
5
- #if defined(_win_)
6
-
7
- #ifndef WIN32_LEAN_AND_MEAN
8
- #define WIN32_LEAN_AND_MEAN
9
- #endif
10
-
11
- #ifndef NOMINMAX
12
- #define NOMINMAX
13
- #endif
14
-
15
- #include <windows.h>
16
-
17
- #undef GetFreeSpace
18
- #undef LoadImage
19
- #undef GetMessage
20
- #undef SendMessage
21
- #undef DeleteFile
22
- #undef OPTIONAL
23
- #undef GetUserName
24
- #undef CreateMutex
25
- #undef GetObject
26
- #undef GetGeoInfo
27
- #undef GetClassName
28
- #undef LANG_LAO
29
- #undef GetKValue
30
- #undef StartDoc
31
- #undef UpdateResource
32
- #undef GetNameInfo
33
- #undef GetProp
34
- #undef SetProp
35
- #undef RemoveProp
36
-
37
- #undef IGNORE
38
- #undef ERROR
39
- #undef TRANSPARENT
40
-
41
- #undef CM_NONE
42
-
43
- #endif
@@ -1,121 +0,0 @@
1
- #pragma once
2
-
3
- #include "defaults.h"
4
- #include "src_root.h"
5
- #include "backtrace.h"
6
-
7
- #if defined(_MSC_VER)
8
- #include <new>
9
- #if defined(_DEBUG)
10
- #if defined(_CRTDBG_MAP_ALLOC)
11
- #include <cstdlib> /* definitions for malloc/calloc */
12
- #include <malloc.h> /* must be before their redefinitions as _*_dbg() */
13
- #endif
14
- #include <crtdbg.h>
15
- #else
16
- #endif
17
- #include <cassert>
18
- #elif defined(__GNUC__)
19
- #ifdef _sun_
20
- #include <alloca.h>
21
- #endif
22
- #include <cassert>
23
- #endif
24
-
25
- #if !defined(_MSC_VER)
26
-
27
- #if defined(__x86_64__) || defined(__i386__)
28
- #define __debugbreak ydebugbreak
29
- inline void ydebugbreak() {
30
- __asm__ volatile("int $3\n");
31
- }
32
- #else
33
- inline void __debugbreak() {
34
- assert(0);
35
- }
36
- #endif
37
-
38
- inline bool YaIsDebuggerPresent() {
39
- return false;
40
- }
41
-
42
- #else
43
- // __debugbreak is intrinsic in MSVC
44
-
45
- extern "C" {
46
- __declspec(dllimport) int __stdcall IsDebuggerPresent();
47
- }
48
-
49
- inline bool YaIsDebuggerPresent() {
50
- return IsDebuggerPresent() != 0;
51
- }
52
- #endif
53
-
54
- #undef Y_ASSERT
55
-
56
- #if !defined(NDEBUG) && !defined(__GCCXML__)
57
- #define Y_ASSERT(a) \
58
- do { \
59
- try { \
60
- if (Y_UNLIKELY(!(a))) { \
61
- if (YaIsDebuggerPresent()) \
62
- __debugbreak(); \
63
- else { \
64
- PrintBackTrace(); \
65
- assert(false && (a)); \
66
- } \
67
- } \
68
- } catch (...) { \
69
- if (YaIsDebuggerPresent()) \
70
- __debugbreak(); \
71
- else { \
72
- PrintBackTrace(); \
73
- assert(false && "Exception during assert"); \
74
- } \
75
- } \
76
- } while (false)
77
- #else
78
- #define Y_ASSERT(a) \
79
- do { \
80
- if (false) { \
81
- auto __xxx = static_cast<bool>(a); \
82
- Y_UNUSED(__xxx); \
83
- } \
84
- } while (false)
85
- #endif
86
-
87
- namespace NPrivate {
88
- /// method should not be used directly
89
- [[noreturn]] void Panic(const TStaticBuf& file, int line, const char* function, const char* expr, const char* format, ...) noexcept Y_PRINTF_FORMAT(5, 6);
90
- }
91
-
92
- /// Assert that does not depend on NDEBUG macro and outputs message like printf
93
- #define Y_VERIFY(expr, ...) \
94
- do { \
95
- if (Y_UNLIKELY(!(expr))) { \
96
- ::NPrivate::Panic(__SOURCE_FILE_IMPL__, __LINE__, __FUNCTION__, #expr, " " __VA_ARGS__); \
97
- } \
98
- } while (false)
99
-
100
- #define Y_FAIL(...) \
101
- do { \
102
- ::NPrivate::Panic(__SOURCE_FILE_IMPL__, __LINE__, __FUNCTION__, nullptr, " " __VA_ARGS__); \
103
- } while (false)
104
-
105
- #ifndef NDEBUG
106
- /// Assert that depend on NDEBUG macro and outputs message like printf
107
- #define Y_VERIFY_DEBUG(expr, ...) \
108
- do { \
109
- if (Y_UNLIKELY(!(expr))) { \
110
- ::NPrivate::Panic(__SOURCE_FILE_IMPL__, __LINE__, __FUNCTION__, #expr, " " __VA_ARGS__); \
111
- } \
112
- } while (false)
113
- #else
114
- #define Y_VERIFY_DEBUG(expr, ...) \
115
- do { \
116
- if (false) { \
117
- bool __xxx = static_cast<bool>(expr); \
118
- Y_UNUSED(__xxx); \
119
- } \
120
- } while (false)
121
- #endif
@@ -1,4 +0,0 @@
1
- #pragma once
2
-
3
- void SchedYield() noexcept;
4
- void ThreadYield() noexcept;
@@ -1,65 +0,0 @@
1
- #pragma once
2
-
3
- #include <util/generic/ptr.h>
4
- #include <functional>
5
-
6
- class IThreadFactory {
7
- public:
8
- class IThreadAble {
9
- public:
10
- inline IThreadAble() noexcept = default;
11
-
12
- virtual ~IThreadAble() = default;
13
-
14
- inline void Execute() {
15
- DoExecute();
16
- }
17
-
18
- private:
19
- virtual void DoExecute() = 0;
20
- };
21
-
22
- class IThread {
23
- friend class IThreadFactory;
24
-
25
- public:
26
- inline IThread() noexcept = default;
27
-
28
- virtual ~IThread() = default;
29
-
30
- inline void Join() noexcept {
31
- DoJoin();
32
- }
33
-
34
- private:
35
- inline void Run(IThreadAble* func) {
36
- DoRun(func);
37
- }
38
-
39
- private:
40
- // it's actually DoStart
41
- virtual void DoRun(IThreadAble* func) = 0;
42
- virtual void DoJoin() noexcept = 0;
43
- };
44
-
45
- inline IThreadFactory() noexcept = default;
46
-
47
- virtual ~IThreadFactory() = default;
48
-
49
- // XXX: rename to Start
50
- inline THolder<IThread> Run(IThreadAble* func) {
51
- THolder<IThread> ret(DoCreate());
52
-
53
- ret->Run(func);
54
-
55
- return ret;
56
- }
57
-
58
- THolder<IThread> Run(std::function<void()> func);
59
-
60
- private:
61
- virtual IThread* DoCreate() = 0;
62
- };
63
-
64
- IThreadFactory* SystemThreadFactory();
65
- void SetSystemThreadFactory(IThreadFactory* pool);
@@ -1,30 +0,0 @@
1
- #pragma once
2
-
3
- #include <stlfwd>
4
-
5
- struct TDefaultLFCounter;
6
-
7
- template <class T, class TCounter = TDefaultLFCounter>
8
- class TLockFreeQueue;
9
-
10
- template <class T, class TCounter = TDefaultLFCounter>
11
- class TAutoLockFreeQueue;
12
-
13
- template <class T>
14
- class TLockFreeStack;
15
-
16
- class IThreadFactory;
17
-
18
- struct IObjectInQueue;
19
- class TThreadFactoryHolder;
20
-
21
- using TThreadFunction = std::function<void()>;
22
-
23
- class IThreadPool;
24
- class TFakeThreadPool;
25
- class TThreadPool;
26
- class TAdaptiveThreadPool;
27
- class TSimpleThreadPool;
28
-
29
- template <class TQueueType, class TSlave>
30
- class TThreadPoolBinder;