Commit Graph

1154 Commits

Author SHA1 Message Date
levlam
4652292037 Use count instead of find if appropriate. 2022-05-01 23:03:06 +03:00
levlam
17275fe422 Output the number of objects to be freed on closing. 2022-04-25 20:52:44 +03:00
levlam
c021bdfb98 Add 4 more allowed characters for file name from file extension in accordance with Telegram server-side limit. 2022-04-20 19:31:30 +03:00
levlam
43ea7be0fb Add fast-moved implementation for big HashSet nodes. 2022-04-19 02:33:12 +03:00
levlam
e8c3792776 Don't try to increase hash table if no new element inserted. 2022-04-18 21:27:38 +03:00
levlam
9b19e88c2a Use file name instead of notification sound title if there is none. 2022-04-17 19:01:01 +03:00
levlam
7364334ebe Add internalLinkTypeAttachMenuBot. 2022-04-01 14:00:34 +03:00
levlam
a7a6ee25cb Add pq_add_mul static function. 2022-03-21 20:57:47 +03:00
levlam
2ae689f54f Add another pq_factorize test. 2022-03-21 20:43:28 +03:00
levlam
93a2b9895d Optimize GCD in pq_factorize. 2022-03-21 19:38:40 +03:00
levlam
6e86faaa0f Improve factorization tests. 2022-03-20 00:01:07 +03:00
levlam
ccf2da2865 Move find_package(ABSL) under TD_WITH_ABSEIL. 2022-03-14 16:20:56 +03:00
levlam
cd21f58e7d Optimize FlatHashTable::emplace. 2022-03-14 13:25:41 +03:00
levlam
057b2d1e05 Remove EndSentinel, not allowed in C++14. 2022-03-13 23:14:18 +03:00
levlam
daef14ade1 Return NodePointer instead of iterator in find/emplace. 2022-03-12 15:27:14 +03:00
levlam
62f463b421 Use a sentinel for FlatHashTable::end(). 2022-03-12 13:26:03 +03:00
levlam
eb89f8b35f Minor include fixes. 2022-03-12 00:50:04 +03:00
levlam
254f10b885 Fix include. 2022-03-11 21:49:58 +03:00
levlam
1f38124861 Use FlatHashSet. 2022-03-11 21:38:48 +03:00
levlam
3eda5b17ac FlatHashTable: optimize find. 2022-03-11 14:10:10 +03:00
levlam
acf30d3700 Fix HashTable::operator->. 2022-03-11 13:34:36 +03:00
levlam
2413b3fd37 Add unordered_map<string, ...> benchmark. 2022-03-09 23:23:44 +03:00
levlam
7f7344c363 Add separate FlatHashSet.h. 2022-03-09 23:01:10 +03:00
levlam
eac8550ec6 Move non-template FlatHashTable functions to cpp. 2022-03-09 18:16:59 +03:00
levlam
07bb129653 Move FlatHashTable implementation to FlatHashTable.h. 2022-03-09 18:03:56 +03:00
levlam
15520c5ddd Move static functions out of FlatHashTable. 2022-03-09 17:00:22 +03:00
levlam
44b844eeeb Rename is_key_empty to is_hash_table_key_empty. 2022-03-09 16:40:50 +03:00
levlam
8b897c7c5f Move MapNode and SetNode to separate classes. 2022-03-09 16:29:47 +03:00
levlam
ea52727c21 Add FlatHashTable::create_iterator private function. 2022-03-09 15:44:14 +03:00
levlam
d8071f458e Remove now unneeded identity helper functions. 2022-03-09 15:34:56 +03:00
levlam
5cda813bd9 Move control block back to FlatHashTable itself to avoid cache line sharing between control blocks of all big tables. 2022-03-09 15:17:29 +03:00
levlam
a59e6b8ffe Add static_assert that flag in STORE_FLAG/PARSE_FLAG is bool. 2022-03-01 21:39:24 +03:00
levlam
f993bebc2f Disable FlatHashTable for release. 2022-03-01 15:16:57 +03:00
levlam
1f300c50e0 DownloadManager fixes. 2022-02-28 18:25:07 +03:00
levlam
21a71e6441 Minor improvements. 2022-02-25 16:18:23 +03:00
levlam
c631c8c356 Slightly optimize FlatHashTable::resize. 2022-02-25 14:30:02 +03:00
levlam
9590cdd8d0 Optimize erase_node, part 2. 2022-02-25 14:27:38 +03:00
levlam
03a994e198 Optimize erase_node, part 1. 2022-02-25 13:53:13 +03:00
levlam
ef14369058 Store bucket_count in FlatHashTableInner. 2022-02-25 04:04:29 +03:00
levlam
01b884858d Return the same begin() if hashtable wasn't changed. 2022-02-25 00:24:27 +03:00
levlam
a657cf6458 Use random begin() in HashTable. 2022-02-25 00:04:32 +03:00
levlam
f298d71c08 HashTable bug fixes. 2022-02-24 22:04:21 +03:00
levlam
ecb14f1bdd Minore fixes. 2022-02-24 21:38:57 +03:00
levlam
35cf57eed8 Consistently use uint32 in FlatHashTable. 2022-02-23 22:51:43 +03:00
levlam
fe06a1d4fc Fix GCC warnings. 2022-02-23 22:46:32 +03:00
levlam
e1909b018e Reduce size of an empty FlatHashTable. 2022-02-23 22:13:40 +03:00
levlam
3da16b4501 Use bucket_count() instead of nodes_.size(). 2022-02-23 18:20:25 +03:00
Arseny Smirnov
e2c7601c2b DownloadManager: draft 2022-02-23 19:34:26 +01:00
levlam
6f2a9270a3 Always try shrink after node erasure. 2022-02-23 18:05:56 +03:00
levlam
d090929249 Store end_ in iterator instead of map itself. 2022-02-23 17:41:11 +03:00
levlam
b307396628 Simplify FlatHashTable implementation. 2022-02-23 16:34:42 +03:00
levlam
73ade8cc43 Randomize hash value and optimize bucket calculation. 2022-02-23 16:27:19 +03:00
levlam
b3a784f4ba Properly clear other hashmap after move. 2022-02-23 15:58:12 +03:00
levlam
5f5205ae6c Remove unneeded return values from hashtable move-assignment operators. 2022-02-23 15:50:58 +03:00
levlam
1f12b0d8e8 Allow folly usages only if TD_TEST_FOLLY is defined. 2022-02-23 15:01:53 +03:00
levlam
c9c9a73499 Fix swap(fixed_vector) usages. 2022-02-21 05:49:59 +03:00
levlam
f0a2ccd0fb Remove value_type from SetNode. 2022-02-21 02:22:01 +03:00
levlam
9e8b2489bd Keep the first value from initializer_list. 2022-02-21 00:33:19 +03:00
levlam
77ccc13181 Add Map/SetNode::copy_from. 2022-02-20 23:03:34 +03:00
levlam
983cc2c45c Various hash table improvements. 2022-02-19 11:34:43 +03:00
levlam
94289c0c9e Fix SCOPE_EXIT redefinition. 2022-02-18 23:25:23 +03:00
levlam
ae3854d97c Various fixes. 2022-02-18 23:04:25 +03:00
levlam
b5cf85d6e2 Fix compilation error. 2022-02-18 15:15:58 +03:00
Arseny Smirnov
952ac3ed7c FlatHashMap: add MaskSse2 to benchmark 2022-02-18 00:48:33 +01:00
Arseny Smirnov
39934a7f9e FlatHashMap: sse2 support 2022-02-18 00:47:58 +01:00
Arseny Smirnov
a356cc7e3d FlatHashMap: optimizations 2022-02-18 00:30:14 +01:00
Arseny Smirnov
5ff92065bf FlatHashMap: fixes for portability 2022-02-17 20:22:46 +01:00
Arseny Smirnov
34a69e3133 FlatHashMap: add implementation with chunks 2022-02-17 19:40:18 +01:00
levlam
512c0cd3c2 Fix formatting. 2022-02-12 00:48:35 +03:00
Arseny Smirnov
a11d37dd4c FlatHashMap: fix CE 2022-02-11 18:11:17 +01:00
Arseny Smirnov
ecceb51881 FlatHashSet 2022-02-11 17:41:40 +01:00
levlam
15f27455c5 Move other big classes inside FlatHashMap to unique_ptr. 2022-02-11 19:27:32 +03:00
levlam
5b4bea1fef Add HashMap build time benchmark. 2022-02-11 14:46:30 +03:00
levlam
6ae2096d68 Fix HashSet benchmark. 2022-02-11 11:26:58 +03:00
Arseny Smirnov
1a3adc3ee7 FlatHashTable: bugfix 2022-02-10 22:44:40 +01:00
Arseny Smirnov
500c20f7ea FlatHashMap: more benchmarks 2022-02-10 22:34:01 +01:00
levlam
b71e330396 Fix tests. 2022-02-11 00:11:02 +03:00
levlam
b8ab910b81 Various improvements. 2022-02-10 23:01:28 +03:00
Arseny Smirnov
987e875520 FlatHashMap: support mem_stat->rss in memory benchmark; move memory benchmark in other folder, fix build. 2022-02-10 18:33:23 +01:00
Arseny Smirnov
6bb365567b FlatHashMap: improve memory benchmark 2022-02-10 18:29:52 +01:00
levlam
1a28bbd00c Remove redundant checks from calc_bucket. 2022-02-10 18:30:03 +03:00
Arseny Smirnov
10c59db842 FlatHashMap: simple benchmark for memory usage 2022-02-10 14:37:19 +01:00
Arseny Smirnov
f4b3a09646 FlatHashMap: shrink table if too sparse 2022-02-10 14:37:19 +01:00
levlam
9e6d106585 Minor improvements. 2022-02-10 11:55:32 +03:00
Arseny Smirnov
129d12566d FlatHashMap: add tests 2022-02-09 22:22:51 +01:00
Arseny Smirnov
8d8896d7f0 FlatHashMap: remove_if; generic td::table_remove_if 2022-02-09 22:22:51 +01:00
Arseny Smirnov
87354498e4 cmake: use SYSTEM after PUBLIC or PRIVATE in target_link_libraries to avoid error 2022-02-09 22:22:51 +01:00
levlam
967cb9e8a5 Fix compilation error. 2022-02-09 18:41:38 +03:00
levlam
22ed61e1b7 More FlatHashMap usages. 2022-02-09 17:05:27 +03:00
levlam
b403a3793d Explicitly check for empty key in FlatHashImpl::find. 2022-02-09 15:41:23 +03:00
levlam
4eacaa3ebd FlatHashMap improvements. 2022-02-09 03:08:18 +03:00
Arseny Smirnov
d5e163cd9d FlatHashMap: support initializer_list 2022-02-08 20:47:10 +01:00
Arseny Smirnov
d5db554b70 FlatHashMap: benchmark 2022-02-08 19:38:09 +01:00
Arseny Smirnov
d0cd7a8926 FlatHashMap: inline with_node usages 2022-02-08 19:38:09 +01:00
Arseny Smirnov
5d074a4b18 FlatHashMap: some optimizations 2022-02-08 19:38:09 +01:00
Arseny Smirnov
e3a5b29d20 FlatHashMap: use same code for const and non-const methods 2022-02-08 19:38:09 +01:00
levlam
b7a51bd9d5 FlatHashMap improvements. 2022-02-08 02:26:07 +03:00
levlam
5d1e50fd8d Remove wrongly used EqualT in FlatHashMap. 2022-02-08 01:06:57 +03:00
levlam
b62ced6d95 Minor improvements. 2022-02-08 00:42:53 +03:00
levlam
bcc2adeb47 Fix includes and formatting. 2022-02-08 00:04:34 +03:00
Arseny Smirnov
86bceb2972 td: replace most of std::unordered_map usages to td::FlatHashMap 2022-02-07 21:21:31 +01:00
Arseny Smirnov
088ce02832 tdutils: FlatHashMap 2022-02-07 21:21:31 +01:00
levlam
0b33522821 Improve ChainScheduler. 2022-02-03 22:01:09 +03:00
levlam
950876b496 Minor improvements. 2022-02-01 18:25:02 +03:00
Arseny Smirnov
7c9d698023 SequenceDispatcher: bugfixes 2022-02-01 17:05:23 +03:00
Arseny Smirnov
da4d6318fc SequenceDispatcher: distribute food limits to net queries in the same chain and with the same tl_constructor 2022-02-01 16:06:48 +03:00
Arseny Smirnov
24766fdad8 ChainScheduler: pass new test 2022-02-01 16:04:58 +03:00
Arseny Smirnov
b4396f18c6 ChainScheduler: tests and optimizations 2022-02-01 16:02:35 +03:00
levlam
c783115974 Fix warnings. 2022-01-31 22:00:00 +03:00
levlam
31e7447158 Disable is_emoji implementation is there is no zlib. 2022-01-31 20:20:31 +03:00
levlam
aceb3698f6 Remove unused span helpers without verbs in their name. 2022-01-31 16:27:24 +03:00
levlam
b1b945e239 Minor fixes. 2022-01-31 15:56:44 +03:00
levlam
e7406475ff Fix compilation errors. 2022-01-28 19:12:20 +03:00
Arseny Smirnov
c202974d47 SequenceDispatcher: set error to all NetQueries at tear_down 2022-01-28 17:43:22 +03:00
Arseny Smirnov
355c2950ad ChainScheduler - new implementation of SequenceDispatcher 2022-01-28 15:50:59 +03:00
levlam
4254320148 Add consts for emoji count and the maximum emoji length. 2022-01-14 16:30:50 +03:00
levlam
b007cc7a2c Use compressed base64-encoded list of emoji instead of emoji themselves to reduce binary size and stack usage. 2022-01-13 23:43:22 +03:00
KnorpelSenf
789b9c0a55 Fix much typos 2022-01-25 16:07:36 +03:00
levlam
8085779cdc Update copyright year. 2022-01-01 03:35:39 +03:00
levlam
26d2ee649d Add some missing new lines at the end of files. 2021-12-27 14:03:50 +03:00
levlam
5f965a1ea4 Don't try to use "fr-FR" locale, because check for its existence is
broken with musl: https://www.openwall.com/lists/musl/2017/11/08/1.
2021-12-24 15:12:14 +03:00
levlam
ff6615e734 Fix some misprints. 2021-12-23 14:18:32 +03:00
levlam
eff87996a5 Match animated emoji without selectors. 2021-12-22 13:40:20 +03:00
levlam
957670aa0d Immediately close non-connected sockets. 2021-12-16 23:38:44 +03:00
levlam
01b02e9028 Remove deprecated EM_LOG_DEMANGLE flag. 2021-12-16 19:19:32 +03:00
levlam
1782b8e478 Minor improvements. 2021-12-16 16:16:34 +03:00
levlam
1a98ac8004 Don't use min/max as variable names. 2021-12-15 20:55:03 +03:00
levlam
ca8a8ad358 Remove ThreadSafeCounter usage. 2021-12-10 13:31:17 +03:00
levlam
1a9c6fa51c Add more logging. 2021-12-10 13:27:24 +03:00
levlam
106797f7f0 Improve private field names. 2021-12-10 13:07:55 +03:00
levlam
1bb9b7dfa9 Update clang-format to 13.0.1. 2021-12-10 00:27:13 +03:00
levlam
a28b5f2fbb Remove explicit verbosity level changes in tests. 2021-11-21 21:41:11 +03:00
levlam
bd733c1c6e Fix CheckExitGuard test. 2021-11-18 17:01:05 +03:00
levlam
67aa9cad66 Allocate exactly specified size in ArrayAllocator. 2021-11-18 16:42:01 +03:00
levlam
42ca2dcef5 Add serialize test. 2021-11-18 16:32:12 +03:00
levlam
6f3dc2afb1 Use new/delete instead of ArrayAllocator on external threads. 2021-11-18 16:22:54 +03:00
levlam
32713560b8 Move StackAllocator implementation to cpp. 2021-11-18 15:42:07 +03:00
levlam
bf9c78e982 Fix is_emoji. 2021-11-18 14:37:31 +03:00
levlam
fb39e5d746 SImplify StackAllocator::Ptr implementation. 2021-11-17 15:15:40 +03:00
levlam
5e70be9d36 Improve CHECK. 2021-11-13 23:50:18 +03:00
levlam
b731414d42 Init some fields just in case. 2021-11-11 17:39:09 +03:00
levlam
712197ad6d Mark some constructors as noexcept. 2021-11-10 21:55:50 +03:00
levlam
5a02af8c72 Use const reference if range-based for if appropriate. 2021-11-10 20:39:35 +03:00
levlam
96382d5621 Output no_color only if there was a color. 2021-11-10 19:06:12 +03:00
levlam
eb346f5573 Return both first and last error from mkpath. 2021-11-05 10:10:11 +03:00
levlam
ca7947cf44 Minor improvements. 2021-11-04 12:46:08 +03:00
levlam
6e8a88be35 Add TlStorerTotString.store_vector_begin. 2021-11-01 19:45:55 +03:00
levlam
f743c782bf Move TlStorerToString to TlStorerToString.h. 2021-11-01 19:21:24 +03:00
levlam
5e43075d3b Add TlStorerToString::store_object_field method. 2021-11-01 18:59:35 +03:00
levlam
038abf5466 Add sound to messageAnimatedEmoji. 2021-10-05 23:20:49 +03:00
levlam
ffe03ecb10 Add messageAnimatedEmoji. 2021-10-05 16:12:04 +03:00
levlam
b5060687cc Add enable_if guards for forwarding constructors. 2021-10-29 15:05:28 +03:00
levlam
51cf4baee6 Fix tests compilation without threads. 2021-10-25 10:37:38 +03:00
levlam
c5a2f1570d Remove superflous endif comments. 2021-10-25 10:05:15 +03:00
levlam
f7d073baa4 Fix building with TD_EVENTFD_UNSUPPORTED. 2021-10-25 01:46:39 +03:00
levlam
9f44816a62 Minor improvements. 2021-10-21 12:51:16 +03:00
levlam
1e49f6dc13 Use auto as variable type if it is initialized with a cast. 2021-10-20 01:27:02 +03:00
levlam
41cc287d66 Improve checks. 2021-10-20 00:54:49 +03:00
levlam
db7aa28bdf A lot more minor improvements. 2021-10-19 18:11:16 +03:00
levlam
44a186c7c1 Minor improvements. 2021-10-18 19:26:14 +03:00
levlam
01976bed53 Minor warning fixes. 2021-10-18 15:37:21 +03:00
levlam
81b38d5607 Mark move constructors/assignment operators noexcept. 2021-10-18 14:36:15 +03:00
levlam
f35afe23c8 Minor warning fixes. 2021-10-18 12:57:13 +03:00
levlam
0782f56408 Use uint32 instead of unsigned int if possible. 2021-10-17 22:56:40 +03:00
levlam
9b7957c9c6 Minor warning fixes. 2021-10-17 13:07:20 +03:00
levlam
e78a5fbecf Explicitly specify namespace td in tdutils tests. 2021-10-14 15:08:35 +03:00
levlam
c7ce933520 Improve Windows 11 detection. 2021-10-13 14:01:23 +03:00
levlam
f5fe132722 Remove unneeded logging in tests. 2021-10-07 16:56:45 +03:00
levlam
61c3a2bcf5 Remove TD_EXPERIMENTAL_WATCH_OS. 2021-09-24 13:41:22 +03:00
levlam
d6f3d9f08a Use error code 400 instead of small error codes. 2021-09-24 10:59:51 +03:00
levlam
b6bde1e4c5 Move remove_emoji_modifiers to emoji.h. 2021-09-21 06:32:34 +03:00
levlam
3af0059b94 Add is_emoji method. 2021-09-20 22:30:23 +03:00
levlam
db18baa503 Unify include order. 2021-09-19 00:47:05 +03:00
levlam
0b6d40b4b5 Update Unicode data to 14.0.0. 2021-09-18 21:31:50 +03:00
levlam
5a85c8a95b Improve error message. 2021-09-14 12:16:29 +03:00
levlam
47d3806c62 Move TlDowncastHelper to tdutils. 2021-09-12 19:04:22 +03:00
levlam
86de43a048 Remove useless #include comments. 2021-09-03 23:21:44 +03:00
levlam
f0180b6132 Suppress warning about an empty file. 2021-09-02 11:51:33 +03:00
levlam
bfd76964ea Fix some GCC warnings on Windows. 2021-09-01 19:26:18 +03:00
levlam
84ad2e5b19 Remove redundant semicolons. 2021-08-30 23:27:32 +03:00
levlam
5b6e2d2c90 Add ThreadSafeCounter benchmark. 2021-08-18 19:26:03 +03:00
levlam
5349e63c2b Add Timeout::get_timeout. 2021-08-15 11:15:14 +03:00
levlam
99375ff157 Improve pos checks in KHeap. 2021-08-15 10:59:12 +03:00
levlam
65094f66bd Shrink long KHeap arrays. 2021-08-15 10:46:41 +03:00
levlam
103b0efcaa Simplify JSON generation. 2021-07-27 09:41:11 +03:00
levlam
c45535d607 Fix warning. 2021-07-20 03:00:16 +03:00
levlam
c5cee50877 Fix TRY_STATUS_PROMISE usage with Result. 2021-07-17 23:37:03 +03:00
levlam
a4186f8934 Fix BackoffQueue. 2021-07-04 18:52:48 +03:00
levlam
370d443a9d Explicitly specify inheritance mode. 2021-07-04 18:22:20 +03:00
levlam
40c5d47717 Make inherited classes final if possible. 2021-07-04 05:58:54 +03:00
levlam
edfa5d1d98 Use final instead of override. 2021-07-03 23:51:36 +03:00
levlam
3ead565d67 Improve OpenSSL 3.0 support. 2021-07-02 23:34:24 +03:00
levlam
4f00f445b7 Allow leading zeros in port number. 2021-06-27 03:58:26 +03:00
levlam
e18ff8a810 Close socket on Windows only after pending write is confirmed. 2021-06-14 19:06:23 +03:00
levlam
924286da8f Use manual checks instead of cmake_minimum_required to propagate policies. 2021-06-13 23:38:48 +03:00
levlam
e73394ac98 Add comment about meaning of Working Set and Commit Charge. 2021-06-06 22:53:41 +03:00
levlam
7c4ff60f79 Trim trainling slashes in the parameter of CreateDirectoryFromAppW. 2021-06-05 03:29:44 +03:00
levlam
1ab2f9fe9d Improve maximize_buffer. 2021-06-03 04:11:11 +03:00
levlam
8db4febd4c Minor improvements. 2021-06-02 15:43:56 +03:00
levlam
dd687b2f82 Remove superflous const qualifier. 2021-06-02 05:21:15 +03:00