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,179 +0,0 @@
1
- #pragma once
2
-
3
- #include <util/generic/noncopyable.h>
4
-
5
- template <class T>
6
- struct TCommonLockOps {
7
- static inline void Acquire(T* t) noexcept {
8
- t->Acquire();
9
- }
10
-
11
- static inline void Release(T* t) noexcept {
12
- t->Release();
13
- }
14
- };
15
-
16
- template <class T>
17
- struct TTryLockOps: public TCommonLockOps<T> {
18
- static inline bool TryAcquire(T* t) noexcept {
19
- return t->TryAcquire();
20
- }
21
- };
22
-
23
- //must be used with great care
24
- template <class TOps>
25
- struct TInverseLockOps: public TOps {
26
- template <class T>
27
- static inline void Acquire(T* t) noexcept {
28
- TOps::Release(t);
29
- }
30
-
31
- template <class T>
32
- static inline void Release(T* t) noexcept {
33
- TOps::Acquire(t);
34
- }
35
- };
36
-
37
- template <class T, class TOps = TCommonLockOps<T>>
38
- class TGuard: public TNonCopyable {
39
- public:
40
- inline TGuard(const T& t) noexcept {
41
- Init(&t);
42
- }
43
-
44
- inline TGuard(const T* t) noexcept {
45
- Init(t);
46
- }
47
-
48
- inline TGuard(TGuard&& g) noexcept
49
- : T_(g.T_)
50
- {
51
- g.T_ = nullptr;
52
- }
53
-
54
- inline ~TGuard() {
55
- Release();
56
- }
57
-
58
- inline void Release() noexcept {
59
- if (WasAcquired()) {
60
- TOps::Release(T_);
61
- T_ = nullptr;
62
- }
63
- }
64
-
65
- explicit inline operator bool() const noexcept {
66
- return WasAcquired();
67
- }
68
-
69
- inline bool WasAcquired() const noexcept {
70
- return T_ != nullptr;
71
- }
72
-
73
- inline T* GetMutex() const noexcept {
74
- return T_;
75
- }
76
-
77
- private:
78
- inline void Init(const T* t) noexcept {
79
- T_ = const_cast<T*>(t);
80
- TOps::Acquire(T_);
81
- }
82
-
83
- private:
84
- T* T_;
85
- };
86
-
87
- /*
88
- * {
89
- * auto guard = Guard(Lock_);
90
- * some code under guard
91
- * }
92
- */
93
- template <class T>
94
- static inline TGuard<T> Guard(const T& t) {
95
- return {&t};
96
- }
97
-
98
- /*
99
- * with_lock (Lock_) {
100
- * some code under guard
101
- * }
102
- */
103
- #define with_lock(X) \
104
- if (auto Y_GENERATE_UNIQUE_ID(__guard) = ::Guard(X)) { \
105
- goto Y_CAT(GUARD_LABEL, __LINE__); \
106
- } else \
107
- Y_CAT(GUARD_LABEL, __LINE__) \
108
- :
109
-
110
- /*
111
- * auto guard = Guard(Lock_);
112
- * ... some code under lock
113
- * {
114
- * auto unguard = Unguard(guard);
115
- * ... some code not under lock
116
- * }
117
- * ... some code under lock
118
- */
119
- template <class T, class TOps = TCommonLockOps<T>>
120
- using TInverseGuard = TGuard<T, TInverseLockOps<TOps>>;
121
-
122
- template <class T, class TOps>
123
- static inline TInverseGuard<T, TOps> Unguard(const TGuard<T, TOps>& guard) {
124
- return {guard.GetMutex()};
125
- }
126
-
127
- template <class T>
128
- static inline TInverseGuard<T> Unguard(const T& mutex) {
129
- return {&mutex};
130
- }
131
-
132
- template <class T, class TOps = TTryLockOps<T>>
133
- class TTryGuard: public TNonCopyable {
134
- public:
135
- inline TTryGuard(const T& t) noexcept {
136
- Init(&t);
137
- }
138
-
139
- inline TTryGuard(const T* t) noexcept {
140
- Init(t);
141
- }
142
-
143
- inline TTryGuard(TTryGuard&& g) noexcept
144
- : T_(g.T_)
145
- {
146
- g.T_ = nullptr;
147
- }
148
-
149
- inline ~TTryGuard() {
150
- Release();
151
- }
152
-
153
- inline void Release() noexcept {
154
- if (WasAcquired()) {
155
- TOps::Release(T_);
156
- T_ = nullptr;
157
- }
158
- }
159
-
160
- inline bool WasAcquired() const noexcept {
161
- return T_ != nullptr;
162
- }
163
-
164
- explicit inline operator bool() const noexcept {
165
- return WasAcquired();
166
- }
167
-
168
- private:
169
- inline void Init(const T* t) noexcept {
170
- T_ = nullptr;
171
- T* tMutable = const_cast<T*>(t);
172
- if (TOps::TryAcquire(tMutable)) {
173
- T_ = tMutable;
174
- }
175
- }
176
-
177
- private:
178
- T* T_;
179
- };
@@ -1,139 +0,0 @@
1
- #pragma once
2
-
3
- #include "unaligned_mem.h"
4
-
5
- #ifndef _little_endian_
6
- #error "Not implemented"
7
- #endif
8
-
9
- namespace NHiLoPrivate {
10
- template <class TRepr>
11
- class TConstIntRef {
12
- public:
13
- explicit TConstIntRef(const char* ptr)
14
- : Ptr(ptr)
15
- {
16
- }
17
-
18
- TRepr Get() const { return ReadUnaligned<TRepr>(Ptr); }
19
- operator TRepr() const { return Get(); }
20
-
21
- const char* GetPtr() const { return Ptr; }
22
-
23
- protected:
24
- const char* Ptr;
25
- };
26
-
27
- template <class TRepr>
28
- class TIntRef : public TConstIntRef<TRepr> {
29
- public:
30
- explicit TIntRef(char* ptr)
31
- : TConstIntRef<TRepr>(ptr)
32
- {
33
- }
34
-
35
- TIntRef& operator=(TRepr value) {
36
- WriteUnaligned<TRepr>(GetPtr(), value);
37
- return *this;
38
- }
39
-
40
- char* GetPtr() const { return const_cast<char *>(this->Ptr); }
41
- };
42
-
43
- template <class T>
44
- struct TReferenceType {
45
- using TType = T;
46
- };
47
-
48
- template <class T>
49
- struct TReferenceType<TConstIntRef<T>> {
50
- using TType = T;
51
- };
52
-
53
- template <class T>
54
- struct TReferenceType<TIntRef<T>> {
55
- using TType = T;
56
- };
57
-
58
- template <class TRepr>
59
- auto MakeIntRef(const char* ptr) {
60
- return TConstIntRef<TRepr>(ptr);
61
- }
62
-
63
- template <class TRepr>
64
- auto MakeIntRef(char* ptr) {
65
- return TIntRef<TRepr>(ptr);
66
- }
67
-
68
- template <class T>
69
- const char* CharPtrOf(const T& value) {
70
- return reinterpret_cast<const char *>(&value);
71
- }
72
-
73
- template <class T>
74
- char* CharPtrOf(T& value) {
75
- return reinterpret_cast<char *>(&value);
76
- }
77
-
78
- template <class T>
79
- const char* CharPtrOf(TConstIntRef<T> value) {
80
- return value.GetPtr();
81
- }
82
-
83
- template <class T>
84
- char* CharPtrOf(TIntRef<T> value) {
85
- return value.GetPtr();
86
- }
87
-
88
- template <bool IsLow, class TRepr, class T>
89
- auto MakeIntRef(T&& value) {
90
- using TRef = typename TReferenceType<typename std::decay<T>::type>::TType;
91
- static_assert(
92
- std::is_scalar<TRef>::value,
93
- "Hi* and Lo* functions can be applied only to scalar values");
94
- static_assert(sizeof(TRef) >= sizeof(TRepr), "Requested bit range is not within provided value");
95
- constexpr size_t offset = IsLow ? 0 : sizeof(TRef) - sizeof(TRepr);
96
-
97
- return MakeIntRef<TRepr>(CharPtrOf(std::forward<T>(value)) + offset);
98
- }
99
- }
100
-
101
- /**
102
- * Return manipulator object that allows to get and set lower or higher bits of the value.
103
- *
104
- * @param value Must be a scalar value of sufficient size or a manipulator object obtained by
105
- * calling any of the other Hi/Lo functions.
106
- *
107
- * @{
108
- */
109
- template <class T>
110
- auto Lo32(T&& value) {
111
- return NHiLoPrivate::MakeIntRef<true, ui32>(std::forward<T>(value));
112
- }
113
-
114
- template <class T>
115
- auto Hi32(T&& value) {
116
- return NHiLoPrivate::MakeIntRef<false, ui32>(std::forward<T>(value));
117
- }
118
-
119
- template <class T>
120
- auto Lo16(T&& value) {
121
- return NHiLoPrivate::MakeIntRef<true, ui16>(std::forward<T>(value));
122
- }
123
-
124
- template <class T>
125
- auto Hi16(T&& value) {
126
- return NHiLoPrivate::MakeIntRef<false, ui16>(std::forward<T>(value));
127
- }
128
-
129
- template <class T>
130
- auto Lo8(T&& value) {
131
- return NHiLoPrivate::MakeIntRef<true, ui8>(std::forward<T>(value));
132
- }
133
-
134
- template <class T>
135
- auto Hi8(T&& value) {
136
- return NHiLoPrivate::MakeIntRef<false, ui8>(std::forward<T>(value));
137
- }
138
-
139
- /** @} */
@@ -1,10 +0,0 @@
1
- #pragma once
2
-
3
- #include <util/generic/fwd.h>
4
-
5
- const char* GetHostName();
6
- const TString& HostName();
7
-
8
- const char* GetFQDNHostName();
9
- const TString& FQDNHostName();
10
- bool IsFQDN(const TString& name);
@@ -1,36 +0,0 @@
1
- #pragma once
2
-
3
- #include "defaults.h"
4
-
5
- namespace NHPTimer {
6
- using STime = i64;
7
- // May delay for ~50ms to compute frequency
8
- double GetSeconds(const STime& a) noexcept;
9
- // Returns the current time
10
- void GetTime(STime* pTime) noexcept;
11
- // Returns the time passed since *pTime, and writes the current time into *pTime.
12
- double GetTimePassed(STime* pTime) noexcept;
13
- // Get TSC frequency, may delay for ~50ms to compute frequency
14
- double GetClockRate() noexcept;
15
- // same as GetClockRate, but in integer
16
- ui64 GetCyclesPerSecond() noexcept;
17
- }
18
-
19
- struct THPTimer {
20
- THPTimer() noexcept {
21
- Reset();
22
- }
23
- void Reset() noexcept {
24
- NHPTimer::GetTime(&Start);
25
- }
26
- double Passed() const noexcept {
27
- NHPTimer::STime tmp = Start;
28
- return NHPTimer::GetTimePassed(&tmp);
29
- }
30
- double PassedReset() noexcept {
31
- return NHPTimer::GetTimePassed(&Start);
32
- }
33
-
34
- private:
35
- NHPTimer::STime Start;
36
- };
@@ -1,12 +0,0 @@
1
- #pragma once
2
-
3
- #include "defaults.h"
4
-
5
- namespace NSystemInfo {
6
- size_t NumberOfCpus();
7
- size_t CachedNumberOfCpus();
8
- size_t LoadAverage(double* la, size_t len);
9
- size_t GetPageSize() noexcept;
10
- size_t TotalMemorySize();
11
- size_t MaxOpenFiles();
12
- }
@@ -1,22 +0,0 @@
1
- #pragma once
2
-
3
- #include "platform.h"
4
-
5
- #include <csignal>
6
-
7
- #ifdef _win_
8
- #ifndef SIGHUP
9
- #define SIGHUP 1 /* Hangup (POSIX). */
10
- #endif
11
- #endif
12
-
13
- /**
14
- * Set handler for interrupt signals.
15
- *
16
- * All OSes: SIGINT, SIGTERM (defined by C++ standard)
17
- * UNIX variants: Also SIGHUP
18
- * Windows: CTRL_C_EVENT handled as SIGINT, CTRL_BREAK_EVENT as SIGTERM, CTRL_CLOSE_EVENT as SIGHUP
19
- *
20
- * \param handler Signal handler to use. Pass nullptr to clear currently set handler.
21
- */
22
- void SetInterruptSignalsHandler(void (*handler)(int signum));
@@ -1,30 +0,0 @@
1
- #pragma once
2
-
3
- #include "defaults.h"
4
-
5
- #include <util/generic/array_ref.h>
6
-
7
- /// see linux madvise(MADV_SEQUENTIAL)
8
- void MadviseSequentialAccess(const void* begin, size_t size);
9
- void MadviseSequentialAccess(TArrayRef<const char> data);
10
- void MadviseSequentialAccess(TArrayRef<const ui8> data);
11
-
12
- /// see linux madvise(MADV_RANDOM)
13
- void MadviseRandomAccess(const void* begin, size_t size);
14
- void MadviseRandomAccess(TArrayRef<const char> data);
15
- void MadviseRandomAccess(TArrayRef<const ui8> data);
16
-
17
- /// see linux madvise(MADV_DONTNEED)
18
- void MadviseEvict(const void* begin, size_t size);
19
- void MadviseEvict(TArrayRef<const char> data);
20
- void MadviseEvict(TArrayRef<const ui8> data);
21
-
22
- /// see linux madvise(MADV_DONTDUMP)
23
- void MadviseExcludeFromCoreDump(const void* begin, size_t size);
24
- void MadviseExcludeFromCoreDump(TArrayRef<const char> data);
25
- void MadviseExcludeFromCoreDump(TArrayRef<const ui8> data);
26
-
27
- /// see linux madvise(MADV_DODUMP)
28
- void MadviseIncludeIntoCoreDump(const void* begin, size_t size);
29
- void MadviseIncludeIntoCoreDump(TArrayRef<const char> data);
30
- void MadviseIncludeIntoCoreDump(TArrayRef<const ui8> data);
@@ -1,32 +0,0 @@
1
- #pragma once
2
-
3
- #include <cstdlib>
4
-
5
- // http://support.microsoft.com/kb/208427
6
- #ifndef URL_MAXLEN
7
- #define URL_MAXLEN 2083
8
- #endif
9
-
10
- #define HOST_MAX 260
11
- #ifndef URL_MAX
12
- #define URL_MAX 1024
13
- #endif
14
- #define FULLURL_MAX (URL_MAX + HOST_MAX)
15
-
16
- #define LINKTEXT_MAX 1024
17
-
18
- #ifdef WIN32
19
- #ifndef PATH_MAX
20
- #define PATH_MAX _MAX_PATH
21
- #endif
22
- #else
23
-
24
- #ifndef MAX_PATH
25
- #define MAX_PATH PATH_MAX
26
- #endif
27
-
28
- #ifndef _MAX_PATH
29
- #define _MAX_PATH PATH_MAX
30
- #endif
31
-
32
- #endif
@@ -1,18 +0,0 @@
1
- #pragma once
2
-
3
- #include "compat.h"
4
-
5
- namespace NMemInfo {
6
- struct TMemInfo {
7
- ui64 RSS; // current RAM size of the process
8
- ui64 VMS; // current VM size of the process
9
-
10
- TMemInfo()
11
- : RSS()
12
- , VMS()
13
- {
14
- }
15
- };
16
-
17
- TMemInfo GetMemInfo(pid_t = 0);
18
- }
@@ -1,38 +0,0 @@
1
- #pragma once
2
-
3
- #include "defaults.h"
4
- /**
5
- * Fills a vector that indicates whether pages of the calling process's virtual memory are resident in RAM. Each byte
6
- * in the vector contains the status of a single page. The page size can be obtained via the NSystemInfo::GetPageSize()
7
- * function. Use the IsPageInCore function to interpret the page status byte.
8
- *
9
- * Can be overly pessimistic:
10
- * - Assumes nothing is in RAM on platforms other than Linux
11
- * - Recent Linux kernels (4.21 and some backports) may return zeroes if the process doesn't have writing permissions
12
- * for the given file. See CVE-2019-5489.
13
- *
14
- * @param[in] addr starting address of the memory range to be examined
15
- * @param[in] len length (bytes) of the memory range to be examined
16
- * @param[out] vec vector of bytes to store statuses of memory pages
17
- * @param[in] vecLen length (bytes) of the vec, should be large enough to hold the requested pages count
18
- * @throws yexception if there was a system error or if the vecLen is too small
19
- *
20
- * @note this is only a snapshot, results may be stale by the time they're used
21
- * @see man 2 mincore
22
- */
23
- void InCoreMemory(const void* addr, size_t len, unsigned char* vec, size_t vecLen);
24
-
25
- /**
26
- * Takes as an argument an element of the vector previously filled by InCoreMemory.
27
- *
28
- * @param[in] byte corresponding to the status of a single page
29
- *
30
- * @returns true if this page was resident in memory at the time out the InCoreMemory execution
31
- */
32
- inline bool IsPageInCore(unsigned char s) {
33
- /* From mincore(2): On return, the least significant bit of each byte will be set if the corresponding page is
34
- * currently resident in memory, and be clear otherwise. (The settings of the other bits in each byte are
35
- * undefined; these bits are reserved for possible later use.)
36
- */
37
- return s & 1;
38
- }
@@ -1,11 +0,0 @@
1
- #pragma once
2
-
3
- #include <util/generic/fwd.h>
4
-
5
- /*
6
- * Create temp file name in the specified directory. If there is no file with this name, it will be created.
7
- * Note, that the function is not race-free, the file is guaranteed to exist at the time the function returns, but not at the time the returned name is first used.
8
- * If wrkDir is NULL or empty, GetSystemTempDir is used.
9
- * throw exception on error
10
- */
11
- TString MakeTempName(const char* wrkDir = nullptr, const char* prefix = "yandex");
@@ -1,43 +0,0 @@
1
- #pragma once
2
-
3
- #include "defaults.h"
4
-
5
- #include <util/generic/flags.h>
6
-
7
- //on some systems (not win, freebd, linux, but darwin (Mac OS X)
8
- //multiple mlock calls on the same address range
9
- //require the corresponding number of munlock calls to actually unlock the pages
10
-
11
- //on some systems you must have privilege and resource limit
12
-
13
- void LockMemory(const void* addr, size_t len);
14
- void UnlockMemory(const void* addr, size_t len);
15
-
16
- enum ELockAllMemoryFlag {
17
- /** Lock all pages which are currently mapped into the address space of the process. */
18
- LockCurrentMemory = 1,
19
-
20
- /** Lock all pages which will become mapped into the address space of the process in the future. */
21
- LockFutureMemory = 2,
22
-
23
- /** Since Linux 4.4, with LockCurrentMemory or LockFutureMemory or both, lock only pages that are or once they are present in memory. */
24
- LockMemoryOnFault = 4,
25
- };
26
- Y_DECLARE_FLAGS(ELockAllMemoryFlags, ELockAllMemoryFlag)
27
- Y_DECLARE_OPERATORS_FOR_FLAGS(ELockAllMemoryFlags)
28
-
29
- /**
30
- * Performs provided locking operation.
31
- *
32
- * Does nothing on windows.
33
- *
34
- * \param flags Locking operation to perform.
35
- */
36
- void LockAllMemory(ELockAllMemoryFlags flags);
37
-
38
- /**
39
- * Unlocks whatever was locked with a previous call to `LockAllMemory`.
40
- *
41
- * Does nothing on windows.
42
- */
43
- void UnlockAllMemory();
@@ -1,67 +0,0 @@
1
- #pragma once
2
-
3
- #include "guard.h"
4
- #include "defaults.h"
5
-
6
- #include <util/generic/ptr.h>
7
- #include <util/generic/noncopyable.h>
8
-
9
- class TFakeMutex: public TNonCopyable {
10
- public:
11
- inline void Acquire() noexcept {
12
- }
13
-
14
- inline bool TryAcquire() noexcept {
15
- return true;
16
- }
17
-
18
- inline void Release() noexcept {
19
- }
20
-
21
- inline void lock() noexcept {
22
- Acquire();
23
- }
24
-
25
- inline bool try_lock() noexcept {
26
- return TryAcquire();
27
- }
28
-
29
- inline void unlock() noexcept {
30
- Release();
31
- }
32
-
33
- ~TFakeMutex() = default;
34
- };
35
-
36
- class TSysMutex {
37
- public:
38
- TSysMutex();
39
- TSysMutex(TSysMutex&&);
40
- ~TSysMutex();
41
-
42
- void Acquire() noexcept;
43
- bool TryAcquire() noexcept;
44
- void Release() noexcept;
45
-
46
- inline void lock() noexcept {
47
- Acquire();
48
- }
49
-
50
- inline bool try_lock() noexcept {
51
- return TryAcquire();
52
- }
53
-
54
- inline void unlock() noexcept {
55
- Release();
56
- }
57
-
58
- //return opaque pointer to real handler
59
- void* Handle() const noexcept;
60
-
61
- private:
62
- class TImpl;
63
- THolder<TImpl> Impl_;
64
- };
65
-
66
- class TMutex: public TSysMutex {
67
- };
@@ -1,3 +0,0 @@
1
- #pragma once
2
-
3
- bool Nice(int prioDelta);