Patrick Pelissier
1432fbabca
Update buffer to have proper alignement so that we can perform hash computation properly.
2019-04-20 12:33:08 +02:00
Patrick Pelissier
f3b6ee0190
Continue porting to new format.
2019-04-20 12:33:08 +02:00
Patrick Pelissier
229d21ef72
Add assume
2019-04-20 12:33:08 +02:00
Patrick Pelissier
00f1b1fc4f
Update comment
2019-04-20 12:33:08 +02:00
Patrick Pelissier
277d8b37af
Continue porting to new format.
2019-04-20 12:33:08 +02:00
Patrick Pelissier
7b83761ef4
Update
2019-04-20 12:33:08 +02:00
Patrick Pelissier
a96e9c7e11
Update string contract
2019-04-20 12:33:08 +02:00
Patrick Pelissier
866721d067
Add first prototype of string with stack allocation.
2019-04-20 12:33:08 +02:00
Patrick Pelissier
b356c29c89
Add PGO
2019-04-20 12:29:59 +02:00
Patrick Pelissier
a2f7cb7670
Add C Macro Collections ref
2019-04-20 10:24:20 +02:00
Patrick Pelissier
08887c1df0
Add PGO
2019-04-20 09:08:10 +02:00
Patrick Pelissier
8b0a9f2da9
Cleanup Makefile
2019-04-20 08:51:52 +02:00
Patrick Pelissier
e6c958c0df
Fix data race.
2019-04-19 07:57:10 +02:00
Patrick Pelissier
01ad221972
Rewrite RP so that writers cannot starve and avoid warnings with thread sanitizer.
2019-04-11 20:07:27 +02:00
Patrick Pelissier
c269a36e8b
Add thread test for RP_CONCURRENT
2019-04-07 19:03:03 +02:00
Patrick Pelissier
95fcd054a3
Fix error in lock orders.
2019-04-04 21:22:37 +02:00
Patrick Pelissier
7760f16260
Fix memory leaks
2019-04-04 08:31:26 +02:00
Patrick Pelissier
6d016d732b
Update tags
2019-03-31 22:37:00 +02:00
Patrick Pelissier
b9aebf875e
Update comments.
2019-03-31 22:36:52 +02:00
Patrick Pelissier
1eb0e8730d
Use algorithm with dictionary too.
2019-03-24 08:38:52 +01:00
Patrick Pelissier
7eb26a29f1
Reduce the number of mandatory operators for algorithm:
...
* EQUAL
* INIT
are not optional (methods depending on them won't be generated
if the operators are not defined).
2019-03-24 08:37:57 +01:00
Patrick Pelissier
0ef051e6d2
Add GLIB to string bench
2019-03-24 08:29:32 +01:00
Patrick Pelissier
0d641f0d17
Update documentation
2019-03-22 07:53:13 +01:00
Patrick Pelissier
ce6a7f6cb3
Add missing _it_end for normal dict & export it for both dict
2019-03-15 07:44:58 +01:00
Patrick Pelissier
07b4c1a9f4
Update image
2019-03-12 21:43:33 +01:00
Patrick Pelissier
4d3a82583d
Update doc
2019-03-12 21:43:18 +01:00
Patrick Pelissier
2835d53ef1
Clean up code.
2019-03-12 21:42:53 +01:00
Patrick Pelissier
620ecadec1
Update doc
2019-03-12 07:49:04 +01:00
Patrick Pelissier
dc803f23bb
Add missing const
2019-03-09 16:38:44 +01:00
Patrick Pelissier
a6d11fe897
Update doc (ALGO part)
2019-03-09 16:38:25 +01:00
Patrick Pelissier
78b05690e7
Update README
2019-03-07 19:28:46 +01:00
Patrick Pelissier
958a79ad73
Add another example
2019-03-07 19:25:39 +01:00
Patrick Pelissier
ead25c905a
Factorize common macro for FLA
2019-03-07 07:42:50 +01:00
Patrick Pelissier
97f80450ca
Update issue
2019-02-21 20:19:04 +01:00
Patrick Pelissier
8e62537604
Update ISSUE
2019-02-20 11:46:58 +01:00
Patrick Pelissier
7813182e2b
Update test.
2019-02-19 20:22:55 +01:00
Patrick Pelissier
b199fef674
Update comments and move commented asm into common function.
2019-02-18 11:02:13 +01:00
Patrick Pelissier
e27c06c227
Fix regression build with SDS & rapidstring
2019-02-18 10:55:51 +01:00
Patrick Pelissier
41b04f34e2
Fix: Uses of __thread after static keyword
2019-02-18 10:53:27 +01:00
Patrick Pelissier
b091f84f90
Update code after benching empty creation of string.
2019-02-18 10:48:03 +01:00
Patrick Pelissier
05ae9f382b
Update the barrier used to prevent the compiler from over-optimizing.
...
Shall be could enought except if using FLTO.
2019-02-18 10:47:28 +01:00
Patrick Pelissier
a36efcd888
Create new helper compiler_barrier to prevent compiler from over-optimizing bench.
2019-02-18 10:46:21 +01:00
Patrick Pelissier
af2fe9ccf9
Fix issue (sizeof instead of offsetof)
2019-02-17 09:54:56 +01:00
Patrick Pelissier
c4a5727c2a
Fix deref of NULL pointer.
2019-02-17 09:50:04 +01:00
Patrick Pelissier
31ca762c62
Add a new test case for empty string.
2019-02-17 09:49:49 +01:00
Patrick Pelissier
30bda70319
Fix issue.
2019-02-17 09:36:18 +01:00
Patrick Pelissier
7fa9d375b8
Add bench of small non empty constructor
2019-02-17 08:35:11 +01:00
Patrick Pelissier
91ae3fd4f2
Add memory barrier to limiting the effect of the optimizer on inline implementation
2019-02-16 23:20:36 +01:00
Patrick Pelissier
b00d6a9655
Add CSV output to string bench
2019-02-16 22:30:39 +01:00
Patrick Pelissier
013aa58524
Update documentation
2019-02-16 09:01:57 +01:00
Patrick Pelissier
8ce7e0483f
Update comment
2019-02-13 08:24:21 +01:00
Patrick Pelissier
582c413cd2
Add VLA allocation compatible with concurrent mempool & gc
2019-02-13 08:19:07 +01:00
Patrick Pelissier
22e16e983b
Separate mempool in two concepts:
...
* A Garbage Collector that centralizes the connexion with the threads
and registers all mempools
* the mempool that is responsible for alloc/dec of nodes.
It allows having multiple mempools registered in a GC.
2019-02-10 10:26:20 +01:00
Patrick Pelissier
7c0c16260a
Update doc
2019-02-05 22:56:02 +01:00
Patrick Pelissier
e496fbd152
Add test for string_t + OA DICT
2019-01-27 22:59:03 +01:00
Patrick Pelissier
e025de91ab
Adding OOR methods for string_t
2019-01-27 22:32:47 +01:00
Patrick Pelissier
69e2fc432f
Update doc about limitation of operator TEST_EQUAL
2019-01-27 21:16:19 +01:00
Patrick Pelissier
78ba83ce42
* Fix BOUNDED_STRING_CTE macro. In OOR context, it may create invalid constant that triggers
...
assumption fault.
* Fix _equal_p in OOR context for bounded string. This method can be called in OOR context,
so the contracts may not be verified.
2019-01-27 17:33:47 +01:00
Patrick Pelissier
6d9b61c119
Reindent
2019-01-27 17:33:17 +01:00
Patrick Pelissier
61cfa5cedd
Use of proper contract for BOUNDED_STRING.
2019-01-26 14:00:32 +01:00
Patrick Pelissier
0507d94306
Add test for IO for BOUNDED STRING
2019-01-26 13:39:47 +01:00
Patrick Pelissier
7e8919080b
Add IO for BOUNDED STRING
2019-01-26 13:38:54 +01:00
Patrick Pelissier
8406efcaab
Add test case of BOUNDED_STRING + OA DICT
2019-01-26 12:03:13 +01:00
Patrick Pelissier
2d87eb1e6a
Adding default OOR_EQUAL & OOR_SET for BOUNDED_STRING
...
to be used in OA dict
2019-01-26 12:02:50 +01:00
Patrick Pelissier
4685aac454
Add test for hash of empty string
2019-01-26 09:10:36 +01:00
Patrick Pelissier
9863a8325c
Fix assertion. NULL pointer is accepted for HASH providing the size is 0
2019-01-26 09:10:18 +01:00
Patrick Pelissier
b9514cbe72
Fix usage of API with OOR EQUAL of OA Dict
2019-01-25 20:37:33 +01:00
Patrick Pelissier
7b085d18fc
Add test case of OA DICT + concurrent
2019-01-25 20:19:52 +01:00
Patrick Pelissier
91e73520f3
Fix issue of non being able to use API_2 with OOR_SET for OA dict
2019-01-25 20:19:31 +01:00
Patrick Pelissier
aebf5c83ba
Update description of STORED_HASH dict as per remark of #44
2019-01-25 19:47:47 +01:00
Patrick Pelissier
42ff47f511
Fix issue described in #44 (missing types for OA dict)
2019-01-25 19:47:46 +01:00
Patrick Pelissier
746bdf144b
Fix warning with CLANG7
2019-01-24 07:44:36 +01:00
Patrick Pelissier
4e8f5f7b51
Add test for queue SPSC
2019-01-21 22:20:28 +01:00
Patrick Pelissier
50d89f71cb
Update
2019-01-21 22:06:31 +01:00
Patrick Pelissier
d70ef53283
Add _push_force for QUEUE SPSC
2019-01-20 23:59:33 +01:00
Patrick Pelissier
1b6182c1cd
Update
2019-01-20 23:57:33 +01:00
Patrick Pelissier
73b50c852a
Add bench for SPSC in BULK mode
2019-01-16 05:08:03 +01:00
Patrick Pelissier
063011d8e9
Adding yield in case of failure of push/pop
2019-01-16 04:46:06 +01:00
Patrick Pelissier
0f3bf6ab82
Add _bulk version for SPSC queue. To test/bench
2019-01-15 23:27:02 +01:00
Patrick Pelissier
475836e851
Use of new macro M_CACHELINE_ALIGN
2019-01-15 19:11:10 +01:00
Patrick Pelissier
325ca30c61
Add M_CACHELINE_ALIGN macro
2019-01-15 19:10:39 +01:00
Patrick Pelissier
72e872c768
Remove outdated comment
2019-01-15 07:34:19 +01:00
Patrick Pelissier
c2a837b30b
Update
2019-01-15 07:32:13 +01:00
Patrick Pelissier
08822ac7d5
Update
2019-01-15 07:25:11 +01:00
Patrick Pelissier
7f9007ca1a
Add UPDATE_TYPE
2019-01-11 07:58:20 +01:00
Patrick Pelissier
f067cb334c
Add missing return after M_MEMORY_FULL
2019-01-05 19:57:53 +01:00
Patrick Pelissier
60ee253fa7
Update
2019-01-05 13:15:50 +01:00
Patrick Pelissier
4642e0b506
Workaround issue of stdatomic on MSYS2/GCC
2019-01-05 00:19:09 +01:00
Patrick Pelissier
bd29680b62
Add explanations as comment
2019-01-03 07:45:08 +01:00
Patrick Pelissier
c337462af6
Use extension to silent warnings about C11 features used in C99
2019-01-02 22:37:40 +01:00
Patrick Pelissier
c990277855
Add extension attribute support
2019-01-02 22:34:39 +01:00
Patrick Pelissier
8870a1c2f9
Remove atomic qualifier for one variable (useless)
2019-01-02 22:16:08 +01:00
Patrick Pelissier
60f1454550
Fix incorrect qualifier position for emulation layer (issue for atomic pointer definition)
2019-01-02 22:15:47 +01:00
Patrick Pelissier
38eb1c26c6
Variable number of threads for concurrent memory pool
2019-01-02 21:48:53 +01:00
Patrick Pelissier
af050d0100
Port to C++ madness
2019-01-02 21:21:24 +01:00
Patrick Pelissier
14f3ae5cea
Fix issue
2019-01-02 21:21:06 +01:00
Patrick Pelissier
f4ed750d39
Add first test case for concurrent memory pool
2019-01-02 21:13:01 +01:00
Patrick Pelissier
4b3adc8d35
Add first WIP Concurrent Memory Allocator
2019-01-02 20:45:06 +01:00
Patrick Pelissier
8b3a4a802c
Happy new year!
2019-01-02 18:12:07 +01:00
Patrick Pelissier
8b9f605ffa
Add exponential backoff structure & functions
2019-01-02 18:09:16 +01:00