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.
- package/DEPLOYMENT.md +22 -15
- package/README.md +37 -27
- package/binding.gyp +5 -7
- package/build_scripts/bootstrap.js +2 -1
- package/build_scripts/out/build.js +46 -68
- package/build_scripts/out/build_model.js +1 -1
- package/build_scripts/out/{build_ya.js → build_native.js} +1 -1
- package/build_scripts/out/ci.js +5 -5
- package/build_scripts/out/config.js +32 -18
- package/build_scripts/out/install.js +5 -3
- package/build_scripts/out/package_prepublish.js +1 -1
- package/build_scripts/out/packaging.js +1 -19
- package/build_scripts/out/run_tests.js +1 -1
- package/build_scripts/out/test.js +8 -3
- package/config.json +18 -11
- package/inc/catboost/libs/model_interface/c_api.h +349 -3
- package/lib/catboost.d.ts +65 -21
- package/package.json +4 -4
- package/src/api_helpers.cpp +100 -24
- package/src/api_helpers.h +8 -7
- package/src/api_module.cpp +1 -2
- package/src/model.cpp +483 -83
- package/src/model.h +24 -9
- package/inc/contrib/libs/cxxsupp/system_stl/include/stlfwd +0 -14
- package/inc/util/charset/recode_result.h +0 -9
- package/inc/util/charset/unicode_table.h +0 -123
- package/inc/util/charset/unidata.h +0 -421
- package/inc/util/charset/utf8.h +0 -384
- package/inc/util/charset/wide.h +0 -843
- package/inc/util/charset/wide_specific.h +0 -22
- package/inc/util/datetime/base.h +0 -669
- package/inc/util/datetime/constants.h +0 -7
- package/inc/util/datetime/cputimer.h +0 -124
- package/inc/util/datetime/parser.h +0 -292
- package/inc/util/datetime/systime.h +0 -47
- package/inc/util/datetime/uptime.h +0 -8
- package/inc/util/digest/city.h +0 -88
- package/inc/util/digest/fnv.h +0 -73
- package/inc/util/digest/multi.h +0 -14
- package/inc/util/digest/murmur.h +0 -57
- package/inc/util/digest/numeric.h +0 -86
- package/inc/util/digest/sequence.h +0 -48
- package/inc/util/draft/date.h +0 -129
- package/inc/util/draft/datetime.h +0 -184
- package/inc/util/draft/enum.h +0 -136
- package/inc/util/draft/holder_vector.h +0 -102
- package/inc/util/draft/ip.h +0 -131
- package/inc/util/draft/matrix.h +0 -108
- package/inc/util/draft/memory.h +0 -40
- package/inc/util/folder/dirent_win.h +0 -46
- package/inc/util/folder/dirut.h +0 -121
- package/inc/util/folder/filelist.h +0 -81
- package/inc/util/folder/fts.h +0 -108
- package/inc/util/folder/iterator.h +0 -109
- package/inc/util/folder/lstat_win.h +0 -20
- package/inc/util/folder/path.h +0 -225
- package/inc/util/folder/pathsplit.h +0 -113
- package/inc/util/folder/tempdir.h +0 -42
- package/inc/util/generic/adaptor.h +0 -134
- package/inc/util/generic/algorithm.h +0 -765
- package/inc/util/generic/array_ref.h +0 -282
- package/inc/util/generic/array_size.h +0 -24
- package/inc/util/generic/benchmark/vector_count_ctor/f.h +0 -9
- package/inc/util/generic/bitmap.h +0 -1115
- package/inc/util/generic/bitops.h +0 -459
- package/inc/util/generic/bt_exception.h +0 -24
- package/inc/util/generic/buffer.h +0 -232
- package/inc/util/generic/cast.h +0 -176
- package/inc/util/generic/deque.h +0 -24
- package/inc/util/generic/explicit_type.h +0 -42
- package/inc/util/generic/fastqueue.h +0 -55
- package/inc/util/generic/flags.h +0 -244
- package/inc/util/generic/function.h +0 -103
- package/inc/util/generic/fwd.h +0 -171
- package/inc/util/generic/guid.h +0 -61
- package/inc/util/generic/hash.h +0 -2032
- package/inc/util/generic/hash_primes.h +0 -140
- package/inc/util/generic/hash_set.h +0 -490
- package/inc/util/generic/hide_ptr.h +0 -3
- package/inc/util/generic/intrlist.h +0 -876
- package/inc/util/generic/is_in.h +0 -53
- package/inc/util/generic/iterator.h +0 -137
- package/inc/util/generic/iterator_range.h +0 -105
- package/inc/util/generic/lazy_value.h +0 -66
- package/inc/util/generic/list.h +0 -22
- package/inc/util/generic/map.h +0 -44
- package/inc/util/generic/mapfindptr.h +0 -60
- package/inc/util/generic/maybe.h +0 -713
- package/inc/util/generic/maybe_traits.h +0 -164
- package/inc/util/generic/mem_copy.h +0 -55
- package/inc/util/generic/noncopyable.h +0 -38
- package/inc/util/generic/object_counter.h +0 -53
- package/inc/util/generic/ptr.h +0 -1113
- package/inc/util/generic/queue.h +0 -57
- package/inc/util/generic/refcount.h +0 -162
- package/inc/util/generic/reserve.h +0 -11
- package/inc/util/generic/scope.h +0 -65
- package/inc/util/generic/serialized_enum.h +0 -406
- package/inc/util/generic/set.h +0 -42
- package/inc/util/generic/singleton.h +0 -136
- package/inc/util/generic/size_literals.h +0 -65
- package/inc/util/generic/stack.h +0 -18
- package/inc/util/generic/store_policy.h +0 -120
- package/inc/util/generic/strbase.h +0 -612
- package/inc/util/generic/strbuf.h +0 -552
- package/inc/util/generic/strfcpy.h +0 -17
- package/inc/util/generic/string.h +0 -1572
- package/inc/util/generic/string_hash.h +0 -21
- package/inc/util/generic/string_ut.h +0 -1175
- package/inc/util/generic/type_name.h +0 -34
- package/inc/util/generic/typelist.h +0 -114
- package/inc/util/generic/typetraits.h +0 -325
- package/inc/util/generic/utility.h +0 -132
- package/inc/util/generic/va_args.h +0 -400
- package/inc/util/generic/variant.h +0 -631
- package/inc/util/generic/variant_traits.h +0 -171
- package/inc/util/generic/vector.h +0 -119
- package/inc/util/generic/xrange.h +0 -258
- package/inc/util/generic/yexception.h +0 -212
- package/inc/util/generic/yexception_ut.h +0 -14
- package/inc/util/generic/ylimits.h +0 -92
- package/inc/util/generic/ymath.h +0 -206
- package/inc/util/memory/addstorage.h +0 -93
- package/inc/util/memory/alloc.h +0 -27
- package/inc/util/memory/blob.h +0 -296
- package/inc/util/memory/mmapalloc.h +0 -8
- package/inc/util/memory/pool.h +0 -432
- package/inc/util/memory/segmented_string_pool.h +0 -194
- package/inc/util/memory/segpool_alloc.h +0 -118
- package/inc/util/memory/smallobj.h +0 -141
- package/inc/util/memory/tempbuf.h +0 -111
- package/inc/util/network/address.h +0 -136
- package/inc/util/network/endpoint.h +0 -61
- package/inc/util/network/hostip.h +0 -16
- package/inc/util/network/init.h +0 -60
- package/inc/util/network/interface.h +0 -17
- package/inc/util/network/iovec.h +0 -65
- package/inc/util/network/ip.h +0 -116
- package/inc/util/network/nonblock.h +0 -8
- package/inc/util/network/pair.h +0 -9
- package/inc/util/network/poller.h +0 -58
- package/inc/util/network/pollerimpl.h +0 -707
- package/inc/util/network/sock.h +0 -608
- package/inc/util/network/socket.h +0 -421
- package/inc/util/random/common_ops.h +0 -130
- package/inc/util/random/easy.h +0 -47
- package/inc/util/random/entropy.h +0 -21
- package/inc/util/random/fast.h +0 -101
- package/inc/util/random/init_atfork.h +0 -3
- package/inc/util/random/lcg_engine.h +0 -66
- package/inc/util/random/mersenne.h +0 -46
- package/inc/util/random/mersenne32.h +0 -50
- package/inc/util/random/mersenne64.h +0 -50
- package/inc/util/random/normal.h +0 -38
- package/inc/util/random/random.h +0 -30
- package/inc/util/random/shuffle.h +0 -39
- package/inc/util/str_stl.h +0 -266
- package/inc/util/stream/aligned.h +0 -99
- package/inc/util/stream/buffer.h +0 -119
- package/inc/util/stream/buffered.h +0 -225
- package/inc/util/stream/debug.h +0 -53
- package/inc/util/stream/direct_io.h +0 -43
- package/inc/util/stream/file.h +0 -108
- package/inc/util/stream/format.h +0 -444
- package/inc/util/stream/fwd.h +0 -100
- package/inc/util/stream/hex.h +0 -8
- package/inc/util/stream/holder.h +0 -44
- package/inc/util/stream/input.h +0 -273
- package/inc/util/stream/labeled.h +0 -19
- package/inc/util/stream/length.h +0 -100
- package/inc/util/stream/mem.h +0 -255
- package/inc/util/stream/multi.h +0 -32
- package/inc/util/stream/null.h +0 -61
- package/inc/util/stream/output.h +0 -304
- package/inc/util/stream/pipe.h +0 -112
- package/inc/util/stream/printf.h +0 -25
- package/inc/util/stream/str.h +0 -207
- package/inc/util/stream/tee.h +0 -28
- package/inc/util/stream/tempbuf.h +0 -21
- package/inc/util/stream/tokenizer.h +0 -214
- package/inc/util/stream/trace.h +0 -60
- package/inc/util/stream/walk.h +0 -35
- package/inc/util/stream/zerocopy.h +0 -91
- package/inc/util/stream/zerocopy_output.h +0 -57
- package/inc/util/stream/zlib.h +0 -173
- package/inc/util/string/ascii.h +0 -236
- package/inc/util/string/builder.h +0 -39
- package/inc/util/string/cast.h +0 -347
- package/inc/util/string/cstriter.h +0 -14
- package/inc/util/string/escape.h +0 -70
- package/inc/util/string/hex.h +0 -59
- package/inc/util/string/join.h +0 -194
- package/inc/util/string/printf.h +0 -13
- package/inc/util/string/reverse.h +0 -16
- package/inc/util/string/split.h +0 -1080
- package/inc/util/string/strip.h +0 -257
- package/inc/util/string/strspn.h +0 -65
- package/inc/util/string/subst.h +0 -56
- package/inc/util/string/type.h +0 -50
- package/inc/util/string/util.h +0 -195
- package/inc/util/string/vector.h +0 -132
- package/inc/util/system/align.h +0 -50
- package/inc/util/system/atexit.h +0 -22
- package/inc/util/system/atomic.h +0 -51
- package/inc/util/system/atomic_gcc.h +0 -90
- package/inc/util/system/atomic_ops.h +0 -189
- package/inc/util/system/atomic_win.h +0 -114
- package/inc/util/system/backtrace.h +0 -39
- package/inc/util/system/byteorder.h +0 -186
- package/inc/util/system/compat.h +0 -84
- package/inc/util/system/compiler.h +0 -620
- package/inc/util/system/condvar.h +0 -71
- package/inc/util/system/context.h +0 -181
- package/inc/util/system/context_aarch64.h +0 -8
- package/inc/util/system/context_i686.h +0 -9
- package/inc/util/system/context_x86.h +0 -12
- package/inc/util/system/context_x86_64.h +0 -7
- package/inc/util/system/cpu_id.h +0 -159
- package/inc/util/system/daemon.h +0 -28
- package/inc/util/system/datetime.h +0 -98
- package/inc/util/system/defaults.h +0 -149
- package/inc/util/system/demangle.h +0 -5
- package/inc/util/system/demangle_impl.h +0 -23
- package/inc/util/system/direct_io.h +0 -71
- package/inc/util/system/dynlib.h +0 -119
- package/inc/util/system/env.h +0 -32
- package/inc/util/system/error.h +0 -95
- package/inc/util/system/event.h +0 -122
- package/inc/util/system/execpath.h +0 -17
- package/inc/util/system/fasttime.h +0 -6
- package/inc/util/system/fhandle.h +0 -27
- package/inc/util/system/file.h +0 -210
- package/inc/util/system/file_lock.h +0 -34
- package/inc/util/system/filemap.h +0 -383
- package/inc/util/system/flock.h +0 -35
- package/inc/util/system/fs.h +0 -156
- package/inc/util/system/fs_win.h +0 -29
- package/inc/util/system/fstat.h +0 -46
- package/inc/util/system/getpid.h +0 -12
- package/inc/util/system/guard.h +0 -179
- package/inc/util/system/hi_lo.h +0 -139
- package/inc/util/system/hostname.h +0 -10
- package/inc/util/system/hp_timer.h +0 -36
- package/inc/util/system/info.h +0 -12
- package/inc/util/system/interrupt_signals.h +0 -22
- package/inc/util/system/madvise.h +0 -30
- package/inc/util/system/maxlen.h +0 -32
- package/inc/util/system/mem_info.h +0 -18
- package/inc/util/system/mincore.h +0 -38
- package/inc/util/system/mktemp.h +0 -11
- package/inc/util/system/mlock.h +0 -43
- package/inc/util/system/mutex.h +0 -67
- package/inc/util/system/nice.h +0 -3
- package/inc/util/system/pipe.h +0 -90
- package/inc/util/system/platform.h +0 -246
- package/inc/util/system/progname.h +0 -13
- package/inc/util/system/protect.h +0 -25
- package/inc/util/system/rusage.h +0 -26
- package/inc/util/system/rwlock.h +0 -78
- package/inc/util/system/sanitizers.h +0 -122
- package/inc/util/system/sem.h +0 -41
- package/inc/util/system/shellcommand.h +0 -472
- package/inc/util/system/shmat.h +0 -32
- package/inc/util/system/sigset.h +0 -78
- package/inc/util/system/spin_wait.h +0 -10
- package/inc/util/system/spinlock.h +0 -121
- package/inc/util/system/src_location.h +0 -25
- package/inc/util/system/src_root.h +0 -68
- package/inc/util/system/sys_alloc.h +0 -43
- package/inc/util/system/sysstat.h +0 -52
- package/inc/util/system/tempfile.h +0 -34
- package/inc/util/system/thread.h +0 -167
- package/inc/util/system/tls.h +0 -307
- package/inc/util/system/types.h +0 -119
- package/inc/util/system/unaligned_mem.h +0 -67
- package/inc/util/system/user.h +0 -5
- package/inc/util/system/utime.h +0 -6
- package/inc/util/system/valgrind.h +0 -48
- package/inc/util/system/winint.h +0 -43
- package/inc/util/system/yassert.h +0 -121
- package/inc/util/system/yield.h +0 -4
- package/inc/util/thread/factory.h +0 -65
- package/inc/util/thread/fwd.h +0 -30
- package/inc/util/thread/lfqueue.h +0 -406
- package/inc/util/thread/lfstack.h +0 -188
- package/inc/util/thread/pool.h +0 -388
- package/inc/util/thread/singleton.h +0 -42
- package/inc/util/ysafeptr.h +0 -427
- package/inc/util/ysaveload.h +0 -700
package/inc/util/system/pipe.h
DELETED
|
@@ -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);
|
package/inc/util/system/rusage.h
DELETED
|
@@ -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
|
-
};
|
package/inc/util/system/rwlock.h
DELETED
|
@@ -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
|
-
}
|
package/inc/util/system/sem.h
DELETED
|
@@ -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
|
-
};
|