Patrick Pelissier
847f52fa5e
Fix clang warning
2024-07-11 22:07:51 +02:00
Patrick Pelissier
02828a0109
Fix interface of Intrusive List
...
(Reported by Brian Sipos):
* incorrect clear operator usage
* useless prototype of _insert, inconsistent with the policy of other functions
* syntax error in _insert
2024-07-11 21:41:14 +02:00
Patrick Pelissier
0f7d5bf366
Update doc
2024-06-15 09:51:51 +02:00
Patrick Pelissier
1277c75ea3
Update doc
2024-06-15 09:47:10 +02:00
Patrick Pelissier
47a51ee5c4
Update doc
2024-06-15 09:45:13 +02:00
Patrick Pelissier
3f102c2270
Use of memcmp instead of strcmp for string_equal_p
2024-06-12 23:15:56 +02:00
Patrick Pelissier
4ba55dc3ca
Rename new USE directive to be uniform with string one.
2024-06-08 00:08:27 +02:00
Patrick Pelissier
2c0db40158
Simplify logic for set_at of both dict,
...
(after analyzing which condition is likely)
which should help code size & performance
a little bit.
2024-06-01 23:49:08 +02:00
Patrick Pelissier
8987288a10
Fix spelling
2024-06-01 11:05:35 +02:00
Patrick Pelissier
cf8c2afddd
Fix warning on previous modification
2024-06-01 11:03:39 +02:00
Patrick Pelissier
0a8e336037
Fix internal & subtil issue
...
when comparing two methods to check for their presence in an oplist, we may generate the name of an already existing macro.
For example, in the oplist (SIZE())
when we expanded we get the macro M_ADD_SIZE to check if ADD is present,
but M_ADD_SIZE is an already existing macro, which generates an error.
To avoid this issue, define a prefix for the definition of the operators (M_X)
2024-06-01 10:47:21 +02:00
Patrick Pelissier
e7e29d913e
Add new example of variant
2024-06-01 10:16:59 +02:00
Patrick Pelissier
f3ebc8c7eb
Update comments
2024-06-01 10:16:47 +02:00
Patrick Pelissier
2d4fc9dc97
Allow generation of EMPLACE_TYPE
...
for variant if all oplists defined a FIELD operator.
2024-06-01 10:16:39 +02:00
Patrick Pelissier
afedb06dee
Fix buffer overflow in 32 bits mode
2024-05-28 23:31:26 +02:00
Patrick Pelissier
3fd2146bbe
Fix issue in 32 bits mode
2024-05-28 23:31:16 +02:00
Patrick Pelissier
8e70b6175a
Fix clang warning
2024-05-28 23:14:44 +02:00
Patrick Pelissier
67e9c8ff06
New internal string format:
...
* maximum size of a string is 2^32-1 now by default on a 64 bits system (can be increased using M_USE_STRING_LARGE_INDEX if needed).
* This reduce consumption of a string_t from 24 bytes to 16 bytes.
* Change the stack representation of a string, so that it lets 15 allocated bytes for the user even in 64 bytes mode. For 32 bits system, it increases to 15 allocated byte for stack representation.
* synthetic performance benchmark shows a little bit of decrease of performance. But performance in real application shows a significant increase (probably due to the reduced size of the type).
*Augment test suite to be sure to test all corner cases of the new representaiton.
2024-05-28 23:05:54 +02:00
Patrick Pelissier
bf59c53921
Migrate to V0.7.4
2024-05-27 00:39:00 +02:00
Patrick Pelissier
5589105f5c
Update comments
2024-05-27 00:34:24 +02:00
Patrick Pelissier
66d2aa26d3
Fix clang warning
2024-05-15 21:19:43 +02:00
Patrick Pelissier
1ae904dff2
Add support of INITçWITH for variant
...
in C11 / provided all types of the variant are exclusive.
2024-05-15 20:46:20 +02:00
Patrick Pelissier
4549f4ab91
Improve comments
2024-05-14 21:29:47 +02:00
Patrick Pelissier
75d5627378
Simplify logic and should increase performance
2024-05-13 23:25:11 +02:00
Patrick Pelissier
8cbd27e629
Fix overflow
2024-05-12 22:59:58 +02:00
Patrick Pelissier
333cc2ccf8
Provide prefetch on non GCC target & compatible
2024-05-12 22:59:58 +02:00
Patrick Pelissier
000dba1da5
Correct API documentation
2024-05-11 09:43:20 +02:00
Patrick Pelissier
11946f155d
Update
2024-05-11 09:21:10 +02:00
Patrick Pelissier
99713e873c
Add example of multi B+Tree
2024-05-11 09:19:10 +02:00
Patrick Pelissier
ea5c993ff0
Add bulk_update for DICT OA
2024-05-09 19:28:46 +02:00
Patrick Pelissier
22d62f94bb
Add WIP bulk functions for DICT/OA
2024-05-09 14:10:22 +02:00
Patrick Pelissier
8fd79f07d5
Mark the functions to be optimized
...
those that shall not be.
2024-05-07 10:05:49 +02:00
Patrick Pelissier
29fe80a6af
Adding M_HOT_ATTRIBUTE
2024-05-07 10:05:23 +02:00
Patrick Pelissier
e787b64978
Fix issue in C wrapper
2024-05-07 09:51:33 +02:00
Patrick Pelissier
4f9db5eba6
Remove unused header
2024-05-07 08:20:59 +02:00
Patrick Pelissier
db5990de03
DICT:
...
* Reduce memory allocation usage
2024-05-05 19:26:07 +02:00
Patrick Pelissier
d4383ef854
DICT:
...
* Reduce memory allocation usage
* Add more assertions
2024-05-05 11:32:28 +02:00
Patrick Pelissier
d10c8c1b41
Fix comment
2024-05-05 10:18:26 +02:00
Patrick Pelissier
3c669548a2
Update to dev version 0.7.3
2024-05-04 19:56:51 +02:00
Patrick Pelissier
ec11230b5e
Fix shrink_to_fit for dict
2024-05-03 19:16:51 +02:00
Patrick Pelissier
567473869b
Update documentation
2024-05-03 16:42:51 +02:00
Patrick Pelissier
0b6733fdcb
Ass _reserve method for standard dict
2024-05-03 16:40:35 +02:00
Patrick Pelissier
8e330862e1
[Coverage] Adding missing tests
2024-05-03 10:03:22 +02:00
Patrick Pelissier
b2adc77d76
Update issues
2024-05-02 22:47:03 +02:00
Patrick Pelissier
82cbe9e282
Reformat
2024-05-02 17:12:48 +02:00
Patrick Pelissier
93429c8bf3
Simplify GET OA_DICT code
2024-05-02 16:25:03 +02:00
Patrick Pelissier
150bef4d4d
Add more assertion and control for new dict.
2024-05-02 14:05:00 +02:00
Patrick Pelissier
562fd875e9
Improve test suite
2024-05-02 14:04:38 +02:00
Patrick Pelissier
5513a9df1b
Fix issue in new dict for case of erase all / reset scenario
2024-05-02 01:15:15 +02:00
Patrick Pelissier
6fd2610eec
Fix valgrind warning
2024-05-01 23:39:49 +02:00
Patrick Pelissier
11bf5e4691
Fix C++ compatibility and compound literals...
2024-05-01 23:08:29 +02:00
Patrick Pelissier
cf0d82a706
Update
2024-05-01 22:57:33 +02:00
Patrick Pelissier
b0cc17ea86
Update documentation with newest dictionary properties
2024-05-01 22:56:14 +02:00
Patrick Pelissier
04d4bf6866
Complete new version of normal dictionary :
...
* limits: max elements is 0.75*2^32
* much faster
* use less memory
2024-05-01 22:39:36 +02:00
Patrick Pelissier
738123d4a7
Fix the example
2024-05-01 22:17:59 +02:00
Patrick Pelissier
a3ece09e66
Add new tests for exception and bitsets
2024-04-29 22:44:02 +02:00
Patrick Pelissier
8109c094db
Update comments
2024-04-29 22:43:46 +02:00
Patrick Pelissier
2c81582419
Improve static analyzer report
2024-04-29 22:35:27 +02:00
Patrick Pelissier
f8c79d9259
Add support for exception for emplace function for list/array
2024-04-27 09:04:47 +02:00
Patrick Pelissier
c7a894b34e
Fix format
2024-04-27 09:04:20 +02:00
Patrick Pelissier
5c36e045ff
Add proper support for exception for DEQUE
2024-04-27 08:55:51 +02:00
Patrick Pelissier
0f883d2ecf
Simplify code
2024-04-26 23:59:11 +02:00
Patrick Pelissier
9dfcf41b64
Improve detection of error
2024-04-23 21:14:36 +02:00
Patrick Pelissier
1416f4e225
Fix issue
2024-04-23 21:13:37 +02:00
Patrick Pelissier
16c6a13fb1
Make string functions exception aware
2024-04-22 23:41:23 +02:00
Patrick Pelissier
9382cdc0f7
Improve exception integration tests
2024-04-22 23:00:04 +02:00
Patrick Pelissier
ced2719760
Make string functions exception aware
2024-04-22 22:59:54 +02:00
Patrick Pelissier
1798530284
Fix issue in string_fgets
...
where it could be blocked infinity in the parsing
2024-04-22 22:51:59 +02:00
Patrick Pelissier
68f890a015
Improve exception integration tests
2024-04-22 22:47:11 +02:00
Patrick Pelissier
5805038943
Make string functions exception aware
2024-04-22 22:47:00 +02:00
Patrick Pelissier
2395ceb3d2
Remove obsolete and undocumented STRING_DECL_INIT macro
2024-04-20 00:42:38 +02:00
Patrick Pelissier
2b455c5c6b
Fix test issue in C++
2024-04-20 00:42:07 +02:00
Patrick Pelissier
d466e76702
Factorize common test function
2024-04-13 08:19:05 +02:00
Patrick Pelissier
9d33c85e13
Fix issue in _push_front_new
...
Make list services compatible with exception
2024-04-13 08:02:07 +02:00
Patrick Pelissier
4e24e7a533
Improve exception integration tests
2024-04-13 08:01:36 +02:00
Patrick Pelissier
0914c26b8d
Update test suite
...
testing more functions in exception scenario
2024-04-11 01:00:06 +02:00
Patrick Pelissier
c245285123
Make more array/list functions exception aware
2024-04-11 00:55:47 +02:00
Patrick Pelissier
be4ff6f94d
Make list functions exception aware
2024-04-08 23:12:23 +02:00
Patrick Pelissier
aa055d0b00
Add tests for exception + lists
2024-04-08 23:10:14 +02:00
Patrick Pelissier
e7d6e0d6ac
Generate dependency for new files
2024-04-08 23:08:39 +02:00
Patrick Pelissier
8f97a194ae
Add m_volatile
2024-04-08 23:08:16 +02:00
Patrick Pelissier
b191baec8b
Make array functions exception aware
2024-04-06 19:14:36 +02:00
Patrick Pelissier
e4a85cdc61
Add tests for exception+array
2024-04-06 19:13:38 +02:00
Patrick Pelissier
12ee3213b0
Simplify M_ON_EXCEPTION / M_IF_EXCEPTION
2024-04-06 19:13:08 +02:00
Patrick Pelissier
6cba7ad8ba
Update
2024-04-06 19:12:35 +02:00
Patrick Pelissier
955c8bfb81
Adding new example of generic
2024-04-04 22:35:08 +02:00
Patrick Pelissier
8602a259fd
Adding let & print as synonymous in m-generic mode
2024-04-04 22:31:27 +02:00
Patrick Pelissier
7404e63b53
Fix C++ / G++ introduced issue
2024-03-31 22:22:41 +02:00
Patrick Pelissier
c539eb57b7
Prepare exception aware integration
2024-03-31 21:55:02 +02:00
Patrick Pelissier
3c4943015b
Fix introduced issue with TCC
2024-03-27 00:28:06 +01:00
Patrick Pelissier
c9fef6d80a
Fix issues in reworked lock:
...
* starving of writer threads by reader threads
* monopolization of memory bus by reader threads.
2024-03-26 23:11:57 +01:00
Patrick Pelissier
5174781a7a
Improve internal backoff to perform
...
lazy initialization of the seed.
2024-03-26 23:11:03 +01:00
Patrick Pelissier
7bf9f6a377
Update comments
2024-03-26 22:47:13 +01:00
Patrick Pelissier
7575681e27
Rewrite Read / Write lock to be less costly
2024-03-26 22:41:41 +01:00
Patrick Pelissier
cfab3cf0cf
Add m_mutex_trylock function
2024-03-26 22:41:04 +01:00
Patrick Pelissier
a523a97a0e
Update doc
2024-03-18 22:44:53 +01:00
Patrick Pelissier
6f75bb938b
Update doc
2024-03-18 22:32:16 +01:00
Patrick Pelissier
a22046bc2a
Update doc
2024-03-15 14:40:47 +01:00
Patrick Pelissier
84ee15b2e7
Remove workaround
...
This header is already quite demanding on compiler compliance , so there is no need to implement workaround for old compilers.
2024-03-15 14:40:36 +01:00
Patrick Pelissier
fd6a8f1361
Update doc
2024-03-14 23:27:23 +01:00