Patrick Pelissier
46759b5f2c
Rename _push_raw method to _push_back_raw method (Cleaner semantic)
2025-07-26 10:35:48 +02:00
Patrick Pelissier
8c8a1e2822
Fix bug reported by florommel on dict's reserve
2025-07-18 20:11:13 +02:00
Patrick Pelissier
ad646f5e04
Update links
2025-07-01 22:17:49 +02:00
Patrick Pelissier
9ecc031fd7
Fix doc
2025-06-10 22:18:24 +02:00
Patrick Pelissier
ea3c2c5019
Update doc
2025-06-10 22:15:34 +02:00
Patrick Pelissier
a9dc2eef12
Update doc
2025-05-31 00:11:49 +02:00
Patrick Pelissier
39a0a4f672
Fix format
2025-05-29 15:06:36 +02:00
Patrick Pelissier
4ffa4a15ac
Rename example
2025-05-29 15:01:21 +02:00
Patrick Pelissier
2d5c9e71ae
Add new example
2025-05-29 14:58:25 +02:00
Patrick Pelissier
e802e22b7b
Port to new API
2025-05-29 14:58:09 +02:00
Patrick Pelissier
3fbe8ec0b6
Update _transform, _reduce and _map_reduce to be more flexible
...
Rename _map_reduce to _transform_reduce
2025-05-29 10:41:20 +02:00
Patrick Pelissier
34085aa637
WIP to allow recursive variant
2025-05-29 10:40:19 +02:00
Patrick Pelissier
77033e2020
Move to V0.8.1
2025-05-29 10:39:42 +02:00
Patrick Pelissier
5c57ad1f51
Add example on tree
2025-05-24 17:40:29 +02:00
Patrick Pelissier
27621db95d
Add method _left, right, _up and _down for tree to get directly an iterator to the requested element
2025-05-24 17:38:57 +02:00
Patrick Pelissier
eab3f701a8
Fix displayed size in case of overflow computation
2025-05-24 10:18:15 +02:00
Patrick Pelissier
cbc5f17cf0
Update Makefile and dependencies
2025-05-11 11:22:49 +02:00
PpHd
02a39fce3f
Merge pull request #134 from P-p-H-d/feature/new-memory-model
...
New memory model
2025-05-08 22:14:17 +02:00
Patrick Pelissier
7c4f94a674
Remove obsolete m-mempool.h header
2025-05-07 22:09:56 +02:00
Patrick Pelissier
8c70a1f96c
Remove obsolete m-concurrent.h header
2025-05-07 22:01:38 +02:00
Patrick Pelissier
25dcdeed69
Remove obsolete m-i-shared.h header
2025-05-07 21:57:53 +02:00
Patrick Pelissier
7e8cb07a6c
Port to shared-ptr interface
2025-05-07 21:50:26 +02:00
Patrick Pelissier
2296f203fd
Remove obsolete m-shared.h header
2025-05-07 21:34:18 +02:00
Patrick Pelissier
790ae33334
Remove obsolete m-c-mempool.h header
2025-05-07 21:28:13 +02:00
Patrick Pelissier
d795476157
Update version
2025-05-07 21:02:55 +02:00
Patrick Pelissier
6a2bdc49fb
Update API incompatibility & documentation
2025-05-07 21:02:24 +02:00
Patrick Pelissier
725f42852e
Update markdown
2025-05-07 21:02:24 +02:00
Patrick Pelissier
bfcc4134d6
Fix markdown
2025-05-07 21:02:24 +02:00
Patrick Pelissier
de6ccc293e
Update doc
...
Update M_USE_GLOBAL_CONTEXT definition to be simpler.
2025-05-07 21:02:24 +02:00
Patrick Pelissier
d9953daf59
Update doc
2025-05-07 21:02:24 +02:00
Patrick Pelissier
1a62f5a4ed
Update doc
2025-05-07 21:02:24 +02:00
Patrick Pelissier
3721129da1
Update prototype of memory functions
...
to always get the memory context parameter
(even if it is not needed) to provide a cleaner
and simpler user interface
(instead of requesting the user to use directly m_context).
2025-05-07 21:02:24 +02:00
Patrick Pelissier
f585167fa8
Simplify code (remove redundant intermediary macro)
2025-05-07 21:02:24 +02:00
Patrick Pelissier
6d5d34fb72
Update
2025-05-07 21:02:24 +02:00
Patrick Pelissier
196db1cf62
Improve test suite
2025-05-07 21:02:24 +02:00
Patrick Pelissier
174c62015b
Workaround wrong analyze by GCC analyzer
2025-05-07 21:02:24 +02:00
Patrick Pelissier
fb3140e645
Fix warning of unused variable.
2025-05-07 21:02:24 +02:00
Patrick Pelissier
431e3a1228
Update doc (WIP)
2025-05-07 21:02:24 +02:00
Patrick Pelissier
3ddf9438da
Update
2025-05-07 21:02:24 +02:00
Patrick Pelissier
6e8aa58bd6
Update doc
2025-05-07 21:02:24 +02:00
Patrick Pelissier
df37a5d8f1
Fix
2025-05-07 21:02:24 +02:00
Patrick Pelissier
2ad8d42401
Update summary
2025-05-07 21:02:24 +02:00
Patrick Pelissier
8f47fb35ae
Use of context for nearly all M*LIB
2025-05-07 21:02:24 +02:00
Patrick Pelissier
a1a5ae749d
Fix oplist of bitset
2025-05-07 21:02:24 +02:00
Patrick Pelissier
147bc0a363
Fix ALGO and oplist doesn't providing IT_REF
2025-05-07 21:02:24 +02:00
Patrick Pelissier
33aa102b7c
Port DualPush list to new format
2025-05-07 21:02:24 +02:00
Patrick Pelissier
bd9485a3fe
Port algo to new memory format
2025-05-07 21:02:24 +02:00
Patrick Pelissier
0de3c622e3
Port algo to new memory format
2025-05-07 21:02:24 +02:00
Patrick Pelissier
93a1be616d
Rename parameter pool to context
2025-05-07 21:02:24 +02:00
Patrick Pelissier
692c0487af
Update oplist for new memory model
2025-05-07 21:02:24 +02:00
Patrick Pelissier
22ccae74c3
Minor optimization of stable_sort
2025-05-07 21:02:24 +02:00
Patrick Pelissier
586d0ae13a
Update documentation
2025-05-07 21:02:24 +02:00
Patrick Pelissier
c7bad98a7e
Port ARRAY oplist to support local memcontext
2025-05-07 21:02:24 +02:00
Patrick Pelissier
8e3a06b852
Simplify OPLIST definition as INIT_MOVE is mandatory for arrays
2025-05-07 21:02:24 +02:00
Patrick Pelissier
d548117538
Make M*LIB stricter for INIT_MOVE operator:
...
* either the default INIT_MOVE operator works ('=')
* either an INIT_MOVE method is defined
* or it is disabled.
As a consequence, fix usage of testobj_t and mpz_t in the repository
The emulation layer of INIT_MOVE using INIT_SET+CLEAR is removed:
it wasn't working correctly with the local memory context
(INIT_MOVE doesn't need any local memory context to work,
whereas INIT_SET/CLEAR does)
Remove macro M_DO_INIT_MOVE as it is now useless and uses M_CALL_INIT_MOVE.
The INIT_MOVE default method no longer sets the old 'src' to '0':
it was useless (it doesn't catch any error) and complicates compiler parsing.
Fix POD & A1 & CSTR & classic oplists definition (missing INIT_MOVE operators).
2025-05-07 21:02:24 +02:00
Patrick Pelissier
3a39ce5a4a
Reformat
2025-05-07 21:02:24 +02:00
Patrick Pelissier
fa41f3affd
M_INIT_VAI supports API
2025-05-07 21:02:24 +02:00
Patrick Pelissier
0d0747dea9
Update oplists
2025-05-07 21:02:24 +02:00
Patrick Pelissier
ab75397e21
TCC now supports m-generic
2025-05-07 21:02:24 +02:00
Patrick Pelissier
cc97aa887f
Fix reference
2025-05-07 21:02:24 +02:00
Patrick Pelissier
b275859a37
Fix issue if BString is empty
2025-05-07 21:02:24 +02:00
Patrick Pelissier
256ff916a2
Port serial to new memory format
2025-05-07 21:02:24 +02:00
Patrick Pelissier
77195fb1d0
Remove m-mutex header
2025-05-07 21:02:24 +02:00
Patrick Pelissier
c2cfb2f0a0
Cleanup & support of M_USE_GLOBAL_POOL
2025-05-07 21:02:24 +02:00
Patrick Pelissier
03cceafd73
Update
2025-05-07 21:02:24 +02:00
Patrick Pelissier
505e2c4a62
Fix spelling
2025-05-07 21:02:24 +02:00
Patrick Pelissier
daadf693f7
Update doc
2025-05-07 21:02:24 +02:00
Patrick Pelissier
98b3bbd7a1
Fix for MACOS
2025-05-07 21:02:24 +02:00
Patrick Pelissier
decec8f7ae
Fix for tcc
2025-05-07 21:02:24 +02:00
Patrick Pelissier
ce3f674ba8
Add new header m-queue (Doc to do)
2025-05-07 21:02:24 +02:00
Patrick Pelissier
01f5228a36
Port to new memory model:
...
Communication thread buffer needs to use the global pool,
and not a local pool, since the allocation is done accross
several threads.
Therefore the non thread fixed queue & stack interfaces are moved into
a dedicated header (m-queue)
and remove support for non thread stack & queue into m-buffer
Remove also deprecated policy too.
2025-05-07 21:02:24 +02:00
Patrick Pelissier
a7294abe0c
Update documentation and error message
2025-05-07 21:02:24 +02:00
Patrick Pelissier
77e5666802
Update string oplist definition with pool
2025-05-07 21:02:24 +02:00
Patrick Pelissier
689527c2dc
Port m-shared-ptr to new memory model
...
(use global pool)
2025-05-07 21:02:24 +02:00
Patrick Pelissier
5d1ebdf5bb
Update obsolete header files:
...
* remove obsolete m-mutex header file
* mark m-concurrent, m-shared and m-i-shared as obsolete (They won't support new memory model)
2025-05-07 21:02:24 +02:00
Patrick Pelissier
10d918bbc9
Port to new memory model (add global context 0)
2025-05-07 21:02:24 +02:00
Patrick Pelissier
8069fae3d5
Remove use of invalid representation, which is refused by clang & C++
2025-05-07 21:02:24 +02:00
Patrick Pelissier
94dd0a5571
Add example of using pool
2025-05-07 21:02:24 +02:00
Patrick Pelissier
32a3d95104
Port to new memory model
2025-05-07 21:02:23 +02:00
Patrick Pelissier
d08aeb32fe
Port to new memory model
2025-05-07 21:02:23 +02:00
Patrick Pelissier
26fc2bcffe
Port tree to new memory model
2025-05-07 21:02:23 +02:00
Patrick Pelissier
7617048073
Port to new memory model
2025-05-07 21:02:23 +02:00
Patrick Pelissier
57e7510ae7
Format
2025-05-07 21:02:23 +02:00
Patrick Pelissier
324ba5d256
Port to new memory model: M_MEMORY_FULL cannot return anymore
2025-05-07 21:02:23 +02:00
Patrick Pelissier
8939b4d046
New memory model is for 0.8.0 version
2025-05-07 21:02:23 +02:00
Patrick Pelissier
1cf7c4fa4d
Port to new memory model: M_MEMORY_FULL cannot return anymore
2025-05-07 21:02:23 +02:00
Patrick Pelissier
839e7c2957
Port to new memory model
2025-05-07 21:02:23 +02:00
Patrick Pelissier
06e3046268
Port to new memory interface
2025-05-07 21:02:23 +02:00
Patrick Pelissier
e959c001aa
Port to new memory model
2025-05-07 21:02:23 +02:00
Patrick Pelissier
bcc9f2c894
Port B+TREE to new memory model
2025-05-07 21:02:23 +02:00
Patrick Pelissier
6e828eabaf
Port list to new memory pool
...
Remove support for mempool. A new support for mempool should be provided later through the new memory context parameter (TODO / better API)
2025-05-07 21:02:23 +02:00
Patrick Pelissier
7677b13d8a
Update contract comment.
2025-05-07 21:02:23 +02:00
Patrick Pelissier
e16c6987e4
Port to new memory interface (remove mempool support, but it was undocumented)
2025-05-07 21:02:23 +02:00
Patrick Pelissier
aa4cbfebdb
Port to new memory interface
2025-05-07 21:02:23 +02:00
Patrick Pelissier
66f376ea80
Port to new memory model
2025-05-07 21:02:23 +02:00
Patrick Pelissier
6de8eab5c3
Add comments, rename macro for maintenance
2025-05-07 21:02:23 +02:00
Patrick Pelissier
9e63289a38
Port to new memory model
2025-05-07 21:02:23 +02:00
Patrick Pelissier
bf617ab6ab
Port to new memory interface (WIP)
2025-05-07 21:02:23 +02:00
Patrick Pelissier
3f8c30e592
Port ARRAY & STRING to new memory model with memory context support
2025-05-07 21:02:23 +02:00
Patrick Pelissier
37b2f4d2ac
Update test suite to properly allocation & deallocation
2025-05-07 21:02:23 +02:00
Patrick Pelissier
50e8d1f469
Fix old size parameter for memory allocation
2025-05-07 21:02:23 +02:00
Patrick Pelissier
d40a6e5bc3
Document limitation
2025-05-07 21:02:23 +02:00
Patrick Pelissier
b4c29d5423
Update spec
2025-05-07 21:02:23 +02:00
Patrick Pelissier
9f4f9d1d5d
Update
2025-05-07 21:02:23 +02:00
Patrick Pelissier
1e196fe22a
Port to new spec M_MEMORY_FULL
2025-05-07 21:02:23 +02:00
Patrick Pelissier
450d2c9000
Update spec of M_MEMORY_FULL
2025-05-07 21:02:23 +02:00
Patrick Pelissier
93112a5a7c
Update example
2025-05-07 21:02:23 +02:00
Patrick Pelissier
1f2584ccea
Port to new memory model
2025-05-07 21:02:23 +02:00
Patrick Pelissier
5b4c9cd618
Update spec of memory functions
2025-05-07 21:02:23 +02:00
Patrick Pelissier
f4e3d9cd4c
Release V0.7.4
2025-05-07 21:02:01 +02:00
Patrick Pelissier
4988661b7d
Fix target armv6 (2) for Continuous Integration
2025-05-06 00:47:29 +02:00
Patrick Pelissier
7033a922c7
Fix target armv6 for Continuous Integration
2025-05-05 23:50:43 +02:00
Patrick Pelissier
dd607252eb
Add target risc64, ppc64le and armv6 for Continuous Integration
2025-05-05 23:46:09 +02:00
Patrick Pelissier
73da9a4316
Update obsolete header section
2025-04-18 21:58:15 +02:00
Patrick Pelissier
b3a0d70147
Fix memory safety errors in examples.
2025-04-08 21:46:16 +02:00
Patrick Pelissier
c55bb6b9ad
Fix random segfault on AARCH64 CI
2025-03-13 22:24:13 +01:00
Patrick Pelissier
68fdc2dde1
Fix undefined behavior in using setjmp
2025-03-06 15:38:44 +01:00
Patrick Pelissier
8877af10b0
Update copyright
2025-03-03 23:45:04 +01:00
Patrick Pelissier
782963dec5
Add example of disabling small name usage
2025-03-01 12:20:28 +01:00
Patrick Pelissier
36d11bc2bd
Fix small name usage
2025-03-01 12:19:35 +01:00
Patrick Pelissier
6d621703eb
Copyright go to 2025 year
2025-03-01 11:03:38 +01:00
Patrick Pelissier
76b40d247d
Fix #133 : forgotten const for second argument (reported by Brian Sipos)
2025-02-03 23:12:22 +01:00
Patrick Pelissier
033deac9f5
Workaround for GCC 12 bug in warning
2025-02-03 23:06:41 +01:00
Patrick Pelissier
b60553165d
Fix usage of M_USE_SMALL_NAME (Reported by Brian Sipos)
2025-02-03 22:33:07 +01:00
Patrick Pelissier
e1a4d359a2
Update doc
2025-02-02 10:50:41 +01:00
Patrick Pelissier
4ab2615a1c
Clarify constraint on _splice
2024-12-25 20:48:34 +01:00
Patrick Pelissier
9136a4a972
Update
2024-12-08 19:34:15 +01:00
Patrick Pelissier
55dcf0e438
Fix example
2024-11-30 13:04:45 +01:00
Patrick Pelissier
fb604f02b7
Update / add todo
2024-11-30 10:26:11 +01:00
Patrick Pelissier
1db417e30e
Rename _new_copy into _clone
2024-11-30 10:25:51 +01:00
Patrick Pelissier
5b77fe7207
Add some missing const in the interface
2024-11-30 10:25:36 +01:00
Patrick Pelissier
dd509f2b7e
Update documentation of new shared pointer interface.
2024-11-30 10:25:15 +01:00
Patrick Pelissier
50d4e15297
Simplify lock as mutex should be released by the thread that performed the initial lock to be portable
2024-11-26 22:26:25 +01:00
Patrick Pelissier
f6d1b16338
Fix C++ warning
2024-11-25 00:04:54 +01:00
Patrick Pelissier
64a035559d
Update test suite
2024-11-24 23:57:22 +01:00
Patrick Pelissier
c4bc37560c
Improve testing of new shared pointer
...
Adding measure of coverage. Need to move some codes outside the main C file, to avoid polluting the measure of the coverage by some functions we don't need to measure.
2024-11-24 18:21:21 +01:00
Patrick Pelissier
e7309b7d3a
Add forgotten "const" attribute to string_length_u and string_utf8_p
2024-11-24 18:20:19 +01:00
Patrick Pelissier
c461b4eca4
Update shared pointer new interface
2024-11-24 11:26:30 +01:00
Patrick Pelissier
f21d427de1
Convert example to new shared ptr interface
2024-11-16 18:02:13 +01:00
Patrick Pelissier
0f9edaa7ee
Fix oplist usage of new shared-ptr
2024-11-16 18:01:58 +01:00
Patrick Pelissier
64888127c4
Update to get the lastest v2
2024-11-16 16:55:42 +01:00
Patrick Pelissier
d5b4ec249b
Update test suite
2024-11-16 13:26:21 +01:00
Patrick Pelissier
0bcd78a8f5
Fix warning.
2024-11-12 22:31:05 +01:00
Patrick Pelissier
27b0850af4
Fix case of the same variable is passed as 2/3 arguments of a function.
2024-11-12 22:26:45 +01:00
Patrick Pelissier
ae55ccfc40
Update test to consider change of default for deque
2024-11-11 23:56:33 +01:00
Patrick Pelissier
5bf644ccf0
Improve test suite
2024-11-11 22:38:10 +01:00
Patrick Pelissier
3f09adc507
Fix ADD/SUB/MUL/DIV methods of a shared pointer
2024-11-11 22:38:02 +01:00
Patrick Pelissier
4e851142c2
Change the operator POP of a DEQUE to pop_front instead of pop_back:
...
it is more inline with what we expects / uses a deque for.
(buffer FIFO)
2024-11-11 22:36:56 +01:00
Patrick Pelissier
fec6b42260
Add comment
2024-11-11 21:47:54 +01:00
Patrick Pelissier
9dbc48aa5d
Update
2024-11-09 19:07:08 +01:00
Patrick Pelissier
b92bae34eb
Update comments
2024-11-09 14:54:16 +01:00
Patrick Pelissier
8faf7f79c4
Add first test cases for m-shared-ptr
2024-11-09 14:27:16 +01:00
Patrick Pelissier
c3e29a16df
Fix warnings
2024-11-09 14:26:57 +01:00
Patrick Pelissier
1bc33a10fc
Fix issues (WIP)
2024-11-09 11:12:12 +01:00
Patrick Pelissier
b7074d1c69
Fix some issues
2024-11-06 23:13:23 +01:00
Patrick Pelissier
26d541fe06
Move internal functions to internal namespace
2024-11-05 23:17:28 +01:00
Patrick Pelissier
2991c7cc5a
Add oplist
2024-11-02 23:35:21 +01:00
Patrick Pelissier
4e7cbae766
Add short name support
2024-11-02 17:35:25 +01:00
Patrick Pelissier
d5e0620e4c
Minor fix
2024-11-02 17:21:59 +01:00
Patrick Pelissier
32cfbd23bc
Update comments.
2024-11-02 16:59:40 +01:00
Patrick Pelissier
0e09681a6a
Move m_typeof to core module.
2024-10-30 23:42:45 +01:00
Patrick Pelissier
bc8098b337
Update comments.
2024-10-30 23:31:47 +01:00
Patrick Pelissier
c5692e7e9f
Update comment
2024-10-28 17:46:48 +01:00
Patrick Pelissier
f43db93791
Adding first WIP version of the new shared pointer header.
2024-10-27 22:01:00 +01:00
Patrick Pelissier
14c954c6ce
Adding new property:
...
multithread safety if the container handles itself the multi thread
2024-10-27 20:38:36 +01:00
Patrick Pelissier
60280087c7
Fix default of FULL_P
2024-10-27 20:37:57 +01:00
Patrick Pelissier
1e57d9c6d6
Fix default of FULL_P
2024-10-27 19:48:47 +01:00
Patrick Pelissier
eeaf74d24f
Add FULL_P operator
...
Add M_EMPLACE_LIST_TYPE_VAR_ALTER which doesn't put a comma before.
2024-10-26 16:56:54 +02:00
Patrick Pelissier
a318d36c35
Fix concurrent access.
2024-10-19 11:55:41 +02:00
Patrick Pelissier
edcf8ee37a
Final update of the byte string
2024-10-05 11:40:23 +02:00
Patrick Pelissier
8a1f30eeff
Finish implementation of Byte String
2024-10-05 10:23:47 +02:00
Patrick Pelissier
2995b119b7
Add precision
2024-10-05 10:21:19 +02:00
Patrick Pelissier
08bd5a888b
Fix formatting
2024-10-05 10:21:09 +02:00
Patrick Pelissier
2f1b17f805
Fix for clang
2024-09-26 22:36:45 +02:00
Patrick Pelissier
0379f5f1c6
Add header for handling Byte String as per #123
...
API designed for streaming bytes and easy integration with other libraries.
2024-09-26 22:33:03 +02:00
Patrick Pelissier
45b11fb49b
Fix #129 :
...
Support of incomplete type in m-shared.
2024-09-21 12:39:29 +02:00
Patrick Pelissier
82ea4341de
Fix documentation ( #128 )
2024-08-19 22:02:56 +02:00
Patrick Pelissier
341d145b4d
Fix internal terminoligy
2024-07-26 23:22:58 +02:00
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
Patrick Pelissier
d22e75d7a0
Make I/O functions exception aware.
...
Simplify their logic
Fix other bugs.
2024-03-08 00:15:08 +01:00
Patrick Pelissier
ca25dfb537
Add missing TYPE operator name in the error message if it is missing in the oplist
2024-02-27 01:12:29 +01:00
Patrick Pelissier
e2159109b3
Update analysis of issues
2024-02-24 12:17:30 +01:00
Patrick Pelissier
cc6bdbf06c
Add missing method name in the error message
...
if the method is missing.
2024-02-23 22:52:05 +01:00
PpHd
cd37efc69d
Merge pull request #115 from derskythe/feat-styled-readme
...
Refine explanations and improve formatting in README.md
2024-02-08 13:32:47 +01:00
DerSkythe
db08e62f1a
Fix incorrect word-wrap of defines
2024-02-08 15:31:52 +04:00
DerSkythe
3be653d55a
Improve README.md formatting and clarifications
...
Corrections were made according PR #115
2024-02-08 11:48:40 +04:00
DerSkythe
e351730ad0
Refine explanations and improve formatting in README.md
...
Several corrections and readability enhancements were applied to the README.md file. This includes fixing typos, changing the format of code examples, refining links to sections, and adjusting the indenting of API documentation listings for better readability. General explanations and instructions about the API usage and the constructor and destructor behavior were also improved.
2024-02-07 00:58:25 +04:00
Patrick Pelissier
d7a232364f
Update infrastructure to the fact that the bench directory has been deleted
2024-01-19 22:27:33 +01:00
Patrick Pelissier
f7580e7ce9
Move bench directory to https://github.com/P-p-H-d/c-stl-comparison
...
since it is better to have the comparison centralized in one place.
2024-01-19 21:53:20 +01:00
Patrick Pelissier
26cec1591a
* Remove some obsolete macros
...
* Fix spelling
* A little bit of refactoring
2024-01-19 21:37:47 +01:00
Patrick Pelissier
52b58c5a51
Happy new year 2024
2024-01-19 21:37:47 +01:00
Patrick Pelissier
8902a752f5
Migrate to V0.7.2
2023-12-31 13:02:42 +01:00
PpHd
3445da13f3
Merge generic interface (WIP)
2023-12-31 12:53:10 +01:00
Patrick Pelissier
127530abaa
Fix format
2023-12-30 16:27:25 +01:00
Patrick Pelissier
ed0f538fb7
Add documentation of generic interface
2023-12-30 16:23:02 +01:00
Patrick Pelissier
76ef061dec
Add basic example of generic interface
2023-12-30 16:23:02 +01:00
Patrick Pelissier
c98786a3b3
Update TODO items
2023-12-30 16:23:02 +01:00
Patrick Pelissier
422f3c2c04
Add GENTYPE operator to all oplists
2023-12-30 16:23:02 +01:00
Patrick Pelissier
5ceb34d980
Cosmetics changes
2023-12-30 16:23:02 +01:00
Patrick Pelissier
73e3d1d1bd
Register string_t globally
2023-12-30 16:23:02 +01:00
Patrick Pelissier
044a085fb6
Fix support for pop generic macro function
2023-12-30 16:23:02 +01:00
Patrick Pelissier
5344423ad9
Reorder header / comment
2023-12-30 16:23:02 +01:00
Patrick Pelissier
76ea989865
Fix warnings
2023-12-30 16:23:02 +01:00
Patrick Pelissier
29c4ba3dcc
Add support for M_PRINT
2023-12-30 16:23:02 +01:00
Patrick Pelissier
42184f69db
Disable generic tests for TCC
2023-12-30 16:23:02 +01:00
Patrick Pelissier
fb8bf65233
Worlaround for warning with clang
2023-12-30 16:23:02 +01:00
Patrick Pelissier
1d86e51f4a
Improve test suite
2023-12-30 16:23:02 +01:00
Patrick Pelissier
53c35a22d7
First version of Generic header
2023-12-30 16:23:02 +01:00
Patrick Pelissier
722737d60c
Add M_QUAD internal macros
2023-12-30 16:23:02 +01:00
Patrick Pelissier
f951a947ec
Adding a try catch example
2023-12-30 13:42:47 +01:00
Patrick Pelissier
d9401371a6
Fix warnings reported by CLANG,
...
the C warning generator.
2023-12-23 13:16:42 +01:00
Patrick Pelissier
690fd72c8b
Fix documentation
2023-12-23 11:24:25 +01:00
Patrick Pelissier
d318493c6c
Remove M_PRINT_ARG macro to simplify maintenance
...
(M_FPRINT_MACRO with stdout can be used instead)
2023-12-22 23:46:07 +01:00
Patrick Pelissier
fecece19cb
Add retry for TCC due the random segfault it generates
2023-12-22 23:45:39 +01:00
Patrick Pelissier
ea640482a7
Add new examples with custom allocation
2023-12-20 19:25:27 +01:00
Patrick Pelissier
3e558af559
Remove unused function
2023-12-20 19:24:57 +01:00
Patrick Pelissier
91a602f774
Add bench of boost unordered flat hashmap
2023-12-19 20:58:02 +01:00
Patrick Pelissier
6a5c136c72
Complete bench-verstable with bench on big structure
2023-12-13 19:35:08 +01:00
Patrick Pelissier
e50fdc82ef
Add benchmark for verstable
2023-12-12 23:59:17 +01:00
Patrick Pelissier
ec0a082701
Update ISSUE
2023-12-12 22:57:13 +01:00
Patrick Pelissier
7bf3ea3a87
Update Function Object interface
...
to make interface trivially copiable
There is no need to perform a copy-protected type as there is no init/clear for this type.
It is always created through an instance.
2023-12-09 12:40:45 +01:00
Patrick Pelissier
15492394ad
Update list of exported files
2023-12-08 20:58:47 +01:00
Patrick Pelissier
09f40b5695
Fix format
2023-12-08 20:58:33 +01:00
Patrick Pelissier
eabfcd1d49
Update list of ignored files
2023-12-08 00:25:53 +01:00
Patrick Pelissier
00aeafc616
Update comments
2023-12-06 23:55:11 +01:00
Patrick Pelissier
f512051807
Migrate to actions/checkout@v4
2023-12-06 23:52:04 +01:00
Patrick Pelissier
4e8b929da9
Migrate to vmactions/freebsd-vm v1
2023-12-06 23:51:40 +01:00
Patrick Pelissier
5841f936e6
Work around static analyzer
...
that raise an issue on freeing non heap pointer
2023-12-02 13:48:21 +01:00
Patrick Pelissier
2ee40339b0
Using emplace to generate init_with for shared_ptr:
...
Equivalent to C++ make_shared)
2023-12-02 13:21:45 +01:00
Patrick Pelissier
0c8eca893d
Add example of REST client
...
by using libcurl for HTTP connection
and M*LIB for JSON formating.
2023-11-25 13:33:27 +01:00
Patrick Pelissier
b16048a55b
Add test cases for tuple emplace
2023-11-25 13:32:57 +01:00
Patrick Pelissier
9dc582c6bc
Add emplace set functions for tuple
2023-11-25 13:30:08 +01:00
Patrick Pelissier
1df8bf84fb
Fix oplist definition for tuple.
...
The oplist didn't include as many sub-oplists as the number of variables.
2023-11-25 13:29:48 +01:00
Patrick Pelissier
e017a90e5c
Fix format
2023-11-04 19:28:32 +01:00
Patrick Pelissier
58b317b759
Add timeout for run in VM
2023-11-04 18:50:43 +01:00
Patrick Pelissier
3a057fc319
M_STATIC_ASSERT: provide expression compatible
...
macro even in pure C11 mode
(Remove GCC extension)
Add M_OPL_AS_STR to display the oplist conditionnaly as the generated string may be too big for some compilers.
Translate some M_STATIC_FAILURE into M_STATIC_ASSERT
as M_STATIC_FAILURE is not an expression whereas M_STATIC_ASSERT is an expression.
2023-11-04 18:48:13 +01:00
Patrick Pelissier
703ab6ff9c
Update examples
2023-11-04 18:48:13 +01:00
Patrick Pelissier
f7f5db61d3
Fix formatting
2023-11-01 11:13:54 +01:00
Patrick Pelissier
32b00eb433
Add new operator GENTYPE
2023-10-21 19:05:08 +02:00
Patrick Pelissier
796f2619e5
Change M_BY_NARGS semantics:
...
simplify suffix by __ # NARGS
instead of __NARGS_ # NARGS
Driver: reduce macro name length.
2023-10-20 00:02:38 +02:00
Patrick Pelissier
268192138a
WIP M_ON_EXCEPTION
2023-10-19 22:54:51 +02:00
Patrick Pelissier
0671a2ea41
Update doc
2023-10-15 22:21:12 +02:00
Patrick Pelissier
07dce84e51
Tuple init: handle case of exception
...
during construction of tuple
2023-10-14 20:15:14 +02:00
Patrick Pelissier
5f4303624f
Adding macro M_CHAIN_OBJ
2023-10-14 15:55:59 +02:00
Patrick Pelissier
19e61467d5
Adding tuple generation
...
for analysis of generated code.
2023-10-14 15:31:37 +02:00
Patrick Pelissier
1454bcebe4
Add unique name identifier
...
in order to avoid Wshadow warning
in generated code.
2023-10-14 15:30:57 +02:00
Patrick Pelissier
d48f2ff84d
Update comment
2023-10-06 22:38:36 +02:00
Patrick Pelissier
269636b4d8
Update doc with new macro M_CHAIN_INIT
2023-09-09 18:40:59 +02:00
Patrick Pelissier
bf68340106
Add macro M_CHAIN_INIT for support of partially constructed object.
2023-09-09 18:40:32 +02:00
Patrick Pelissier
5dba526e29
Update ISSUES
2023-09-08 22:12:16 +02:00
Patrick Pelissier
469239adcd
Update comments
2023-08-24 23:32:47 +02:00
Patrick Pelissier
589abda0c2
Fix bug in list insertion:
...
The output iterator has its previous field incorrect.
2023-08-13 23:27:12 +02:00
Patrick Pelissier
8f141896ba
Clarify operators for memory allocation
2023-08-02 23:20:02 +02:00
Patrick Pelissier
a0cbec4329
Support of output failure for serialization of strings
2023-08-02 23:20:02 +02:00
Patrick Pelissier
df66db562d
Add comments
2023-08-01 00:33:43 +02:00
Patrick Pelissier
1829a70601
Update documentation
2023-07-20 23:42:15 +02:00
Patrick Pelissier
e9b25f2414
Rename internal field size to capacity
...
to match what it is used for.
2023-07-13 21:48:33 +02:00
Patrick Pelissier
c9bb739f24
Fix format
2023-07-10 00:59:18 +02:00
Patrick Pelissier
e049b83a9e
Rename M_SUFFIX_FUNCTION_BY_NARGS in M_BY_NARGS
...
and updates suffix with __NARGS_
in order to be more explicit.
2023-07-10 00:58:31 +02:00
Patrick Pelissier
31ac3999a1
Add new operators
2023-07-07 22:17:39 +02:00
Patrick Pelissier
a0818419ab
Fix format
2023-07-04 01:08:40 +02:00
Patrick Pelissier
496f885a84
Add threads backend for FreeRTOS tasks.
2023-07-04 01:07:59 +02:00
Patrick Pelissier
d5d9a4bd5c
Update documentation of threads
2023-07-04 00:46:32 +02:00
Patrick Pelissier
ca9571a110
Fix no stdio:
...
M_CSTR macro cannot be available if there is no stdio
2023-06-29 21:26:22 +02:00
Patrick Pelissier
4497214b9c
Fix spelling
2023-06-29 00:32:23 +02:00
PpHd
ccb1658afd
Provide way of avoiding code duplication for multiple source C files
...
Use of compiler extension for that, only compatible for GCC /CLANG.
This provides easy and total customization (for example non template functions like strings can also avoid code duplication).
2023-06-13 23:46:58 +02:00
Patrick Pelissier
eaf2783f1a
Synchro with master branch
2023-06-11 23:32:42 +02:00
Patrick Pelissier
5705819814
Update doc
2023-06-11 23:32:02 +02:00
Patrick Pelissier
91f5f513c4
Update macro names
...
Make global logic easier.
2023-06-11 23:32:02 +02:00
Patrick Pelissier
3dec4e2cbe
Fix example
2023-06-11 23:32:02 +02:00
Patrick Pelissier
e70766beaa
Update list of ignored file
2023-06-11 23:32:02 +02:00
Patrick Pelissier
d7639f0ae0
Update example to match new semantic
2023-06-11 23:32:02 +02:00
Patrick Pelissier
c63ce84e45
Update logic to select which linkage to use
...
so that user code can be written easily
M_USE_EXTERN_DECL / M_USE_DECL activates functions that are not inlined.
If M_USE_EXTERN_DEF / M_USE_DEF is also defined, then the definition is emitted instead of the declaration.
2023-06-11 23:32:02 +02:00
Patrick Pelissier
a043c379c0
Update user code as per new liberty
2023-06-11 23:32:02 +02:00
Patrick Pelissier
92bb380117
Rewrite order in preprocessing if to simplify user code
2023-06-11 23:32:02 +02:00
Patrick Pelissier
6bb7a184db
Fix compil rules
2023-06-11 23:32:02 +02:00
Patrick Pelissier
fa9163be9d
Make linker options optional
2023-06-11 23:32:02 +02:00
Patrick Pelissier
0bade1563c
Also build exn.exe by default
2023-06-11 23:32:02 +02:00
Patrick Pelissier
1278d2f8a0
Implement noinline another way
2023-06-11 23:32:02 +02:00
Patrick Pelissier
53af2aae68
Add example of separating inline & function code
2023-06-11 23:32:02 +02:00
Patrick Pelissier
17ded6fcc8
Update M_USE_EXTERN_FINE_GRAINED to avoid warnings
2023-06-11 23:32:02 +02:00
Patrick Pelissier
19ce371533
Add support for M_USE_EXTERN_FINE_GRAINED to enable / disable inline semantics alongside the translation unit by redefining it when needed
2023-06-11 23:32:02 +02:00
Patrick Pelissier
0bd1bcb68e
Another way to request the desired semantics, compatible with clang
2023-06-11 23:32:02 +02:00
Patrick Pelissier
b50813713a
Define internal M_INLINE:
...
it is used to control the inline semantics.
By combining it with optimize option "-fno-inline"
for the internal M*LIB function (using _Pragma optimize)
we can control easily if we want to use an inline version
or call of an external function.
Define new user API:
* M_USE_EXTERN_DECL : define it before including any MLIB header to requests to call the M*LIB functions and don't inline then.
* M_USE_EXTERN_DEF : define it once in a translation unit to define the M*LIB functions. This translation unit shall contain all templated macro too.
If you use one option, you need to use the other one too for another translation unit.
2023-06-11 23:32:02 +02:00
Patrick Pelissier
2628536d20
Add +m_string_it_set_ref
2023-06-10 01:50:14 +02:00
Patrick Pelissier
ecfa4a9152
Add new function string_pop_u
...
to pop the last unicode code point
of a string.
2023-06-03 00:59:34 +02:00
Patrick Pelissier
dafe4bcec5
Add basic test for M_DEFAULT_ARGS
...
Print hint to developper in case of incorrect usage
2023-06-03 00:56:13 +02:00
Patrick Pelissier
8544a7f289
Update example
2023-05-30 14:01:30 +02:00
Patrick Pelissier
aa18915d61
Fix overflow computation
2023-05-21 00:15:58 +02:00
Patrick Pelissier
df4bc0a56c
Remove alloc warning for analyzer:
...
it is not able to track allocations correctly and only give false warnings.
valgraind or memory sanitizer are much more reliable to track memory errors.
2023-05-13 00:52:06 +02:00
Patrick Pelissier
b6046e5e23
Fix new warnings with GCC13
2023-05-13 00:52:06 +02:00
Patrick Pelissier
b487bfe5ad
Adding missing inline
2023-05-08 23:54:16 +02:00
PpHd
408272c810
Merge pull request
...
Add m_string_cat_vprintf
2023-05-08 23:35:54 +02:00
kitterion
6a9ee17eca
Add tests
2023-05-08 23:17:19 +03:00
kitterion
05c5a94634
Add m_string_cat_vprintf
2023-05-08 20:52:47 +03:00
Patrick Pelissier
b1b0927e9f
Update examples
2023-05-06 21:54:08 +02:00
Patrick Pelissier
37770365a1
Fix several bugs:
...
* in case of some invalid format starting with ']' directly it wrongly assume that the parsing was valid.
* incase of exception handling, and an exception was raised during the internal parsing, some destructors wern't called.
2023-05-05 22:16:39 +02:00
Patrick Pelissier
82bdcc685a
Add internal macro MQLET for internal M_LET use
2023-05-05 22:15:13 +02:00
Patrick Pelissier
26fa733f70
Fix format
2023-05-05 22:14:41 +02:00
Patrick Pelissier
cd2fc05573
Add FIXED_SIZE property
2023-05-05 21:41:05 +02:00
Patrick Pelissier
33430d4359
Update
2023-04-29 18:46:09 +02:00
Patrick Pelissier
dc95b49f05
Update
2023-04-29 12:07:10 +02:00
Patrick Pelissier
3ec24cfa40
Update
2023-04-29 11:41:08 +02:00
Patrick Pelissier
12b099dcf8
Update
2023-04-29 11:25:56 +02:00
Patrick Pelissier
b885d6136c
Update
2023-04-29 11:20:00 +02:00
Patrick Pelissier
b51c4bea2b
Update
2023-04-29 11:19:54 +02:00
Patrick Pelissier
302c5eb300
Remove export passthrough of NEW/DEL/REALLOC/FREE interface
...
from the container oplist.
It has no real practical purpose.
NEW/DEL/REALLOC/FREE shall be a property of the container
to be defined, and not a property for an already defined container.
2023-04-29 10:50:04 +02:00
Patrick Pelissier
6d2900a2bd
Improve coverage of test suite.
2023-04-27 00:04:44 +02:00
Patrick Pelissier
573e09c56e
Remove variable number of elements support which was not working.
...
Request an explicit number of elements.
2023-04-27 00:04:03 +02:00
Patrick Pelissier
0a39a17d36
The undefined number of element value of serial _array_start
...
is now (size_t)-1 and no longer 0.
Moreoever, a serialization interface may refuse outputting data
if it doesn't know the number of elements.
In which case, the container shall explictly compute the number
of elements and recall the serial object _array_start method.
2023-04-27 00:01:50 +02:00
Patrick Pelissier
a913d0947c
Rewrite code to fix coverage
2023-04-26 23:34:13 +02:00
Patrick Pelissier
abbd8ad6ce
Update
2023-04-26 22:56:23 +02:00
Patrick Pelissier
a09c9fe1c3
Update
2023-04-26 22:56:23 +02:00
Patrick Pelissier
219c62ff5d
Provide a way to alter the standard naming convention for the functions
...
Close #72
2023-04-22 09:33:08 +02:00
Patrick Pelissier
272a326375
Fix warning issue for coverage
2023-04-22 09:23:18 +02:00
Patrick Pelissier
eca79f2c80
Improve coverage of test suite
2023-04-21 22:44:34 +02:00
Patrick Pelissier
2feda4059f
Fix issue in case of invalid IO
2023-04-21 22:44:23 +02:00
Patrick Pelissier
de0ef67cf2
Fix build issue with VC++
2023-04-19 23:06:23 +02:00
Patrick Pelissier
95762a058c
Fix const attribute of _get_emplace
2023-04-19 22:42:21 +02:00
Patrick Pelissier
acd8671017
Fix test case according to contract.
2023-04-19 22:37:54 +02:00
Patrick Pelissier
a6c1688f23
Fix issue in remove root node for tree (part 2)
2023-04-19 22:37:40 +02:00
Patrick Pelissier
f6ed549ce5
Fix issue in tree_remove for root node index (Part 2)
...
Enable support of removing root node
In this case, it considers the first child of the root as the new root (breaking symetry)
2023-04-18 23:24:48 +02:00
Patrick Pelissier
8639fdbd98
Fix issue in tree_remove when it is root node (part 1)
2023-04-18 22:56:56 +02:00
Patrick Pelissier
693b09387f
Improve coverage of test suite.
2023-04-18 22:19:41 +02:00
Patrick Pelissier
4052d3794b
Tree: Transform runtime tests into assertion
...
as it is proven that it cannot happen.
2023-04-18 22:19:28 +02:00
Patrick Pelissier
044e9c3bf7
Fix benchmark
2023-04-17 16:56:57 +02:00
Patrick Pelissier
45a2a1afb2
Add bench for CC
2023-04-16 21:16:04 +02:00
Patrick Pelissier
b44e4e09dd
Don't use builtin for clang as they are not properly supported.
2023-04-16 20:11:56 +02:00
Patrick Pelissier
5158059ec4
Make m_throw a classic "cold" function rather than a static inline function.
...
Since the function shall be rarely called, there is no point in inlining/duplicating it
in several units.
2023-04-16 19:26:15 +02:00
Patrick Pelissier
7279011f0a
Use of the builtin versions of setjmp /longjmp for GCC / CLANG
...
They are more than twice faster on extreme bench of M\_LET / M\_TRY scenario
(and still twice slower than C++).
They also use less stack usage.
2023-04-16 19:18:04 +02:00
Patrick Pelissier
79369e9b05
Update README
2023-04-16 19:16:08 +02:00
Patrick Pelissier
58a7a7c214
Add gene TRY
2023-04-16 19:15:54 +02:00
Patrick Pelissier
e3e94ca238
Add M_ATTR_COLD_FUNCTION attribute
2023-04-16 19:15:22 +02:00
Patrick Pelissier
ae81271b2a
Fix name of internal variable for M_DEFER
2023-04-16 08:33:45 +02:00
Patrick Pelissier
d9c3724cff
Compatiblity with C++
2023-04-15 23:18:45 +02:00
Patrick Pelissier
1ff9848384
Update test so that it tests also the case of throwing without any try section (override M_RAISE_FATAL)
2023-04-15 22:51:57 +02:00
Patrick Pelissier
83e7f2a641
Use of new M_ATTR_NO_RETURN attribute
2023-04-15 22:50:47 +02:00
Patrick Pelissier
6580601969
Add M_ATTR_NO_RETURN attribute support (not C23 compatible yet)
2023-04-15 22:50:27 +02:00
Patrick Pelissier
ad023bb09d
Improve coverage of the test suite
2023-04-13 23:27:01 +02:00
Patrick Pelissier
b5df21f9c5
Simplify function: for LCA both iterators shall be in the same tree
2023-04-13 23:26:12 +02:00
Patrick Pelissier
d2dccbf514
Add table of contents
2023-04-12 20:35:22 +02:00
Patrick Pelissier
a8075cbb05
Transform runtime test into assertion
...
as it is proven that it cannot happen.
2023-04-11 21:57:56 +02:00
Patrick Pelissier
1322afc4c9
Improve coverage of test suite
2023-04-11 21:53:14 +02:00
Patrick Pelissier
0f885fb158
Fix coverage source for m-core
2023-04-11 21:32:57 +02:00
Patrick Pelissier
25a2eb0875
Correct syntax
2023-04-11 21:32:38 +02:00
Patrick Pelissier
6bcd51f10f
Complete coverage synthesis
...
with branch coverage information
2023-04-11 21:09:40 +02:00
Patrick Pelissier
9c1cb9c835
Update doc
2023-04-11 00:07:33 +02:00
Patrick Pelissier
19cb329ae6
Simplfy example
2023-04-11 00:05:41 +02:00
Patrick Pelissier
8099e6a94f
Update doc
2023-04-11 00:04:46 +02:00
Patrick Pelissier
ce6cc080d6
Improve coverage of test suite
2023-04-10 23:09:18 +02:00
Patrick Pelissier
a27b0b4014
Fix wrong parsing of malformed dict.
2023-04-10 23:08:51 +02:00
Patrick Pelissier
e74f80cc59
Update doc
2023-04-08 11:32:15 +02:00
Patrick Pelissier
bafd307247
Update performance chapter
2023-04-08 11:27:37 +02:00
Patrick Pelissier
6bed3ac697
Print time with 2 digits after the decimal
2023-04-08 11:25:59 +02:00
Patrick Pelissier
b8a9073fc9
Fix issue to generate graph without any repetition
2023-04-08 11:25:05 +02:00
Patrick Pelissier
da3e71c676
Fix introduced warning in release mode
2023-04-08 11:23:32 +02:00
Patrick Pelissier
4ea83e129e
Improve coverage of test suite
2023-04-08 00:17:33 +02:00
Patrick Pelissier
fc34fa80b5
Properly mark condition for entering memory failure.
2023-04-07 23:50:03 +02:00
Patrick Pelissier
4f608ec266
Fix target of run
2023-04-06 22:02:49 +02:00
Patrick Pelissier
ccaa54d2a5
Improve coverage of the tet suite
2023-04-06 21:55:21 +02:00
Patrick Pelissier
095bf7070d
Rewrite loop to avoid final assert(0)
2023-04-06 21:55:06 +02:00
Patrick Pelissier
676b12d5d2
Fix warnings
2023-04-05 23:15:39 +02:00
Patrick Pelissier
f858aa2cb5
Improve coverage of the test suite.
2023-04-05 23:07:52 +02:00
Patrick Pelissier
9d77448a25
Reduce optimization level to 0
...
Otherwise the coverage results are not reliable:
* some uncovered lines are not reported as uncovered
* some covered lines are reported as uncovered (!)
2023-04-05 23:04:22 +02:00
Patrick Pelissier
8babc33b91
Rewrite code differently to be more robust
...
and improve coverage of the test suite
2023-04-05 22:41:33 +02:00
Patrick Pelissier
352d7cf725
Improve coverage of the test suite
2023-04-05 22:22:49 +02:00
Patrick Pelissier
a6993ab758
Overload assert in coverage mode
...
to avoid polluting the report with untaken branch by the assert macro.
2023-04-05 22:22:01 +02:00
Patrick Pelissier
48260ac2a6
Ignore temporary coverage files
2023-04-05 22:21:23 +02:00
Patrick Pelissier
e4afb024b9
Improve coverage of test suite
2023-04-05 00:38:44 +02:00
Patrick Pelissier
63008af30f
Add assertions
2023-04-05 00:38:32 +02:00
Patrick Pelissier
1828aca65e
Fix preprocessing
2023-04-05 00:38:16 +02:00
Patrick Pelissier
9354e9717d
Remove unused test function
2023-04-04 01:06:32 +02:00
Patrick Pelissier
100c0f22fe
Improve test coverage
2023-04-04 00:48:03 +02:00
Patrick Pelissier
ff778528f8
Improve coverage of the test suite
2023-04-04 00:22:49 +02:00
Patrick Pelissier
8f1a1df617
Improve coverage of test suite
2023-04-03 16:38:54 +02:00
Patrick Pelissier
28faf815d7
Improve robustness against broken I/O file
2023-04-03 14:09:34 +02:00
Patrick Pelissier
fe3b703d0a
Don't expand isspace for coverage tests
2023-04-03 14:09:07 +02:00
Patrick Pelissier
0aa6a9f0cf
Update comments
2023-04-03 13:19:50 +02:00
Patrick Pelissier
67832ac918
Add more tests case for IO parsing
2023-04-03 13:18:28 +02:00
Patrick Pelissier
669a3297c7
Fix issue in ispace usage and allow more space in formating (to be more uniform. The allowed spaces before were in strange place only)
2023-04-03 13:18:10 +02:00
Patrick Pelissier
25d4829d7b
Add utilities function for parsing FILE or char* while skipping space character
2023-04-03 13:17:25 +02:00
Patrick Pelissier
ebab05a789
Improve coverage of test suite
2023-04-03 12:36:35 +02:00
Patrick Pelissier
727df5b7bf
Fix coverage
2023-04-03 00:36:18 +02:00
Patrick Pelissier
aebe1308fc
Improve coverage computation
2023-04-03 00:23:05 +02:00
Patrick Pelissier
1d163a396e
Replace assert by M_ASSERT
2023-04-03 00:12:00 +02:00
Patrick Pelissier
7534aa0d61
Add internal M_UNLIKELY_NOMEM to help coverage computation
2023-04-03 00:05:29 +02:00
Patrick Pelissier
6976d4e23d
Remove (broken) auto check of coverage
2023-04-02 23:02:48 +02:00
Patrick Pelissier
6b7954e141
Fix coverage for new files
2023-04-02 22:52:40 +02:00
Patrick Pelissier
c27d76a83b
Remove assert & contract from coverage to avoid polluting reports
2023-04-02 22:45:56 +02:00
Patrick Pelissier
0e3081bfc6
Include branch probabilities in report
2023-04-02 22:45:35 +02:00
Patrick Pelissier
d754e9a15f
Update doc for _get_emplace functions for associative array
2023-03-29 22:59:54 +02:00
Patrick Pelissier
4e4e21793c
Add _get_emplace functions for associative array
2023-03-29 22:59:43 +02:00
Patrick Pelissier
c515da9f37
Update documentation
2023-03-29 22:50:51 +02:00
Patrick Pelissier
961b93bd4c
Add test for M_LET + associative array
2023-03-28 23:43:49 +02:00
Patrick Pelissier
39a719c3f0
Fix warnings
2023-03-28 23:43:21 +02:00
Patrick Pelissier
8b643b4878
Add support for emplace detection in associative array + M_LET
2023-03-28 23:43:08 +02:00
Patrick Pelissier
876c394fba
Fix format
2023-03-28 23:42:25 +02:00
Patrick Pelissier
81439c9437
Fix grammar
2023-03-27 01:05:53 +02:00
Patrick Pelissier
191ef7d09e
Fix grammar
2023-03-27 00:55:08 +02:00
Patrick Pelissier
bd4131dd8f
Fix typo
2023-03-27 00:53:31 +02:00
Patrick Pelissier
cfe8293c64
Cleanup documentation
2023-03-25 10:25:52 +01:00
Patrick Pelissier
ea2715aa75
Remove static assert. Some old compilers failed to simplify into a constant expression, resulting in build failure
2023-03-24 23:54:49 +01:00
Patrick Pelissier
f69cec6820
Fix warning with clang+const char * type
2023-03-24 21:53:23 +01:00
Patrick Pelissier
085f371693
Update doc
2023-03-24 21:12:28 +01:00
Patrick Pelissier
16a0a5c1a3
Add new examples
2023-03-24 21:11:15 +01:00
Patrick Pelissier
3953f81884
Update
2023-03-24 21:10:59 +01:00
Patrick Pelissier
8365888e6e
Add Oplist inheritanc chapter
2023-03-24 20:38:51 +01:00
Patrick Pelissier
c3f6e3c5f0
Add trivial script to separate preproc of compilation for debug
2023-03-19 00:29:51 +01:00
Patrick Pelissier
4cafe4dce1
Fix steps to debug
2023-03-19 00:29:06 +01:00
Patrick Pelissier
9f8b97ae46
Rename fields of m_exception_t:
...
data->context
n->num
2023-03-18 18:11:23 +01:00
Patrick Pelissier
030bea9c11
Add test for M_DEFER & M_LET_IF in exceptions
2023-03-18 17:57:46 +01:00
Patrick Pelissier
e33894f1b3
Finish support for M_DEFER / M_LET_IF & exceptions
2023-03-18 17:57:15 +01:00
Patrick Pelissier
66f5e6c67d
Support for more than one expression in M_DEFER
2023-03-18 17:56:44 +01:00
Patrick Pelissier
78c6dce068
Update doc
2023-03-18 17:56:11 +01:00
Patrick Pelissier
0798480ad5
Refactoring & implement support for RAII with M_DEFER
2023-03-18 17:39:56 +01:00
Patrick Pelissier
e8322215fd
Update doc about clang
2023-03-18 17:39:20 +01:00
Patrick Pelissier
42d3042c15
Add NOCLEAR property to M_BASIC_OPLIST and prepare injection for M_DEFER
2023-03-18 17:25:08 +01:00
Patrick Pelissier
b7214ad11d
Adding test of NOCLEAR property
2023-03-18 17:20:30 +01:00
Patrick Pelissier
08b4bc9052
M_LET_IF reuses clear mechanism provided by M_DEFER
2023-03-18 15:14:31 +01:00
Patrick Pelissier
d813171e8a
Add new test generation
2023-03-18 09:15:39 +01:00
Patrick Pelissier
d1094999f5
Update M_ASSERT to separate requirement for predicate
2023-03-18 09:15:11 +01:00
Patrick Pelissier
c8354aa6ed
Update doc
2023-03-18 08:08:33 +01:00
Patrick Pelissier
ab3aa33fac
Add M_SET_THROUGH_INIT_SET
2023-03-18 08:08:23 +01:00
Patrick Pelissier
01f2f376e2
Update doc
2023-03-18 00:21:46 +01:00
Patrick Pelissier
535e00366a
Correct reported errors
2023-03-18 00:21:37 +01:00
Patrick Pelissier
42111ec22a
Rename field of m_exception_t
2023-03-17 22:13:18 +01:00
Patrick Pelissier
ef0e849616
Fix test
2023-03-17 22:04:50 +01:00
Patrick Pelissier
9c516c2055
Update doc
2023-03-17 21:56:27 +01:00
Patrick Pelissier
db48b985c3
Update doc
2023-03-17 21:48:56 +01:00
Patrick Pelissier
888796ca06
Update doc
2023-03-17 21:48:07 +01:00
Patrick Pelissier
144ae9c5ed
Add ID support for GAIA
2023-03-17 21:47:04 +01:00
Patrick Pelissier
6223c93b53
Update doc
2023-03-17 20:21:19 +01:00
Patrick Pelissier
30f7656822
Update documentation
2023-03-17 20:15:42 +01:00
PpHd
8209a0c32a
Merge pull request #107 from jonadem/patch-1
...
Fix typos
2023-03-17 20:14:38 +01:00
Jona
92e6957320
Fix typos
2023-03-17 14:00:49 +01:00
Patrick Pelissier
b3c9f6ee47
Add support of exception for Visual C++
2023-03-14 20:00:11 +01:00
Patrick Pelissier
ab8bbad3f4
Fix syntax
2023-03-13 23:54:52 +01:00
Patrick Pelissier
9047376b7f
Add m-try.h in HEADER
2023-03-13 23:53:36 +01:00
Patrick Pelissier
dfed8dbc50
Fix format
2023-03-13 23:53:26 +01:00
Patrick Pelissier
2d3c25cd85
TCC doesn't support the __thread attribute,
...
which is a GCC extension.
Use this extension only for GCC.
2023-03-13 23:45:28 +01:00
Patrick Pelissier
bfa948dc7a
Add WIP implementation for the exception memory model:
...
add header m-try that defines the M_TRY / M_CATCH macros
that macros similarly to the C++ try / catch keywords.
Add implementation for C++, GCC, CLANG and pure C compiler.
2023-03-13 23:31:50 +01:00
Patrick Pelissier
94b6d1b9fd
Fix computation of HASH_FINAL
2023-03-13 22:17:10 +01:00
Patrick Pelissier
0ddd5ddc6d
Add AARCH64 target for CI
2023-03-13 21:04:05 +01:00
Patrick Pelissier
cba93d5bb4
Add SC library
2023-03-12 21:12:21 +01:00
Patrick Pelissier
d02de75487
Add control that all initialized testobj are properly cleared at the end of the test suite
2023-03-12 20:29:58 +01:00
Patrick Pelissier
2f57766249
Rename NOEXCEPT to NOCLEAR property as NOEXCEPT
...
doesn't provide enough guarantee to the exception handler.
2023-03-12 20:23:31 +01:00
Patrick Pelissier
3ff01e37eb
Update documentation for properties
2023-03-05 19:44:36 +01:00
Patrick Pelissier
5683df0f22
Adding test for M_TEST_NOEXCEPT_P
2023-03-05 19:44:21 +01:00
Patrick Pelissier
11dc7afc06
Add NOEXCEPT property and M_TEST_NOEXCEPT_P macro to test it
2023-03-05 19:44:04 +01:00
Patrick Pelissier
9e2ae3f101
Update example
2023-03-05 18:30:47 +01:00
Patrick Pelissier
c35aa9c891
Replace the M_ASSERT(0) by M_ASSUME(0) since they are not reachable (in order to inform the compiler of this fact)
2023-03-05 00:50:40 +01:00
Patrick Pelissier
2fc31d8c12
Factorization find of item in prioqueue
2023-03-03 23:23:06 +01:00
Patrick Pelissier
4f8d0a7156
Split macro
2023-03-03 23:12:40 +01:00
Patrick Pelissier
aaf5bbd6a0
Separate IO from core macro
2023-03-03 23:03:24 +01:00
Patrick Pelissier
2f76652f2b
Maintenance
2023-03-03 22:50:14 +01:00
Patrick Pelissier
942cf32519
Maintenance: separate macros for type and core functions.
2023-03-03 22:02:07 +01:00
Patrick Pelissier
c1c9cb9cd3
Update example
2023-03-03 20:12:50 +01:00
Patrick Pelissier
76bfb48685
Update freebsd CI to be more robust.
2023-03-02 23:41:59 +01:00
Patrick Pelissier
afff412f7a
Maintenance: continue splitting huge macros into smaller ones.
2023-03-02 00:39:08 +01:00
Patrick Pelissier
e48dcdeecc
Factorization & assertions
2023-02-27 14:05:59 +01:00
Patrick Pelissier
12fae5c36c
Update example
2023-02-26 23:43:57 +01:00
Patrick Pelissier
3f9129c7ed
Update comments
2023-02-26 23:43:57 +01:00
Patrick Pelissier
b918f61f4f
Update example
2023-02-26 23:43:57 +01:00
Patrick Pelissier
93b69d0f8b
Fix call of memcpy with size=0 and src=NULL
2023-02-25 12:17:18 +01:00
Patrick Pelissier
b3440a2edd
Fix position of assertions
2023-02-24 20:35:32 +01:00
Patrick Pelissier
4140df5bfc
Improve test suite
2023-02-24 19:56:56 +01:00
Patrick Pelissier
fbab093d52
Avoid warnings about variables never read.
2023-02-24 19:56:26 +01:00
Patrick Pelissier
f57a0e0bf8
Update README
2023-02-24 18:21:39 +01:00
Patrick Pelissier
925c06beb8
Fix usage of va_copy
2023-02-24 15:07:29 +01:00
Patrick Pelissier
8e2f67b794
Fix building on exe files: some targets don't link with LDFLAGS if it is not in the last argument
2023-02-23 12:42:11 +01:00
Patrick Pelissier
f176d01e49
Fix README
2023-02-23 10:53:32 +01:00
Patrick Pelissier
2b99bbe956
Remove bool oplist as it is globally registered
2023-02-22 22:47:31 +01:00
Patrick Pelissier
700bfc5341
Add documentation for RET in API transformation
2023-02-22 22:47:17 +01:00
Patrick Pelissier
4062525821
Add test for RET in API transformation
2023-02-22 22:47:06 +01:00
Patrick Pelissier
800a1e5c36
Add support for RET in API transformation and register global bool oplist
2023-02-22 22:46:46 +01:00
Patrick Pelissier
1838f675a7
Add more comments, another alternative.
...
Rename some variables to be clearer.
2023-02-18 20:15:17 +01:00
Patrick Pelissier
bf6c1341b3
Add comments to explain what we do
...
Always use the prefixed version of M*LIB
2023-02-18 09:58:30 +01:00
Patrick Pelissier
55b745b916
Use of M_WORKER_SPAWN_DEF2 in example:
...
it shows how to add paralelization to a code base.
2023-02-18 00:25:30 +01:00
Patrick Pelissier
5cb0d9214b
Adding doc for M_WORKER_SPAWN_DEF2.
2023-02-18 00:25:17 +01:00
Patrick Pelissier
8f99b8e617
Adding test for M_WORKER_SPAWN_DEF2
2023-02-18 00:25:06 +01:00
Patrick Pelissier
d2ce71a90a
Adding M_WORKER_SPAWN_DEF2 for providing specialization
...
and type-safe variant of m_worker_spawn.
2023-02-18 00:24:20 +01:00
Patrick Pelissier
8562986eea
Avoid dereferencing the table in asserts if the lock is done on the tree:
...
it usually means that the tree is partially accessed by other
threads (at least the derefencing methods which should be
safe).
2023-02-18 00:15:31 +01:00
Patrick Pelissier
ee89858bf0
Add renaming of header in compatibility chapter
2023-02-16 00:20:07 +01:00
Patrick Pelissier
085d7157c0
Add compatibility layer with old header m-mutex
...
as a transition for current programs.
2023-02-16 00:10:55 +01:00
Patrick Pelissier
91f3174a36
Rename m-mutex header into m-thread
...
as it is not just about mutex but about thread functions
just like the header pthread or thread.h
2023-02-16 00:09:06 +01:00
Patrick Pelissier
56f51c59af
Add comments about locale dependent functions.
2023-02-11 23:47:11 +01:00
Patrick Pelissier
df0c95ca46
Adding note on locale for JSON outputs
2023-02-11 14:35:36 +01:00
Patrick Pelissier
482ec38e62
Fix wrong use of isprint function.
2023-02-11 14:34:13 +01:00
Patrick Pelissier
82743ca72c
Update pipeline for freebsd
2023-02-11 09:28:12 +01:00
Patrick Pelissier
312821454c
Avoid running tests in example for freebsd
2023-02-11 00:39:06 +01:00
Patrick Pelissier
c953e87660
Link with stdthreads for FreeBSD
2023-02-11 00:11:48 +01:00
Patrick Pelissier
8846707c8b
Fix issue on FreeBSD when building in C11 mode:
...
thrd_sucess is not equal to 0 on this system,
so replace 0 by thrd_success
2023-02-11 00:08:51 +01:00
Patrick Pelissier
bf7d4eee55
Avoid using .log suffix for failure checks
...
some Make program (like FreeBSD one) doesn't handle
priority of a specific rule over a generic rule.
So the generic rule is used for failure checks and it fails the check.
Use another suffix to avoid collision between rules
2023-02-10 23:57:28 +01:00
Patrick Pelissier
d4dc85f89a
Add FreeBSD target for CI
2023-02-10 21:36:04 +01:00
Patrick Pelissier
130c32e7d4
Include only sysinfoapi.h on Windows machine to reduce dependency
...
Add fallback to _SC_NPROCESSORS_CONF if _SC_NPROCESSORS_ONLN is not supported (Android)
2023-02-07 23:17:03 +01:00
Patrick Pelissier
2bcaba3bc0
Factorize into smaller macros
2023-02-06 22:17:12 +01:00
Patrick Pelissier
443c805c22
Fix format
2023-02-06 21:28:19 +01:00
Patrick Pelissier
414c87bb69
Rename internal macros
2023-02-05 23:38:29 +01:00
Patrick Pelissier
e9ca506d93
Factorization of macros
2023-02-03 20:53:27 +01:00
Patrick Pelissier
8e58f7d637
Factorize into smaller generation macros. Add emplace support for MPMC/SPSC queues
2023-02-01 20:58:28 +01:00
Patrick Pelissier
254beaf3c7
Factorize into smaller generation macros
2023-02-01 20:43:01 +01:00
Patrick Pelissier
27735eb224
Migrate version of action scripts.
2023-01-29 00:19:22 +01:00
Patrick Pelissier
0afc81bd54
Simplify example by using emplace function.
2023-01-28 14:49:17 +01:00
Patrick Pelissier
39e67eebdc
EMPLACE: Fix expansion of methods as macro in the oplist
...
by performing another evaluation step.
2023-01-28 14:49:07 +01:00
Patrick Pelissier
840226c7fd
TREE: Add documentation of emplace functions
2023-01-28 14:48:58 +01:00
Patrick Pelissier
e421851525
TREE: Add tests for emplace functions
2023-01-28 14:48:50 +01:00
Patrick Pelissier
f70b52c9e4
TREE: Add support for emplace functions
2023-01-28 14:48:12 +01:00
Patrick Pelissier
40249ce5bc
Separate macros into smaller more functionnal ones
2023-01-28 14:48:01 +01:00
Patrick Pelissier
97ff413f01
Maintenance:
...
Separate big macros into several smaller ones
2023-01-22 23:33:13 +01:00
Patrick Pelissier
8e4ac99a35
Separate macro into smaller macros (more maintenable)
2023-01-20 23:45:40 +01:00
Patrick Pelissier
4366e8eeab
Separate macro into smaller macros
...
to ease reading and enable easier customization of generation
2023-01-20 23:45:40 +01:00
Patrick Pelissier
4e5e498bb2
Add new library
2023-01-09 23:35:33 +01:00
Patrick Pelissier
870a6f4b57
Update to 0.7.1
2023-01-02 13:06:29 +01:00
Patrick Pelissier
a2ae209992
Happy new year
2023-01-02 12:57:41 +01:00
Patrick Pelissier
43fdd10e77
Release 0.7.0
2022-12-27 20:01:44 +01:00
Patrick Pelissier
b1183de0f8
Update example to allow more example of promotion.
2022-12-25 23:12:02 +01:00
Patrick Pelissier
3a3ef7454c
Fix conflict issue between INIT_WITH_VAI macro and API transformation.
...
Since both used M_MAP2_C macro, the final expansion was stopped if an
API generic transformation was requested in INIT_WITH_VAI.
Duplicate M_MAP2_C internally for API transformation.
2022-12-24 23:04:42 +01:00
Patrick Pelissier
5f946b728b
Update example to include more integration of the different features
...
(enabling to test more).
2022-12-24 23:03:48 +01:00
Patrick Pelissier
9cc03ff81b
Add macro M_INIT_WITH_THROUGH_EMPLACE_TYPE that provides an INIT_WITH
...
method that scans the different methods provided in EMPLACE_TYPE and
try to search for a matching one.
2022-12-23 11:49:08 +01:00
Patrick Pelissier
89d4db174e
Fix format
2022-12-23 11:48:15 +01:00
Patrick Pelissier
f5bbc0a7fb
Implement multiple kind of workarounds for GCC 12
...
as it produces more false warnings
Include missing header in C++ mode
2022-12-22 20:42:20 +01:00
Patrick Pelissier
9da0d1d94b
Add new internal macro M_TAIL_3
2022-12-22 15:49:10 +01:00
Patrick Pelissier
fafaaafdbf
Avoid warning for M_RET_ARG if there is the exact number of argument.
...
Add internal M_TRIPLE_* macros (TBC)
2022-12-22 14:05:46 +01:00
Patrick Pelissier
38f4107b19
Support of keyptr /valueptr iterator
2022-12-04 23:39:42 +01:00
Patrick Pelissier
cbefdab4bb
Add check of B+TREE map against C++ map
2022-12-04 21:26:20 +01:00
Patrick Pelissier
bcd0c46e8b
Simplify & factorize the instances of the check against C++
2022-11-30 23:56:29 +01:00
Patrick Pelissier
f25bb73e58
Add comparison to C++ unorder_map
2022-11-30 00:30:45 +01:00
Patrick Pelissier
ea3584e048
Rename internal macro to internal namespace
2022-11-29 23:16:55 +01:00
Patrick Pelissier
85473610a4
Update doc
2022-11-22 22:51:40 +01:00
Patrick Pelissier
f9f0b307fc
Provide even shorter example using EMPLACE_TYPE
2022-11-10 13:50:00 +01:00
Patrick Pelissier
d17fa4530b
Update comments
2022-11-05 13:36:57 +01:00
Patrick Pelissier
3806495e2d
Fix spelling
2022-11-04 10:41:38 +01:00
Patrick Pelissier
15f58d5738
Update example comments.
2022-10-23 21:01:44 +02:00
Patrick Pelissier
4de7da1c05
Adding bench for emhash
...
https://github.com/ktprime/emhash
2022-10-15 10:24:18 +02:00
Patrick Pelissier
93229c61f2
Update comments
2022-10-12 23:26:33 +02:00
Patrick Pelissier
3f0e8956b8
Add emplace method for buffer.
2022-10-11 22:47:14 +02:00
Patrick Pelissier
b82670b643
Add emplace support for concurrent.
2022-10-10 23:08:30 +02:00
Patrick Pelissier
64800dbd3f
Use of type from oplist rather than meta name
...
(more coherent)
2022-10-10 23:06:02 +02:00
Patrick Pelissier
2d9d9fbd9f
Remove obsolete macros
2022-10-10 22:54:48 +02:00
Patrick Pelissier
f0ba5d17f4
Rework fuzzer support to be fully generic.
2022-10-10 22:47:43 +02:00
Patrick Pelissier
e51c988222
Add initial support for fuzzing
2022-10-07 23:39:54 +02:00
Patrick Pelissier
0be3900beb
Enable support for external testsuite from stdin
...
instead of pseudo random values.
This will enable to connect it to a fuzzer.
2022-10-07 23:28:12 +02:00
Patrick Pelissier
f60ce0320a
Port to new API version of STC.
2022-10-07 22:47:53 +02:00
Patrick Pelissier
77008b8622
Fix leak of memory in non optimized _safe_get
...
of B+Tree.
2022-10-03 23:07:13 +02:00
Patrick Pelissier
a7617002c5
Update documentation for emplace generation.
2022-10-03 22:54:42 +02:00
Patrick Pelissier
bc73616bde
Add test cases for emplace generation
...
for dict & B+tree
2022-10-03 22:40:44 +02:00
Patrick Pelissier
d6b9b054c2
Fix emplace generation
...
(incorrect value oplist)
2022-10-03 22:34:13 +02:00
Patrick Pelissier
9eed4be97c
Add emplace support for B+Tree
2022-10-03 22:16:50 +02:00
Patrick Pelissier
2519927178
Fix build in case of no MPFR and warnings are treated as errors.
2022-10-02 22:31:50 +02:00
Patrick Pelissier
0fec33b38e
* Add emplace generation for dict/hashmap.
...
(still need more tests).
* Factorize emplace generation for R+TREE/Prioqueue
2022-10-02 22:24:22 +02:00
Patrick Pelissier
dc2b6d2b2d
Fix detection of GMP / MPFR.
2022-10-02 22:16:45 +02:00
Patrick Pelissier
bc63edc595
Fix emplace generation for asso array
2022-10-02 21:41:21 +02:00
Patrick Pelissier
6241a3093c
Factor comments.
2022-10-02 21:35:52 +02:00
Patrick Pelissier
fb53a464d7
Update comments
2022-10-01 20:41:45 +02:00
Patrick Pelissier
aba26b75a2
Fix chapter in documentation
2022-10-01 11:40:23 +02:00
Patrick Pelissier
775ec6f91b
Make M_ASSERT_INDEX more robust
...
in case it is called with a signed integer.
The trick was using x-x to represent 0 so that
the compiler won't complain with the comparaison
x >= 0 when it is called with unsigned number.
2022-10-01 11:38:11 +02:00
Patrick Pelissier
95bc7063a0
Remove some warning with clang:
...
it complains about using a GNU extension
in GNU mode (gnu11)!
2022-10-01 11:36:14 +02:00
Patrick Pelissier
731d3ecf1a
Update error chapter of the documentation
2022-10-01 09:50:38 +02:00
Patrick Pelissier
0d1817e7ca
Add tiny example of no stdio support.
2022-10-01 09:50:24 +02:00
Patrick Pelissier
1a5b428bfb
Fix proper support of no stdio
...
and add macro M_RAISE_FATAL to raise a fatal error
with the default is using stdio.
2022-10-01 09:50:09 +02:00
Patrick Pelissier
bd49e31f3b
Add definition macros for emplace/associative array container.
2022-09-29 23:48:46 +02:00
Patrick Pelissier
2dba83e3c5
Remove M_USE_STDLIB
...
(It wasn't working at all).
2022-09-28 22:16:04 +02:00
Patrick Pelissier
75e9766da9
Fix wrong generation for emplace / value
2022-09-26 23:43:39 +02:00
Patrick Pelissier
d2f8aa1c0d
Update documentation.
2022-09-25 22:15:44 +02:00
Patrick Pelissier
4aa4b7693f
Add M_C5_EMPTY macro
...
Add M_CROSS_MAP2 macro
Add emplace generation for associative array if both key & value are emplace types
Add test cases.
2022-09-25 22:13:51 +02:00
Patrick Pelissier
d50b450927
Update documentation.
2022-09-25 00:36:27 +02:00
Patrick Pelissier
5674cdbfc5
Add new macro M_CROSS_MAP
...
enabling to map a function to each pair
of arguments given two arglists.
2022-09-25 00:30:23 +02:00
Patrick Pelissier
3641829198
M_INC (resp. M_DEC) of M_UNDERFLOW (resp. M_OVERFLOW)
...
will keep the initial error.
2022-09-16 18:46:13 +02:00
Patrick Pelissier
10a759b09e
Add another function for generation
2022-09-15 23:25:42 +02:00
Patrick Pelissier
b5a3b36c1b
* Add M_C3_EMPTY function.
...
* Add WIP generator for emplace functions for associative array. What is missing is the hard part (even what is done cannot be said as easy!) Generation of both N x M functions. It probably needs a new MAP function for this.
2022-09-15 23:25:38 +02:00
Patrick Pelissier
b0c3839f2b
Add serial methods in documentation.
2022-09-15 21:39:17 +02:00
Patrick Pelissier
3aa3e95e4c
Remove constraint of calling string_end_p
...
before string_next or string_get_cref
This generates slighty more code but it is much saner
from user point of view.
2022-09-13 00:18:15 +02:00
Patrick Pelissier
87f1e53e13
Add more basic iteration code generation analysis
2022-09-13 00:03:40 +02:00
Patrick Pelissier
d7b45cc220
Fix issue in string_previous
2022-09-11 23:14:52 +02:00
Patrick Pelissier
d8142a9764
Add precision on documentation.
2022-09-10 16:38:27 +02:00
Patrick Pelissier
8780f58739
Fix description of string_unocde_t
2022-09-10 16:35:38 +02:00
Patrick Pelissier
e352104df8
Update documentation with new function.
2022-09-10 16:30:57 +02:00
Patrick Pelissier
cbb2b452bb
Add string_previous function
...
to iterate on the previous UTF8 code point.
2022-09-10 16:30:45 +02:00
Patrick Pelissier
6e947c6262
Add more corner cases.
2022-09-10 16:21:19 +02:00
Patrick Pelissier
18f04da4ec
Robustness/fix:
...
string_next won't advance if the end of string is reached.
2022-09-10 16:19:58 +02:00
Patrick Pelissier
3dad6ef65c
Update string API description.
2022-09-10 16:16:42 +02:00
Patrick Pelissier
41c4f5fe5c
Add string functions :
...
* string_it_get_pos to return the position in the steam
* string_it_pos to start iterating from a given position.
2022-09-10 16:16:13 +02:00
Patrick Pelissier
cfeedf19f8
Rework to be more compliant (as far as it is possible)
...
to real cases.
2022-09-10 15:56:36 +02:00
Patrick Pelissier
2ab410bd6a
Update comments to reflect that we work
...
on UTF8 code points and not Unicode characters.
2022-09-10 10:39:04 +02:00
Patrick Pelissier
aefbc5b2f5
Factorize the test of the start of an UTF8 code point
...
in a separate function
2022-09-10 10:34:54 +02:00
Patrick Pelissier
abec9c37fa
Clarify API
...
It iterates over UTF-8 code points, not Unicode characters
They can be different (!)
2022-09-10 10:32:34 +02:00
Patrick Pelissier
442b0e7cea
Reduce size of struct string_it_t on 64 bits
...
by storing an offset to the next character
instead of a pointer. An offset can be stored as a
BYTE instead of a PTR since UT-8 can use at most
4 characters per code point.
2022-09-10 09:59:06 +02:00
Patrick Pelissier
0b853c6d52
Fix bug on bitset_resize function in case of increase of size:
...
the first limb may not be cleared properly in some cases.
(Reported by David M. Lary)
2022-09-04 19:27:38 +02:00
Patrick Pelissier
cc7fc66899
Add bitset_ctz function
2022-08-29 19:31:19 +02:00
Patrick Pelissier
6b994c2928
Add m_core_ctz32 & m_core_ctz64 functions
...
(Count trailing zeros)
2022-08-29 19:30:09 +02:00
Patrick Pelissier
e6fe36d3cd
Revert "Perform coverage check by continuous integration tests."
...
as the numbers of lines generated by the generation macros
(which are included in the coverage measure)
through the C preprocessor depend on the exact version
of the C preprocessor.
There is no reliable way to get a measure on it,
except by always targeting the same compiler.
So, this measure of coverage (number of lines)
is not suitable for CIT. Ratio seems also not reliable enough.
This reverts commit f45ededf8b .
2022-08-22 23:53:10 +02:00
Patrick Pelissier
f45ededf8b
Perform coverage check by continuous integration tests.
2022-08-20 23:33:48 +02:00
Patrick Pelissier
ed27bedcb4
Make coverage perfoms a check that the computed coverage is at least
...
not lower than the reference coverage, ensuring no regression
on the coverage of the tests can occur.
NOTE: some tests (m-i-shared) perform some dynamic test cases
where the exact coverage depend on the exact dynamic behavior
of the test. And this behavior is not always reproducible
(for exact the calls to m_core_backoff_wait may not occur
if the threads are not trying to grab the resource at the
exact same time).
As such, the reference of such tests is taken from the worst
case of execution of the coverage (with the lowest number
of lines covered).
2022-08-20 23:29:02 +02:00
Patrick Pelissier
eb1a7a0435
Add more tests for tree
2022-08-19 23:16:42 +02:00
Patrick Pelissier
de00fdc5f7
Update documentation
2022-08-13 23:50:51 +02:00
Patrick Pelissier
8febe12c5c
Make stdlib an optional header
2022-08-09 00:20:32 +02:00
Patrick Pelissier
1368b201eb
Fix warnings in release mode.
2022-08-09 00:19:55 +02:00
Patrick Pelissier
4ca166b0b9
Update examples to remove warnings with assertion disabled.
2022-08-09 00:19:26 +02:00
Patrick Pelissier
c13533cf21
Fix naming
2022-08-08 01:22:05 +02:00
Patrick Pelissier
9fdf0f76e7
Add documentation of generic tree.
2022-08-08 01:20:30 +02:00
Patrick Pelissier
308f513edc
As the allocated array offers write access to the index -1
...
remove if conditions to always access the array even for -1
The term tab[-1] will be filled with no pertinent value, but
we don't care about it.
2022-08-02 23:21:39 +02:00
Patrick Pelissier
900bcc3819
The internal array of the tree always allocates one more term,
...
so that the index -1 in the array exists and can be written.
2022-08-02 23:02:59 +02:00
Patrick Pelissier
b6e0994dfc
Add test case for _init_set with empty tree.
2022-08-02 23:02:33 +02:00
Patrick Pelissier
121339d948
Add _move_* functions for generic tree.
2022-08-01 22:17:26 +02:00
Patrick Pelissier
c5bb84013a
Create _raw methods for insertions.
2022-08-01 22:13:41 +02:00
Patrick Pelissier
65b49268d3
Fix allow_realloc for tree
2022-07-30 16:14:03 +02:00
Patrick Pelissier
ecebd62f86
Update API compatibility documentation due to the _str to _cstr suffix change.
...
Note: the old (& still official) naming for the string functions
is still compatible since we have changed only the new namings (with m_ prefix).
See #99
2022-07-30 12:02:58 +02:00
Patrick Pelissier
6a8c9a703d
Rename string functions as per latests changes
2022-07-30 12:02:32 +02:00
Patrick Pelissier
ad05ae9aa5
Rename the string _suffix for Bounded Strings from _str to _cstr
...
See #99
2022-07-30 12:01:36 +02:00
Patrick Pelissier
abffe201e5
Change the suffix of the functions dealing with C-String to _cstr
...
instead of _str.
See #99 for details.
2022-07-30 12:00:55 +02:00
Patrick Pelissier
ee2bc27bda
Fix issue in serial-bin
...
Note: this is a classic c error, so it may be interresting to discover
why the static analysis tools didn't report this error.
2022-07-30 04:40:09 +02:00
Patrick Pelissier
14b94865b7
Starting document tree.
2022-07-28 23:25:57 +02:00
Patrick Pelissier
6e1ceafcc2
Add more tests for tree.
2022-07-28 23:22:07 +02:00
Patrick Pelissier
58746560e9
Add comment
2022-07-28 23:21:54 +02:00
Patrick Pelissier
082adca3e6
Add test case
2022-07-27 23:48:59 +02:00
Patrick Pelissier
ee1dc2a8e8
Fix issue in _graft_child
2022-07-27 23:48:40 +02:00
Patrick Pelissier
92e2d835bd
Add more generic random tests
2022-07-26 23:12:41 +02:00
Patrick Pelissier
22aba04b47
Activate optimisation for coverage
2022-07-26 23:12:19 +02:00
Patrick Pelissier
399c615915
Fix issue in unlink
2022-07-26 23:04:15 +02:00
Patrick Pelissier
cbdba0941a
Adding more test cases
2022-07-26 22:49:07 +02:00
Patrick Pelissier
90c54a48d0
Remove uneeded test
2022-07-26 22:48:47 +02:00
Patrick Pelissier
22b18830f7
Improve test suite by performing no op swap operation randomly
2022-07-24 21:12:59 +02:00
Patrick Pelissier
dab085e3a7
Fix other issue
2022-07-24 21:11:08 +02:00
Patrick Pelissier
66fac10a98
Fix corner case
2022-07-24 21:09:35 +02:00
Patrick Pelissier
e5fb5ddde1
Fix some issues in insertion
2022-07-24 20:40:31 +02:00
Patrick Pelissier
dcf20fbbd6
Add some tests for swap_at
2022-07-24 00:48:18 +02:00
Patrick Pelissier
5d659877fe
Fix some bugs in the swap of node in a tree
2022-07-24 00:47:43 +02:00
Patrick Pelissier
a30dd69aaa
Add more tests for tree
2022-07-18 23:42:25 +02:00
Patrick Pelissier
b1f698bb7b
Fix tree _prune function
2022-07-18 23:42:13 +02:00
Patrick Pelissier
2323420a87
Add more test cases
2022-07-15 17:23:56 +02:00
Patrick Pelissier
7e120a3615
Add missing assertions
2022-07-15 16:54:51 +02:00
Patrick Pelissier
804db294ca
Update test suite
2022-07-15 16:48:54 +02:00
Patrick Pelissier
d12aa6c263
Don't expand tree contract for coverage
2022-07-15 00:32:26 +02:00
Patrick Pelissier
d59e87d2bf
Adding tests for OUT_STR/IN_STR
2022-07-07 22:21:29 +02:00
Patrick Pelissier
8f3c0af548
Add OUT_STR & IN_STR methods for tree
2022-07-07 22:21:14 +02:00
Patrick Pelissier
1f3013c445
Adding more corner cases
2022-07-07 22:10:00 +02:00
Patrick Pelissier
f13e99ab1a
Add coverage computation for tree
2022-07-07 22:09:51 +02:00
Patrick Pelissier
fb8ad84675
Add more tests
2022-07-05 22:46:24 +02:00
Patrick Pelissier
12608afe10
Fix issue in comparing tree
2022-07-05 22:46:13 +02:00
Patrick Pelissier
f97e92b4cb
Complement basic tests
2022-07-04 20:47:53 +02:00
Patrick Pelissier
a74e26e3de
Add random generated insertion in a tree
2022-07-04 20:38:51 +02:00
Patrick Pelissier
a30b783692
First basic test of tree container
2022-06-28 23:28:45 +02:00
Patrick Pelissier
e64a6a22e7
Fix issues in tree
2022-06-28 23:28:09 +02:00
Patrick Pelissier
76892afa13
Fix some warnings.
2022-06-27 23:35:05 +02:00
Patrick Pelissier
dcb1eb0d94
First version of IO for the tree container
2022-06-25 17:29:04 +02:00
Patrick Pelissier
950ea224ff
Adding untested classic functions for tree (_init_set, _set, _equal, _hash, ...)
2022-06-18 15:26:19 +02:00
Patrick Pelissier
b22a844007
update doc
2022-06-17 22:56:37 +02:00
Patrick Pelissier
502756c731
Simplify the control flow to count for utf8 encoded characters
2022-06-16 23:58:23 +02:00
Patrick Pelissier
e38dc19ea1
Add current restriction on worker_spawn
2022-06-15 00:55:41 +02:00
Patrick Pelissier
2bebb2b4a1
Update example with new tree functions
2022-06-13 23:21:06 +02:00
Patrick Pelissier
5b7be93c1a
Update tree:
...
* fix swap and add an additional argument to swap or not the child
* add sort functions for the children of a nodes
2022-06-13 23:21:06 +02:00
Patrick Pelissier
d04270ae3f
Proper use of API transformation for CMP operator in tuples
2022-06-13 23:21:06 +02:00
Patrick Pelissier
1bef7c1977
Fix formatting
2022-06-13 23:21:06 +02:00
Patrick Pelissier
ae037ff7af
Fix location of library in makefile
2022-06-13 22:12:56 +02:00
Patrick Pelissier
a4267d60df
Add usage of emplace with tuple
2022-06-04 23:44:22 +02:00
Patrick Pelissier
47e32ab2b3
Add support for EMPLACE_TYPE in TUPLE generations.
...
As a consequence, the oplist arguments for TUPLE_OPLIST
are much more rigorous. It shall really be the real oplists
of the types used to create the tuple, otherwise a compilation
error may be generated.
2022-06-04 23:41:18 +02:00
Patrick Pelissier
5ac08e42d8
Adding const for the type generation in emplace
2022-06-04 23:40:36 +02:00
Patrick Pelissier
9c59684b61
Fix the OPLIST args of TUPLE_OPLIST so that the given oplists match the types used for the definition of the tuple
2022-06-04 23:34:46 +02:00
Patrick Pelissier
f26e1e5a12
Fix issue in case of recursive call of INIT_WITH with conditionnal INIT_WITH
2022-06-04 23:27:13 +02:00
Patrick Pelissier
1cde4633e6
Adding more corner cases
2022-06-04 23:26:03 +02:00
Patrick Pelissier
1393f8e9aa
Update comments
2022-06-04 16:03:06 +02:00
Patrick Pelissier
bfffa1d245
Update comments & naming
2022-06-04 16:02:58 +02:00
Patrick Pelissier
3a6b568ccc
Update example to count the number of lines
2022-06-04 14:55:32 +02:00
Patrick Pelissier
453a920af8
Add methods to scan in post-order a sub-tree
2022-06-04 14:54:51 +02:00
Patrick Pelissier
1fd86ffc2e
Update & fix
2022-06-03 22:59:55 +02:00
Patrick Pelissier
96a0639a8a
Add more functions for TREE
2022-06-03 21:43:33 +02:00
Patrick Pelissier
c12d0a3f23
Update comments
2022-06-03 21:43:15 +02:00
Patrick Pelissier
cac8790405
Start working on example with generic tree
2022-06-01 19:52:28 +02:00
Patrick Pelissier
ccd9726e01
Fix some warnings / errors
2022-06-01 19:51:50 +02:00
Patrick Pelissier
5516b50b3a
Add WIP / untested generic tree datastructure
2022-05-31 23:00:19 +02:00
Patrick Pelissier
b5a3e010d8
Add {} for if
2022-05-26 22:13:24 +02:00
Patrick Pelissier
2d7d267252
Update doc
2022-05-26 18:33:43 +02:00
Patrick Pelissier
bd5d7aaada
Fix wrong prototype in docs
2022-05-24 23:58:20 +02:00
Patrick Pelissier
18b6be8e00
Update doc
2022-05-24 23:56:34 +02:00
Patrick Pelissier
958abfef93
Make INIT_SET operator optional
2022-05-24 23:30:14 +02:00
Patrick Pelissier
198be1062b
Update doc
2022-05-24 23:25:37 +02:00
Patrick Pelissier
0cfee02641
Make INIT operator optional
2022-05-24 23:22:36 +02:00
Patrick Pelissier
48dc38508a
Factorize the documentation by using the generic interface (WIP)
2022-05-23 23:49:57 +02:00
Patrick Pelissier
e763204bf7
Fix example
2022-05-22 22:54:25 +02:00
Patrick Pelissier
370baf56ab
Factorize the documentation by using the generic interface (WIP)
2022-05-22 00:22:36 +02:00
Patrick Pelissier
4fd6bcbf99
Factorize the documentation by using the generic interface (WIP)
2022-05-19 22:41:19 +02:00
Patrick Pelissier
59d1e23dea
Factorize the documentation by using the generic interface (WIP)
2022-05-19 22:28:53 +02:00
Patrick Pelissier
cb173f2f81
Update doc
2022-05-19 21:45:16 +02:00
Patrick Pelissier
d047174c2f
Update doc
2022-05-19 21:43:42 +02:00
Patrick Pelissier
df25159d03
Add generic interface chapter & start factorizing duplicate specification
2022-05-19 00:30:47 +02:00
Patrick Pelissier
99618a687e
Update doc
2022-05-19 00:00:36 +02:00
Patrick Pelissier
a1b226e185
Update doc
2022-05-16 23:37:04 +02:00
Patrick Pelissier
e93df4332a
Fix issue for 16 bits architecture
2022-05-14 09:16:41 +02:00
Patrick Pelissier
5a1f768b03
Update comment about lock-free property
2022-05-14 09:16:41 +02:00
Patrick Pelissier
e854bc8fc9
Remove warning in C++ mode for using C++ class
2022-05-12 00:00:10 +02:00
Patrick Pelissier
9ab958708d
Update doc:
...
clarify operators
2022-05-11 23:26:36 +02:00
Patrick Pelissier
85ea92d83b
Review of m-core.h
...
* Add control of MSVC preprocessor
* Add comments
* Remove useless evaluation pass
* Rewrite some evaluation pass to be faster.
2022-05-11 21:38:47 +02:00
Patrick Pelissier
22a406ac51
Add new test case (M_MAP + M_SEQ)
2022-05-11 21:38:47 +02:00
Patrick Pelissier
58eed79413
Register the oplist associated to unsigned
2022-05-04 22:25:15 +02:00
Patrick Pelissier
e83dea8212
Fix warnings for Visual C++
2022-05-10 23:49:20 +02:00
Patrick Pelissier
c829827f48
Fix warnings for Visual C++
2022-05-10 23:34:48 +02:00
Patrick Pelissier
b47cf05a59
Update doc
2022-05-10 23:14:47 +02:00
Patrick Pelissier
22a93514ff
Add EMPLACE test for priority queue
2022-05-10 23:10:58 +02:00
Patrick Pelissier
154865f0f1
Add EMPLACE support for priority queue
2022-05-10 23:10:44 +02:00
Patrick Pelissier
71151770fd
Fix wrong type
2022-05-09 22:55:57 +02:00
Patrick Pelissier
72623ce13e
Adding test cases for I/O methods
2022-05-09 22:52:28 +02:00
Patrick Pelissier
94f20d56e9
Adding OUT_STR / IN_STR / PARSE_STR / GET_STR / IN_SERIAL / OUT_SERIAL methods
2022-05-09 22:51:46 +02:00
Patrick Pelissier
9e8ad9bfd9
Fix format
2022-05-09 22:48:56 +02:00
Patrick Pelissier
e51a5be776
Add check of prioqueue against STL C++
2022-05-09 22:25:09 +02:00
Patrick Pelissier
7d647340c6
Update
2022-05-09 22:24:48 +02:00
Patrick Pelissier
c6ea3c0616
Fix spelling
2022-05-09 20:16:33 +02:00
Patrick Pelissier
9ab90be6d4
Add check of B+Tree / Set
2022-05-09 20:12:55 +02:00
Patrick Pelissier
10440320d1
Remove IT_REF from exported oplist as the items shall appear as not modifiable by algorithms
2022-05-09 20:12:39 +02:00
Patrick Pelissier
fc7e93403a
Update copyright year
2022-05-09 20:06:05 +02:00
Patrick Pelissier
b0c4418584
Fix M_ALGO_EXTRACT: the source oplist wasn't transformed into a global one.
2022-05-09 20:03:26 +02:00
Patrick Pelissier
5f73eb7788
Add test for support C++ class in M*LIB
2022-05-06 23:08:27 +02:00
Patrick Pelissier
a554312573
Update doc
2022-05-06 23:07:10 +02:00
Patrick Pelissier
8a1fd391d1
Fix reverse issue
2022-05-06 01:27:34 +02:00
Patrick Pelissier
95b104ee48
Issue in generation of functions:
...
if the method in the oplist uses API_* transformation,
if this method is a macro itself,
it may delay the expansion too much and
the macro may not be expanded at all in the final code generation.
Fix issue by adding a supplementary evaluation in the macro expansion.
Add test cases
2022-05-06 01:10:31 +02:00
Patrick Pelissier
c3df69d011
Add tests for generic API + macros
2022-05-04 22:16:01 +02:00
Patrick Pelissier
73468a3e24
Update doc
2022-05-02 23:15:58 +02:00
Patrick Pelissier
f254f98e42
Update doc
2022-05-02 21:40:49 +02:00
Patrick Pelissier
d37076dd37
Update comments
2022-05-02 21:11:12 +02:00
Patrick Pelissier
5ef9376148
Improve example (adding ADD/SUB/MUL/DIV operators
2022-04-29 19:55:29 +02:00
Patrick Pelissier
d8abda7583
Fix issue (implicit const cast)
2022-04-29 19:55:02 +02:00
Patrick Pelissier
892c755389
Improve example to show emplace support
2022-04-28 23:10:57 +02:00
Patrick Pelissier
aba2f90c9d
Add test for emplace generation for variant
2022-04-28 23:10:40 +02:00
Patrick Pelissier
dc487c7e64
Add support for EMPLACE_TYPE for variant
2022-04-28 23:10:27 +02:00
Patrick Pelissier
18b1bd9518
Fix makefile if MPFR not found
2022-04-28 23:06:41 +02:00
Patrick Pelissier
845ab1fef0
Update comment
2022-04-28 23:03:04 +02:00
Patrick Pelissier
94bfac3f75
Improve example by adding also mpfr
2022-04-28 22:22:05 +02:00
Patrick Pelissier
bd5c9ce2a7
Add MPFR detection
2022-04-28 22:10:36 +02:00
Patrick Pelissier
f5934a6274
Add emplace type example
2022-04-27 21:57:28 +02:00
Patrick Pelissier
c6f71fddc7
Add test for stable_sort
2022-04-26 21:35:51 +02:00
Patrick Pelissier
74764e2d6f
Fix issues in stable_sort: wrong assertion & missing init_move
2022-04-26 21:35:51 +02:00
Patrick Pelissier
9b00a8c54e
Update documentation
2022-04-25 22:10:19 +02:00
Patrick Pelissier
66735e99c3
Add check sanitize to Continuous Integration
2022-04-23 10:40:39 +02:00
Patrick Pelissier
80acbb4343
Ensure proper order of commands in case of parallelism
2022-04-23 10:37:42 +02:00
Patrick Pelissier
2fb912d43d
Should remove warning with Visual C++
2022-04-23 10:34:54 +02:00
Patrick Pelissier
8c8dc6de7c
Add new example
2022-04-23 10:21:46 +02:00
Patrick Pelissier
677acdd14e
Use of new M_INIT_EMPLACE_VAI macro
2022-04-23 10:21:33 +02:00
Patrick Pelissier
6caeea98b9
Add M_INIT_EMPLACE_VAI macro for INIT_WITH containers with emplace support
2022-04-23 10:21:17 +02:00
Patrick Pelissier
c5d37ce028
Update comments
2022-04-23 10:03:51 +02:00
Patrick Pelissier
112b405df6
Reformat
2022-04-23 10:01:39 +02:00
Patrick Pelissier
47385d58e5
Update documentation with new generated functions
2022-04-23 09:20:11 +02:00
Patrick Pelissier
c8275c8f63
Add test cases for generated emplace functions
2022-04-23 09:19:58 +02:00
Patrick Pelissier
0c1e888a78
Add emplace generation for RB Tree
2022-04-23 09:19:42 +02:00
Patrick Pelissier
6a1ff3e080
Add emplace generation for oplist with CMP operator
2022-04-23 09:18:20 +02:00
Patrick Pelissier
6d41eba5ed
Update documentation for emplace functions
2022-04-22 22:51:45 +02:00
Patrick Pelissier
c0abcc6d60
Add tests for new emplace functions
2022-04-22 22:51:36 +02:00
Patrick Pelissier
da71c81195
Add emplace functions for list / deque
2022-04-22 22:51:17 +02:00
Patrick Pelissier
8e0d17e85c
Add test for emplace string_t from const char *
2022-04-21 23:11:24 +02:00
Patrick Pelissier
6d98c273c1
Add EMPLACE_TYPE from const char *
2022-04-21 23:11:11 +02:00
Patrick Pelissier
85f6ff34aa
Add test cases for generated emplace functions
2022-04-20 22:43:12 +02:00
Patrick Pelissier
759c24be63
Add request for generation for emplace functions
2022-04-20 22:43:12 +02:00
Patrick Pelissier
d85955ef60
Add generation of emplace functions
2022-04-20 22:43:12 +02:00
Patrick Pelissier
3a53044198
Add M_EMPLACE macros to enables generic generation of EMPLACE functions
2022-04-20 22:43:12 +02:00
Patrick Pelissier
4d5cd9c635
Code generation shows no difference between && or & for simple & typical OOR values
...
So let's use the logical comparaison which is clearer.
2022-04-19 22:07:01 +02:00
Patrick Pelissier
57b88160ae
Add asm generation for typical OOR_EQUAL_P functions
2022-04-19 20:57:03 +02:00
Patrick Pelissier
33ba602aef
Reformat
2022-04-18 22:10:32 +02:00
Patrick Pelissier
3632388315
Reorder macros to group then by logical entity. Remove M_INVERT obsolete macro
2022-04-18 21:22:45 +02:00
Patrick Pelissier
6ee82e885b
Update comments
2022-04-18 11:09:12 +02:00
Patrick Pelissier
2f92cee416
Update code for generated asm analysis
2022-04-18 11:08:59 +02:00
Patrick Pelissier
9269473e10
Remove M_APPLY_SIZEOF
2022-04-18 10:04:11 +02:00
Patrick Pelissier
c8611ce708
Update comments
2022-04-18 09:44:13 +02:00
Patrick Pelissier
d8fd43e9e9
Update comments & avoid using M_ID for internal macros
2022-04-18 09:41:43 +02:00
Patrick Pelissier
a2e471620d
Add support for '_' meta keyword
2022-04-18 09:24:32 +02:00
Patrick Pelissier
ffa3821acf
Add tests for M_KEYWORD_TO_VA_ARGS
2022-04-17 19:01:32 +02:00
Patrick Pelissier
5c98d47d8c
Add M_KEYWORD_TO_VA_ARGS
2022-04-17 19:01:21 +02:00
Patrick Pelissier
0875eaac03
Add more tests
2022-04-17 18:51:27 +02:00
Patrick Pelissier
60734bdb2b
Avoid using M_ID / M_OPFLAT in context where it could be used recursively
2022-04-15 23:44:07 +02:00
Patrick Pelissier
e71b19424b
Simplify definition of M_EMPTY_P & M_PARENTHESIS_P
2022-04-14 23:50:40 +02:00
Patrick Pelissier
daac0169d5
Reformat
2022-04-14 23:47:11 +02:00
Patrick Pelissier
baacc0df52
Add test cases for M_AND, M_OR, M_AND3 & M_OR3
2022-04-13 22:49:01 +02:00
Patrick Pelissier
c6921536f7
Add M_AND3 & M_OR3 macros
2022-04-13 22:48:40 +02:00
Patrick Pelissier
4abf0ad2b2
Simplify code
2022-04-11 22:34:08 +02:00
Patrick Pelissier
379d555d35
Remove M_IF_DEFAULT1 from documentation
2022-04-10 23:12:32 +02:00
Patrick Pelissier
8c01acb8d2
Remove M_IF_DEFAULT1 (bad interface).
...
Fix warning in M_DEFAULT_ARGS in some cases.
2022-04-10 23:10:58 +02:00
Patrick Pelissier
2c2c3c21ba
Add test for string_search in C11
2022-04-10 23:09:50 +02:00
Patrick Pelissier
50fd27e07b
Use of M_DEFAULT_ARGS instead of M_IF_DEFAULT1
2022-04-10 23:09:29 +02:00
Patrick Pelissier
3309035814
Reducing preprocessing time for ALGO_FOR_EACH ALGO_TRANSFORM ALGO_EXTRACT
2022-04-10 11:28:12 +02:00
Patrick Pelissier
b691758fa9
Update comments
2022-04-10 11:10:01 +02:00
Patrick Pelissier
7c9afcec8b
Update vocabulary
2022-04-09 16:31:57 +02:00
Patrick Pelissier
06ac05526a
Update doc
2022-04-09 09:02:26 +02:00
Patrick Pelissier
69cef8249a
Update comments and move section
2022-04-09 00:11:51 +02:00
Patrick Pelissier
473df16a5a
Update description & assertion of HASH functions
2022-04-08 23:38:33 +02:00
Patrick Pelissier
e1abf0528c
Rename M_DEFAULT_OPLIST in M_BASIC_OPLIST (cleaner name)
2022-04-08 22:54:29 +02:00
Patrick Pelissier
ef0b335f67
Rename M_CHECK_DEFAULT_TYPE in M_CHECK_BASIC_TYPE, and makes it more stricter in C11. Start separating default macros from basic macros (that perform control & check)
2022-04-08 20:57:06 +02:00
Patrick Pelissier
1a866a3dc4
Update README
2022-04-08 20:55:35 +02:00
Patrick Pelissier
ed437b9e05
Document SPMC & MPMC snapshots
2022-04-03 19:14:42 +02:00
Patrick Pelissier
eea85872fd
Simplify code
2022-04-03 19:14:25 +02:00
Patrick Pelissier
9d33e4cd5a
Update name of library
2022-04-01 23:47:53 +02:00
Patrick Pelissier
530cc8d2a2
Update comments
2022-03-31 22:16:10 +02:00
Patrick Pelissier
9baca84825
Add operator EMPLACE_TYPE, to be used by future emplace methods
2022-03-30 23:11:07 +02:00
Patrick Pelissier
58538e4822
Fix spelling
2022-03-28 23:27:57 +02:00
Patrick Pelissier
e31a8dc407
Update benchmark with new available specialized function
2022-03-26 16:09:25 +01:00
Patrick Pelissier
7875263092
Update documentation
2022-03-26 16:09:02 +01:00
Patrick Pelissier
de3b8509bf
Add tests for m_string_set_si & m_string_set_ui
2022-03-26 16:08:51 +01:00
Patrick Pelissier
a19e1acfff
Add function m_string_set_si & m_string_set_ui for converting an integer into a string.
2022-03-26 16:08:28 +01:00
Patrick Pelissier
e613b5c624
Proper define of NDEBUG to avoid adding assertions in string benchmarks
2022-03-25 22:45:08 +01:00
Patrick Pelissier
ccfddb0685
Update LIBSRT to be the source/build directory
2022-03-25 22:37:23 +01:00
Patrick Pelissier
b8cd679679
Move generating macro into the m_ namespace and create a wrapper using historical names for compatibility with existing code
2022-03-24 20:46:49 +01:00
Patrick Pelissier
fc26e472ab
Move bitset functions to M* namespace
2022-03-23 22:39:18 +01:00
Patrick Pelissier
fc8c7349d6
Reformat
2022-03-23 21:35:22 +01:00
Patrick Pelissier
a4d9b8df17
Moving internal types to internal namespace
2022-03-22 23:37:35 +01:00
Patrick Pelissier
f26da68aa4
Fix regression for C++ / CLANG
2022-03-21 23:27:37 +01:00
Patrick Pelissier
144182b540
Move the worker functions into the m_ namespace and create compatibility layer
2022-03-21 23:15:14 +01:00
Patrick Pelissier
a834ca4921
Add missing public function
2022-03-21 23:13:34 +01:00
Patrick Pelissier
d1fc216836
Move internal type to internal namespace
2022-03-20 19:02:01 +01:00
Patrick Pelissier
5e57338928
Rename string_ into m_string_ in header files (Test files still test classic API)
2022-03-20 18:30:32 +01:00
Patrick Pelissier
f3376b6f0e
Move internal functions to internal namespace
2022-03-20 11:50:05 +01:00
Patrick Pelissier
5e001fdd9d
Move internal type to correct internal namespace
2022-03-19 17:01:20 +01:00
Patrick Pelissier
9fda06276c
Move m_once_t to the public interface
2022-03-19 16:44:40 +01:00
Patrick Pelissier
df79c306d9
Move the internal types toye the internal namespace
2022-03-19 16:44:18 +01:00
Patrick Pelissier
e4955e6851
Move internal types to the internal namespace
2022-03-19 16:43:55 +01:00
Patrick Pelissier
0fec9e7ac4
Fix format
2022-03-19 11:46:28 +01:00
Patrick Pelissier
5be8bb435b
Move WORKER_OPLIST to internal namespace
2022-03-19 11:44:58 +01:00
Patrick Pelissier
35b915ab10
Rename internal functions/types to the internal prefix
2022-03-19 10:47:27 +01:00
Patrick Pelissier
80c57e996d
Add pottery string in bench
2022-03-19 08:32:10 +01:00
Patrick Pelissier
511293d580
Provide example of hash function
2022-03-17 23:03:04 +01:00
Patrick Pelissier
fe2b816447
Add more example in C11 for showing more possibility
2022-03-17 19:37:12 +01:00
Patrick Pelissier
093b7dc1e8
Update example with new possibility & state of the art
2022-03-17 19:34:18 +01:00
Patrick Pelissier
811fa57cbc
Fix generic API: remove the need of superfluous ()
2022-03-17 19:33:46 +01:00
Patrick Pelissier
359ad20a6a
Update documentation with generic API transformation
2022-03-16 22:44:19 +01:00
Patrick Pelissier
ac9989e4ff
Add generic API transformation
...
in the framework responsible of expanding
the call to a method from an operator.
The generic API transformation can
support a wide range of call
(Limited to 9 arguments maximum)
2022-03-16 22:29:57 +01:00
Patrick Pelissier
7268551737
Add micro utilities macros for handling list
2022-03-16 22:29:56 +01:00
Patrick Pelissier
823b1974bb
Update comments
2022-03-16 22:29:56 +01:00
Patrick Pelissier
382f636206
Fix build issue of bench
2022-03-16 22:27:37 +01:00
Patrick Pelissier
9a1b4abcf9
Add missing small names
2022-03-15 19:29:18 +01:00
Patrick Pelissier
a0fc57687b
Fix format
2022-03-15 19:24:53 +01:00
Patrick Pelissier
02897f982f
Add m_ prefix for the string API
2022-03-15 19:24:14 +01:00
Patrick Pelissier
07a5d0ed0a
Define M_USE_SMALL_NAME user macro
2022-03-15 19:04:45 +01:00
Patrick Pelissier
017995ade6
Update README
2022-03-14 22:13:04 +01:00
Patrick Pelissier
9711b2280c
Reorder the list of libraries in alphabetic order
2022-03-14 19:33:36 +01:00
Patrick Pelissier
619331916f
Add reference to STR & POTTERY string libraries
2022-03-14 19:32:46 +01:00
Patrick Pelissier
d7909f7312
Move internal function / macros with the m_string prefix to the internal m_str1ng prefix
2022-03-14 19:29:33 +01:00
Patrick Pelissier
22674f2b46
Fix format
2022-03-14 19:28:49 +01:00
Patrick Pelissier
845736c489
Fix format
2022-03-14 19:28:23 +01:00
Patrick Pelissier
501f9db465
Add bench of big dict for pottery
2022-03-14 19:08:27 +01:00
Patrick Pelissier
8dd440a582
Add note about the string_t format
2022-03-13 22:48:08 +01:00
Patrick Pelissier
dd7f090b4b
Add bench for POTTERY
2022-03-13 21:56:49 +01:00
Patrick Pelissier
dc14a2677b
Reformat & cleanup error messages
2022-03-13 21:10:07 +01:00
Patrick Pelissier
8b1ed7f0ae
Fix help usage
2022-03-13 21:09:46 +01:00
Patrick Pelissier
19b01b404d
Migrate to 2022
2022-03-12 20:25:45 +01:00
Patrick Pelissier
ec780d2d4d
Add POTTERY library reference
2022-03-12 20:20:45 +01:00
Patrick Pelissier
07790f6711
Add CPU information for MacOS
2022-03-12 20:09:59 +01:00
Patrick Pelissier
f72d2b6c67
Add STC bench
2022-03-12 12:04:49 +01:00
Patrick Pelissier
e35d631012
Fix path of MS Visual Studio 2022
2022-03-12 11:59:06 +01:00
Patrick Pelissier
3499a08207
Add support for MS Visual Studio 2022
2022-03-12 11:51:27 +01:00
Patrick Pelissier
0ac23e512e
Fix CTL bench
2022-03-12 11:40:38 +01:00
PpHd
1852fabcd2
Merge pull request #98
...
Fix a few typos
2021-12-23 17:48:04 +01:00
Tim Gates
7b6bfac7cb
docs: Fix a few typos
...
There are small typos in:
- example/ex-algo03.c
- m-algo.h
- m-core.h
- m-dict.h
- m-string.h
Fixes:
- Should read `occurrence` rather than `occurence`.
- Should read `fulfilled` rather than `fullfilled`.
- Should read `dictionaries` rather than `dictionnaries`.
- Should read `environment` rather than `environement`.
- Should read `unordered` rather than `undordered`.
2021-12-23 10:00:44 +11:00
Patrick Pelissier
e72aa5fb79
Update doc
2021-12-03 22:59:33 +01:00
Patrick Pelissier
f4b02b92cc
Update documentation
2021-12-03 22:48:43 +01:00
Patrick Pelissier
39edcc560f
Fix name of variable
2021-12-03 22:28:44 +01:00
Patrick Pelissier
50669a320c
Add m_ prefix for GENINT module,
...
as it is purely internal (no need to prevent user space breakage).
It will put more stuff in the global m_ prefix
2021-12-03 22:08:15 +01:00
Patrick Pelissier
d22c0b05ef
Display CPU information
2021-12-03 21:50:36 +01:00
Patrick Pelissier
689be30803
Update README with an implicit constraint
2021-12-03 21:40:09 +01:00
Patrick Pelissier
b393a83d38
Add example of JSON serialization on string
2021-12-03 21:39:41 +01:00
Patrick Pelissier
1a1339da6b
Remove deprecated features
2021-11-20 13:05:50 +01:00
Patrick Pelissier
9926b51da0
Revert 829c20ba8 as there is an issue in calling M_KEYWORD_P within M_IF.
2021-11-20 10:15:31 +01:00
Patrick Pelissier
761447dea3
V0.6.1
2021-11-13 19:51:32 +01:00
Patrick Pelissier
829c20ba8a
Update M_KEYWORD_P to support () . Add more recognized keywords (type, list, LIST, queue, QUEUE, INIT_WITH)
2021-11-13 19:51:23 +01:00
Patrick Pelissier
9ac734e191
Fix documentation
2021-11-12 20:03:36 +01:00
Patrick Pelissier
5420fc6c51
Fix documentation
2021-11-12 20:02:07 +01:00
Patrick Pelissier
62c8ac3e5d
V0.6.0
2021-11-11 19:59:19 +01:00
Patrick Pelissier
1d7e93251c
Fix overflow of one element in deque _remove
2021-11-11 19:59:19 +01:00
Patrick Pelissier
92fa4691d1
Add comment about the non presence of _it_remove
2021-11-09 21:20:16 +01:00
Patrick Pelissier
a20fdf4713
Update documentation
2021-11-06 23:21:16 +01:00
Patrick Pelissier
570dedf1c3
Factorize _size & _empty_p for both dict
2021-11-06 13:54:17 +01:00
Patrick Pelissier
59e5c873ad
Factorize _equal_p for both dict
2021-11-06 13:45:27 +01:00
Patrick Pelissier
8dbcdf9991
Uniformize field name between classic dict & OA dict
2021-11-06 13:38:49 +01:00
Patrick Pelissier
cd43b50068
Fix name of method
2021-11-06 13:38:29 +01:00
Patrick Pelissier
c0413a26f9
Add more example
2021-11-03 21:21:56 +01:00
Patrick Pelissier
b2d3d86e0c
Add alternative macro M_TEST_METHOD_ALTER_P
2021-11-03 20:54:03 +01:00
Patrick Pelissier
bc7552f4a8
Update container summary
2021-11-03 20:53:31 +01:00
Patrick Pelissier
28ae13092f
Workaround for MacOs special make
2021-11-02 18:42:41 +01:00
Patrick Pelissier
1f561da43f
Add doc for deque _remove
2021-11-02 18:35:09 +01:00
Patrick Pelissier
ef8dcda196
Add tests for deque _remove
2021-11-02 18:32:26 +01:00
Patrick Pelissier
cf9eb892cf
Update & finish deque _remove algorithm
2021-11-02 18:32:14 +01:00
Patrick Pelissier
ffa1e2e59c
Add WIP deque_remove method
2021-11-02 08:43:42 +01:00
Patrick Pelissier
9549e82b04
Remove launch of check-stl on MacOS as sanitizer=leak is not supported by clang on this system
2021-10-31 00:29:43 +02:00
Patrick Pelissier
50261e390e
Update forgotten rename
2021-10-31 00:14:10 +02:00
Patrick Pelissier
618fc99cda
Update Continuous Integration
2021-10-31 00:12:01 +02:00
Patrick Pelissier
a9fc7e15f8
Rename GET_SET_KEY operator in SAFE_GET_KEY operator
2021-10-30 23:57:50 +02:00
Patrick Pelissier
6b064870f5
Rename CLEAN operator in RESET operator
2021-10-30 23:26:27 +02:00
Patrick Pelissier
d78c50be3b
Add new files in Makefile
2021-10-30 00:29:53 +02:00
Patrick Pelissier
c96cea5a13
Port the examples to rename _get_at to _safe_get
2021-10-30 00:17:15 +02:00
Patrick Pelissier
51d4e930f5
Rename the suffix _get_at to the _safe_get suffix
...
(Better & clearer naming of the function)
2021-10-30 00:04:07 +02:00
Patrick Pelissier
e650addfe4
Replace _clean into _reset (Fix issues for C11 build)
2021-10-28 18:42:15 +02:00
Patrick Pelissier
30afcb45d8
Replace _clean into _reset
2021-10-28 18:32:53 +02:00
Patrick Pelissier
e10c3586a3
Rename BITSET & CONCURRENT _clean in _reset to avoid confusing _clean & _clear functions. See #97
2021-10-28 18:13:00 +02:00
Patrick Pelissier
836d892832
Rename BUFFER, I-LIST, PRIOQUEUE & SHARED _clean in _reset to avoid confusing _clean & _clear functions. See #97
2021-10-28 18:08:07 +02:00
Patrick Pelissier
826d251ffe
Rename RBTREE & BPTREE _clean in _reset to avoid confusing _clean & _clear functions. See #97
2021-10-28 17:55:54 +02:00
Patrick Pelissier
510cd062ba
Rename DICT, TUPLE & VARIANT _clean in _reset to avoid confusing _clean & _clear functions. See #97
2021-10-28 17:51:17 +02:00
Patrick Pelissier
2695cd6f3e
Rename DEQUE _clean in _reset to avoid confusing _clean & _clear functions. See #97
2021-10-28 17:40:56 +02:00
Patrick Pelissier
f6e3cbbb65
Rename LIST _clean in _reset to avoid confusing _clean & _clear functions. See #97
2021-10-28 17:38:18 +02:00
Patrick Pelissier
f172bbaad2
Rename ARRAY _clean in _reset to avoid confusing _clean & _clear functions. See #97
2021-10-28 17:32:02 +02:00
Patrick Pelissier
9176953a8e
Rename string_clean in string_reset to avoid confusing _clean & _clear functions. See #97
2021-10-28 17:27:41 +02:00
Patrick Pelissier
ae6b87d646
Optimization in case of small constant strings
2021-10-24 21:48:02 +02:00
Patrick Pelissier
f719b2387a
Remove file
2021-10-14 21:28:26 +02:00
Patrick Pelissier
5bfa8321d0
Add check dict-set against STL
2021-10-14 21:26:02 +02:00
Patrick Pelissier
e99fd23e69
Don't export IT_REF for DICT_SET as they should not be updated directly by algorithm
2021-10-14 21:23:37 +02:00
Patrick Pelissier
5057366fb2
Update documentation for RBTREE _remove
2021-10-10 20:36:02 +02:00
Patrick Pelissier
44801b8b91
Add more tests for _remove (that triggered an issue in _previous)
2021-10-10 20:35:44 +02:00
Patrick Pelissier
9eabc86bdd
Fix issue in _next / _previous in some corner cases. Fix issue in _remove (IT was not updated to next item)
2021-10-10 20:35:18 +02:00
Patrick Pelissier
fbc8f407eb
Add test for method _remove
2021-10-10 10:18:06 +02:00
Patrick Pelissier
09a8b93634
Add method _remove for RBTREE
2021-10-10 10:17:55 +02:00
Patrick Pelissier
2caa7b77e7
Add check of RBTREE
2021-10-10 10:04:48 +02:00
Patrick Pelissier
c057247126
Add missing exported method
2021-10-10 10:01:44 +02:00
Patrick Pelissier
0899be21c3
Add support for seed (set/random) for rand
2021-10-10 09:36:35 +02:00
Patrick Pelissier
c29c9f9ccd
Remove obsolete UPDATE operator
2021-10-09 17:57:49 +02:00
Patrick Pelissier
c12f698f32
Restore exe target
2021-10-09 17:27:53 +02:00
Patrick Pelissier
d6a8a6d159
Add test for _reserver and _resize
2021-10-09 17:25:43 +02:00
Patrick Pelissier
7bf325f91a
Update recent framework to compute dependencies
2021-10-09 17:25:13 +02:00
Patrick Pelissier
fdfff0c5c5
Add framework to test containers againts C++ library
2021-10-09 16:55:51 +02:00
Patrick Pelissier
4409f613e0
Add test more complete cases for the last issue
2021-10-09 10:11:27 +02:00
Patrick Pelissier
9de644b0f3
Fix issue in _pop_front & _front method that corrupts the deque in some cases
2021-10-09 10:11:02 +02:00
Patrick Pelissier
3e36363d28
Fix format
2021-10-09 10:08:13 +02:00
Patrick Pelissier
4f1d1a949c
Document _get_at method for dict
2021-10-08 20:47:18 +02:00
Patrick Pelissier
e52f3b8b30
Add more test cases for deque _next / _previous
2021-10-07 21:47:49 +02:00
Patrick Pelissier
36916e7b3d
Fix issue in deque _next and deque _previous methods in some corner cases
2021-10-07 21:47:20 +02:00
Patrick Pelissier
ba778e9bd2
Simplify
2021-10-07 21:40:42 +02:00
Patrick Pelissier
df7112489a
Add tag for identifying C code in documentation
2021-10-05 00:28:31 +02:00
Patrick Pelissier
d9c203736f
Update examples section
2021-10-04 20:36:39 +02:00
Patrick Pelissier
2b61ffa784
Ignore backup files
2021-10-02 19:15:03 +02:00
Patrick Pelissier
ba85640172
Add bench for CTL library
2021-10-02 19:14:01 +02:00
Patrick Pelissier
4d21ad5050
Update
2021-10-02 19:13:10 +02:00
Patrick Pelissier
aae14de62b
Update documentation
2021-10-02 13:22:12 +02:00
Patrick Pelissier
70fa621745
Add test function for _splice function
2021-10-02 13:09:51 +02:00
Patrick Pelissier
e97f4f7f41
Document _splice function for dictionary
2021-10-02 13:09:18 +02:00
Patrick Pelissier
7a08ddce9e
Remove UPDATE opertor as there are no default operators that define it (and no one uses it as it is poorly documented). Replace by SET for RB-THREE. Replace by ADD for the splice function of dictionary
2021-10-02 13:06:30 +02:00
Patrick Pelissier
e19c9d31a8
Update comments
2021-10-01 07:41:23 +02:00
Patrick Pelissier
51ae5f9f0c
Fix spelling
2021-10-01 07:41:11 +02:00
Patrick Pelissier
22e8133f95
Test for corrected issue of IT_INSERT (Wrong behavior if IT==END)
2021-09-29 23:30:20 +02:00
Patrick Pelissier
c2e19fed01
Fix issue in IT_INSERT (Wrong behavior if IT==END)
2021-09-29 23:29:57 +02:00
Patrick Pelissier
274afc9978
Fix syntax
2021-09-24 23:26:23 +02:00
Patrick Pelissier
0c337836ca
Add CTL library as reference
2021-09-24 23:23:57 +02:00
Patrick Pelissier
1a3e694e20
Add new example of different containers
2021-09-23 23:06:24 +02:00
Patrick Pelissier
a0572b63b1
Update documentation for tuple
2021-09-23 23:04:10 +02:00
Patrick Pelissier
1765d8ef06
Update test for testing new possibility of the tuples
2021-09-23 23:04:00 +02:00
Patrick Pelissier
1e00a102e8
TUPLE: Defined HASH/CMP/EQUAL methods if at least ONE methods is defined in the fields. Fields that don't have or have disabled method are supposed to be secondary fields that are not pertinent for comparing the objects.
2021-09-23 23:03:30 +02:00
Patrick Pelissier
61f8dcdbae
Add string_set_char function
2021-09-22 23:07:35 +02:00
Patrick Pelissier
39eeb3aec7
Fix buffer overflow in ARRAY _pop_at function (reported by tyrone718)
2021-09-18 09:52:33 +02:00
Patrick Pelissier
2178dcfcab
Add LIST_INIT_VALUE & LIST_DUAL_PUSH_INIT_VALUE.
2021-08-15 21:55:09 +02:00
Patrick Pelissier
f8b4f44105
Add ARRAY_INIT_VALUE
2021-08-15 21:44:36 +02:00
Patrick Pelissier
9c2468c2b7
Update comments.
2021-08-15 21:27:54 +02:00
Patrick Pelissier
3d5cc55d0a
Adding assembly generation for mserial-json
...
in order to check proper & full inlining.
2021-08-09 10:30:53 +02:00
Patrick Pelissier
5b9cccd2dd
Adding more macros not to be expanded in coverage mode
2021-08-09 10:30:04 +02:00
Patrick Pelissier
103b2ab79b
Fix C++ 32 bits error on Ubuntu.
2021-08-07 17:15:45 +02:00
Patrick Pelissier
05f1cd784c
Add support of GCC Static Analyzer
...
It seems to report only false positive.
2021-08-07 17:07:38 +02:00
Patrick Pelissier
6e6754f84e
Activate tests for C++ 32 bits.
2021-08-07 10:28:19 +02:00
Patrick Pelissier
33ef448a86
Update documentation.
2021-08-07 10:27:56 +02:00
Patrick Pelissier
8ce59c2e9d
Maintenance:
...
* update comments
* simplify code.
2021-08-07 00:34:18 +02:00
Patrick Pelissier
85a363d325
Update definition of returned iterator of _it_from of RB tree
...
from the greatest element of 'rbtree' lower of equal than 'data'
to the lowest element of the tree 'rbtree' greater or equal than 'data'
It is more logical and natural:
if you have a tree of elements between [2, 4], and you want
to iterate all elements from 0 to 10, the old definition doesn't allow
you to iterate easily over this subset.
2021-07-16 22:46:44 +02:00
Patrick Pelissier
7dc1a9dc0e
Update RB Tree:
...
* Fix issue of the searched element is the root node (See #93 )
for _it_from. It now returns a proper iterator.
* Update _it_from to match the last documentation:
if there is no element lower or equal to the searched node,
it returns a null iterator.
* Update _it_while_p so that it returns false if it is null iterator.
2021-07-16 21:47:37 +02:00
Patrick Pelissier
983d90b731
* Complete tests on iterators to be more exhaustive.
...
* Add tests on _it_from/_it_until_p/_it_while_p.
2021-07-16 21:46:57 +02:00
Patrick Pelissier
f307762801
Update document of _it_from, _it_until_p, _it_while_p:
...
* _it_from: if there is no element that matches the condition,
it returns a null iterator, which is more coherent.
* _it_until_p: clarify condition if the iterator is null.
* _it_while_p: clarify condition if the iterator is null.
2021-07-16 21:42:55 +02:00
Patrick Pelissier
7924798e7a
Update names of contract macros as per macro renaming
2021-07-16 21:41:59 +02:00
Patrick Pelissier
e46bbaffb9
Avoid GCC warning (-Wstringop-truncation)
2021-07-05 23:14:21 +02:00
Patrick Pelissier
0171c49413
Unlikely some if conditions.
2021-07-05 22:45:57 +02:00
Patrick Pelissier
a79cd9da97
Fix issue for RB Tree _it_equal_p method
...
if both iterators are equal and are associated
to a RB tree without any element.
2021-07-05 22:44:58 +02:00
Patrick Pelissier
408959c927
Be more precise in the bound check.
2021-07-05 22:32:19 +02:00
Patrick Pelissier
ac4d93fe29
Clean RB Tree _pop_at to avoid an aliasing issue.
2021-07-05 20:21:26 +02:00
Patrick Pelissier
82d224fa66
Clean up documentation
2021-07-05 20:19:00 +02:00
Patrick Pelissier
a5b6d8e391
Rewrite assertion to be more robust.
2021-07-04 00:20:10 +02:00
Patrick Pelissier
7f79abec3f
Fix issue with INIT_WITH of array/list/....
...
combined with tuple:
_push_back_raw was used within an expanded macro
and as a consequence was expanded multiple times,
resulting in adding a new term in the sequence
for each field of the tuple.
2021-07-04 00:01:00 +02:00
Patrick Pelissier
ca8d4aa97a
Update _back & _front to return a modifiable ptr
...
(There is no real reasons to return a const pointer).
2021-07-03 23:59:19 +02:00
PpHd
690cef561c
Merge pull request #92 from P-p-H-d/let-recur
...
Recursive INIT_WITH within M_LET
2021-07-01 22:33:34 +02:00
Patrick Pelissier
16ac4c556b
Update documentation.
2021-07-01 22:14:17 +02:00
Patrick Pelissier
3c175b9199
Update documentation.
2021-07-01 22:12:15 +02:00
Patrick Pelissier
a3827cc384
Add tests for new constructs
...
allowed in M_LET for tuples
2021-07-01 22:12:15 +02:00
Patrick Pelissier
353daecbd1
Comment new code.
2021-07-01 22:12:15 +02:00
Patrick Pelissier
368392fb8f
Add CLEAN operator for default oplist
...
(same as INIT operator)
2021-07-01 22:12:15 +02:00
Patrick Pelissier
57441b2fc1
Add first draft of recursive
...
INIT_WITH macro for tuples.
2021-07-01 22:12:15 +02:00
Patrick Pelissier
b225600238
Add internal functions for tuple
...
that are needed for future INIT_WITH support.
2021-07-01 22:12:15 +02:00
Patrick Pelissier
6b361e0d0c
Add use of M_PRINT in C11 mode.
2021-07-01 22:12:15 +02:00
Patrick Pelissier
08668aa02b
Add a new example of the new M_LET feature.
2021-07-01 22:12:15 +02:00
Patrick Pelissier
3d3eb6f1d2
Update tests to new syntax of M_LET.
2021-07-01 22:12:15 +02:00
Patrick Pelissier
9bd820c652
Force use of INIT_WITH for function object.
2021-07-01 22:12:15 +02:00
Patrick Pelissier
0e960ec23f
Force use of INIT_WITH within M_LET.
2021-07-01 22:12:15 +02:00
Patrick Pelissier
ca65d81b60
* Fix conflict between M_MAP2 /M_MAP2B
...
(this arises through M_LET & M_GET_METHOD)
* Rename M_GET_OPPROPERTY into M_GET_PROPERTY
* M_LET can be configured to always use INIT_WITH for special kind of objects.
2021-07-01 22:12:15 +02:00
Patrick Pelissier
23624a1d73
Remove M_EVAL from M_LET as it is not needed anymore.
2021-07-01 22:12:15 +02:00
Patrick Pelissier
3ac08b0395
Add test with a lot of different kind of M_LET with list of strings.
2021-07-01 22:12:15 +02:00
Patrick Pelissier
dedb79dbc5
Use of new initializer macro
2021-07-01 22:12:15 +02:00
Patrick Pelissier
154b503bc6
Avoid using the input more than once in macros string_init_* (Avoid issues)
2021-07-01 22:12:15 +02:00
Patrick Pelissier
5c612ce521
Update M_LET to handle both set & init_with depending on the user syntax. Add M_INIT_WITH_VAI to use this new feature.
2021-07-01 22:12:15 +02:00
Patrick Pelissier
80582ac5ce
Update as the minimum level of recursion is decreased
2021-07-01 22:12:15 +02:00
Patrick Pelissier
8e6af3bfeb
Add note
2021-07-01 22:12:15 +02:00
Patrick Pelissier
61671d1b18
Minor fix
2021-07-01 22:12:15 +02:00
Patrick Pelissier
aa3ad973d0
Add another recussive M_LET test
2021-07-01 22:12:15 +02:00
Patrick Pelissier
a19a010d1e
Add WIP version for a M_LET recursive
2021-07-01 22:12:14 +02:00
Patrick Pelissier
36003b6bb3
* Add support for extented variable for M_[F]PRINT
...
* Update documentation
* Add test.
2021-07-01 00:13:31 +02:00
Patrick Pelissier
3c83e4088c
Add internal macro M_MERGE_ARGLIST
2021-06-20 11:06:19 +02:00
Patrick Pelissier
357feb9532
Update documentation as per lastest changes.
2021-06-19 22:47:13 +02:00
Patrick Pelissier
7e234cba65
Add test of M_FPRINT using string_t.
2021-06-19 22:46:58 +02:00
Patrick Pelissier
0535ceeaeb
Add support of string_t by M_PRINT macro.
2021-06-19 22:46:41 +02:00
Patrick Pelissier
e688f0b1df
Add internal method M_GET_OPPROPERTY to get the subproperty of an oplist
...
Add test for such macro
Rename operator CLASS into PROPERTIES
2021-06-17 00:20:35 +02:00
Patrick Pelissier
a950e15625
Adding method for NAME operator for basic containers
2021-06-12 11:11:30 +02:00
Patrick Pelissier
cf8b198dac
Fix issue in M_LET: if the INIT/INIT_SET/INIT_WITH uses the macro M_IF, it may be not expanded in some cases (since the M_CALL_* is used itself within an expanded tainted M_IF). Fix this by calling M_CALL_* outside the expanded M_IF.
2021-05-23 00:53:54 +02:00
Patrick Pelissier
c75d5da02d
Fix: use of M_CALL_INIT / M_CALL_CLEAR instead of M_GET_INIT / M_GET_CLEAR so that API transformation can be applied
2021-05-23 00:42:43 +02:00
Patrick Pelissier
cdffb15066
Simplify code
2021-05-23 00:34:08 +02:00
Patrick Pelissier
cd0ad0dba9
Factorize code
2021-05-23 00:31:23 +02:00
Patrick Pelissier
d3be5dba96
Reduce number of created threads, as sometimes it hits the limits
2021-05-22 18:11:09 +02:00
Patrick Pelissier
cb94a26a9f
Update documentation
2021-05-22 17:33:46 +02:00
Patrick Pelissier
3c8b238e75
Add operator CLASS and new keywords
2021-05-22 17:33:34 +02:00
Patrick Pelissier
74202d52b3
Adding default value for LIMITS
...
enabling to avoid defining then for all types.
2021-04-16 23:23:42 +02:00
Patrick Pelissier
603c92cd0e
Cleanup uneeded final comma separator
2021-04-10 23:27:49 +02:00
Patrick Pelissier
e514d74f43
Update test to be more pertinent
2021-04-04 22:28:32 +02:00
Patrick Pelissier
970161464a
Add constraint
2021-04-04 22:28:13 +02:00
Patrick Pelissier
3e7de27c00
Rename M_HASH_SEED into M_USE_HASH_SEED
...
as it a user overridable macro
(API break).
2021-04-03 23:15:12 +02:00
Patrick Pelissier
e28d403216
Undo previous changes until further analysis (it broke CI)
2021-03-28 11:53:18 +02:00
Patrick Pelissier
fdeb9f1322
Format
2021-03-28 11:48:59 +02:00
Patrick Pelissier
76fad21103
Update comments and naming
2021-03-28 11:48:59 +02:00
Patrick Pelissier
5d4fa31083
Update doc & comments
2021-03-28 11:48:58 +02:00
Patrick Pelissier
c3858f4e63
Update documentation
2021-03-28 11:48:58 +02:00
Patrick Pelissier
2e0fc21878
Fix _push_move of SPSC. It shall take a pointer to the object, not the object itself as argument, just like the other _push_move
2021-03-28 11:48:58 +02:00
Patrick Pelissier
4b71bbec7e
Protect key from being changed while iterating.
2021-03-28 11:13:55 +02:00
Patrick Pelissier
052989a5a2
Update m_serial_ll_ct to have more basic types.
2021-03-28 11:09:59 +02:00
Patrick Pelissier
60cfc63c4e
Add static assertion.
2021-03-28 09:39:52 +02:00
Patrick Pelissier
60ef4c7f06
Fix documentation
2021-03-28 09:39:41 +02:00
Patrick Pelissier
58fc40d0f1
Update oplist
2021-03-28 09:32:23 +02:00
Patrick Pelissier
3d7e9e7c03
Add _get_at method for B+TREE
2021-03-28 09:29:04 +02:00
Patrick Pelissier
52e745f905
Update documentation of operators
2021-03-27 21:15:03 +01:00
Patrick Pelissier
8433fc178c
Fix issue for union with visual & clang-cl
2021-03-20 13:16:10 +01:00
Patrick Pelissier
59807baa18
Fix several minor issues on m-buffer:
...
1) Fix performance issue if the buffer was not designed
to be thread safe. The internal numbers are in this cases
just plain numbers and not atomic numbers. This is done
through union. Fix #90
2) In case of thread safe buffer, put each item in a
separate cacheline. This ensures proper performance in
case there is several producers. This however
increases the consumption size.
3) Fix a data race issue: after the mutex is locked,
and before the test if the buffer is empty (through the
atomic read of its size). It is solved by performing a
memory acquire when testing if the buffer is empty.
4) Add more comments.
2021-03-20 13:01:51 +01:00
Patrick Pelissier
9b5b15e8cb
Update comment
2021-03-16 21:43:09 +01:00
Patrick Pelissier
2c54b63c51
Update dev doc
2021-03-16 21:42:48 +01:00
Patrick Pelissier
e4d1167274
Improve test suite to be more representative
2021-03-14 23:42:05 +01:00
Patrick Pelissier
2f10aba390
Workaround issue with address sanitizer
2021-03-14 21:26:04 +01:00
Patrick Pelissier
a044fadec8
Fix minor warning in some compiler options
2021-03-14 11:00:05 +01:00
Patrick Pelissier
0edb6165b5
Fix buffer overflow if size=64*N
2021-03-13 23:39:26 +01:00
Patrick Pelissier
7d262f2450
Fix formatting
2021-03-13 23:08:04 +01:00
Patrick Pelissier
fa30328572
Reduce allowed range for buffer to unsigned int. It should be more than enough for any scenario.
2021-03-13 22:43:01 +01:00
Patrick Pelissier
b0cff7c6ac
Remove git checkout HEAD^2 as per recommendation of CodeQL
2021-03-09 22:39:02 +01:00
Patrick Pelissier
50da9e803c
Add documentation for m_serial_str_json
2021-03-09 22:12:44 +01:00
Patrick Pelissier
26252fedf5
Add test for JSON serialization over string
2021-03-09 22:12:29 +01:00
Patrick Pelissier
2dcda90c7b
Add JSON serial over string
2021-03-09 22:12:16 +01:00
Patrick Pelissier
b7d79c0a83
Fix issue for wrong formatted JSON (error not properly reported)
2021-03-09 20:56:13 +01:00
Patrick Pelissier
ae285c0a01
Add also const string in serial object
2021-03-09 20:55:46 +01:00
Patrick Pelissier
07db846f3b
Rename internal string functions to be compliant with new scheme. Not sure if this scheme will remain however (still searching for a better naming that fits all criteria).
2021-03-01 22:18:32 +01:00
Patrick Pelissier
3b6907b743
Add more test cases.
2021-02-23 16:24:46 +01:00
Patrick Pelissier
82e49c6214
Clarify doc.
2021-02-23 16:03:03 +01:00
Patrick Pelissier
8e9aa9cac4
Fix _min & _max for B+Tree
...
Make code match the documentation if there is no element in the tree.
2021-02-23 15:59:45 +01:00
Patrick Pelissier
5cd6c1dd36
Update Makefile by controlling when making dist that all files are properly referenced in the Makefile
2021-02-22 18:59:49 +01:00
Patrick Pelissier
a98ce5ea91
Remove unused test file
2021-02-22 18:59:49 +01:00
Patrick Pelissier
a4bb0fab8f
Update documentation for bitset
2021-02-22 12:06:51 +01:00
Patrick Pelissier
7b2e242c94
Add function bitset_popcount
2021-02-22 12:06:46 +01:00
Patrick Pelissier
5fd6352a4e
Add more tests for bitset_resize
2021-02-22 11:40:29 +01:00
Patrick Pelissier
a82f2ba065
* Fix an issue in _pop_at. * Optimize code by ensuring that the last limbs is always properly masked (simplify algorithm)
2021-02-22 11:31:49 +01:00
Patrick Pelissier
3377acd9e6
Test another bit for _pop_at
2021-02-22 11:30:59 +01:00
Patrick Pelissier
709168652a
Reformat and specify clz for bitset size = 0
2021-02-21 21:41:51 +01:00
Patrick Pelissier
e25e9ba29b
Make the contract of Array & Buffer fail after a clear.
2021-02-21 21:08:35 +01:00
Patrick Pelissier
ed5eac6e9d
Update doc
2021-02-21 21:08:35 +01:00
Patrick Pelissier
651768f012
Fix name in doc
2021-02-21 21:08:35 +01:00
Patrick Pelissier
88c0a881da
Update
2021-02-20 00:22:24 +01:00
Patrick Pelissier
5b9dd504e5
Add chapter "Global User Customization"
2021-02-20 00:20:54 +01:00
Patrick Pelissier
165ec09061
Rename user customizable macros
...
to be compliant with other
and clearer that they can be customized.
2021-02-20 00:10:26 +01:00
Patrick Pelissier
6cc972bab2
Rename header define to be compliant with others.
2021-02-20 00:08:07 +01:00
Patrick Pelissier
333047fc4c
Make assertions more robust.
...
Fix read out of bound (with test cases).
2021-02-14 00:15:43 +01:00
Patrick Pelissier
3e4a5932c2
Rename internal function / types.
...
Reformat
2021-02-13 11:45:16 +01:00
Patrick Pelissier
e2f6b81a03
Remove M_LOCK from readme as it is obsolete.
2021-02-13 11:45:16 +01:00
Patrick Pelissier
0231aad947
Update coding rules.
2021-02-13 11:45:16 +01:00
Patrick Pelissier
6636800c5b
Remove obsolete / deprecated function/macros.
2021-02-13 11:45:16 +01:00
Patrick Pelissier
d1f41de0cb
Rename internal functions
...
to use internal prefix.
2021-02-13 11:45:16 +01:00
Patrick Pelissier
c4d339cb62
Rename internal interface.
2021-02-13 11:45:16 +01:00
Patrick Pelissier
56b2adc57d
Fix internal name.
2021-02-13 11:45:16 +01:00
Patrick Pelissier
a73bee2650
Micro-optimization of DICT_OA
...
by reducing the number of cmp instructions.
2021-02-13 11:45:16 +01:00
Patrick Pelissier
517da1b999
Rename generated internal functions
...
to avoid "poluting" userspace naming.
2021-02-13 11:45:05 +01:00
Patrick Pelissier
25497bd96f
Factorize code so that _DEF macros use _DEF_AS ones
2021-02-07 23:04:59 +01:00
Patrick Pelissier
d12b1edc39
Update doc
2021-02-07 23:04:45 +01:00
Patrick Pelissier
0515cfd068
Add macro M_GREATER_THAN_P & M_LESS_OR_EQUAL_P (src, tests, doc)
2021-02-07 09:53:13 +01:00
Patrick Pelissier
e84bc9fc0d
Fix link
2021-02-07 09:41:10 +01:00
Patrick Pelissier
d85df43329
Replace UNERDLOW/OVERFLOW by M_UNDERFLOW/M_OVERFLOW as some systems (Windows/MacOS) perform '#define UNDERFLOW value' in their headers, preventing the detection at preprocessing time.
2021-02-07 09:36:00 +01:00
Patrick Pelissier
16e2e07d41
* Fix M_REVERSE as per the doc (don't add parenthesis on the returned arglist). * Update usage to take this into account.
2021-02-07 00:50:10 +01:00
Patrick Pelissier
57fcb4012b
Update doc
2021-02-07 00:42:10 +01:00
Patrick Pelissier
5be981def3
Fix warning
2021-02-07 00:41:59 +01:00
Patrick Pelissier
493e38abfc
Fix formatting
2021-02-07 00:31:15 +01:00
Patrick Pelissier
6e006d216b
Add macro M_GREATER_OR_EQUAL_P (src, test, doc)
2021-02-07 00:25:47 +01:00
Patrick Pelissier
da613ad188
* Add macro M_LESS_THAN_P (src, test, doc). * Robustify M_INC & M_DEC so that overflow & underflow keeps returning overflow & underflow
2021-02-07 00:10:55 +01:00
Patrick Pelissier
3dad326bea
Update doc
2021-02-06 23:54:16 +01:00
Patrick Pelissier
480a791f4c
Update tests
2021-02-06 23:41:04 +01:00
Patrick Pelissier
753c46ef14
Add OrderPP
2021-02-06 23:40:58 +01:00
Patrick Pelissier
f2d5de252b
Add M_FILTER and M_FILTER_C macros (src, tests, doc)
2021-02-06 23:24:55 +01:00
Patrick Pelissier
0cb1a8054f
Add M_REPLICATE & M_REPLICATE_C (src, test, doc)
2021-02-06 22:32:38 +01:00
Patrick Pelissier
07eb5697ab
Remove limitation of M_AS_STR to be called within a M_APPLY
2021-02-06 22:22:50 +01:00
Patrick Pelissier
e4dc06a0e2
Update doc
2021-02-06 22:13:06 +01:00
Patrick Pelissier
cd2012f33d
Update doc
2021-02-06 21:58:52 +01:00
Patrick Pelissier
9eba30648d
Rename M_INVERT into M_REVERSE to be more coherent with REVERSE operator
2021-02-06 21:58:45 +01:00
Patrick Pelissier
7e70371197
Format & comment code
2021-02-06 21:28:18 +01:00
Patrick Pelissier
527f6d8d9a
Add metalang99
2021-02-06 21:05:26 +01:00
Patrick Pelissier
9ebc12a98f
Update to 0.5.1
2021-02-06 21:03:19 +01:00
Patrick Pelissier
bb21d9a6ad
Update Makefile to control that both versions are the same when making a distribution
2021-02-06 21:00:25 +01:00
Patrick Pelissier
ad39cdd393
Add some tests for new function
2021-02-05 00:17:18 +01:00
Patrick Pelissier
0de771036b
Add M_REDUCE3
...
Add M_MAP3_C
Add operator LIMITS.
2021-02-05 00:11:44 +01:00
Patrick Pelissier
6d6afa4cfd
Update doc
2021-01-29 20:43:46 +01:00
Patrick Pelissier
7546cbedd2
Update doc
2021-01-20 20:44:48 +01:00
Patrick Pelissier
8d5962eefd
Update target html & doc
2021-01-20 20:44:36 +01:00
Patrick Pelissier
8597b0b8c0
Fix warning on clang and old gcc
2021-01-18 18:21:01 +01:00
Patrick Pelissier
c625c39883
Add a new implementation of M_CSTR using GNU C extension which provides faster & smaller code
2021-01-18 18:16:45 +01:00
Patrick Pelissier
bce86460fe
Rewrite test cases to avoid potential warnings
2021-01-18 18:16:05 +01:00
Patrick Pelissier
f002eebc83
Update constraint
2021-01-18 18:01:42 +01:00
Patrick Pelissier
139da2e49f
Update example
2021-01-16 10:25:55 +01:00
Patrick Pelissier
91d40a0f43
V0.5.0
2021-01-13 20:18:01 +01:00
Patrick Pelissier
25fe26deaa
Happy new year
2021-01-13 20:18:01 +01:00
Patrick Pelissier
cd357c5eb7
Rewrite the wrappers of strncpy & strncat:
...
Add one argument about the allocation of the dest buffer
Theses wrappers are internal (so no impact to API)
and only used in a few place in m-string.
This make the wrappers able to use the function
strncpy_s & strncat_s for MSVC rather than using
reimplementation of the original functions.
2021-01-13 08:34:47 +01:00
Patrick Pelissier
561f67b3b9
Update list of ignored files
2021-01-13 08:27:00 +01:00
Patrick Pelissier
15a02e3306
Update final message
2021-01-10 20:04:14 +01:00
Patrick Pelissier
944d29e8bc
Workaround CLANG preprocessor failure on Windows platform
2021-01-10 20:03:28 +01:00
Patrick Pelissier
aefba70c1e
Rework once again how to detect a failure in an application:
...
IF errorlevel 1 only works for positive error code
IF not errorlevel 0 only works for negative error code
There are not reliable. So, use && and || instead.
Remove expected failure on test as all tests pass now
(and it was broken).
2021-01-10 18:08:48 +01:00
Patrick Pelissier
c9ed4ba820
Fix compiler error with MSVC with new implementation of offsetof
2021-01-10 18:01:19 +01:00
Patrick Pelissier
df97ea848c
Fix error for C++
2021-01-10 10:01:54 +01:00
Patrick Pelissier
93d810421d
Fix warning with newest gcc
2021-01-10 09:57:07 +01:00
Patrick Pelissier
f560839516
Add example of string_sets
2021-01-10 09:51:53 +01:00
Patrick Pelissier
8a9d5f6a00
Add macro string_sets (like string_cats)
2021-01-10 09:51:38 +01:00
Patrick Pelissier
5f05c1e169
Make stdarg an optional header. Some works remain to do to make stdio fully optional
2021-01-10 09:40:37 +01:00
Patrick Pelissier
3df2408ffb
Add macro M_CSTR
2021-01-10 09:26:27 +01:00
Patrick Pelissier
ffc2ec8c4b
Fix format
2021-01-10 09:25:27 +01:00
Patrick Pelissier
b0ebbb306e
Update
2021-01-10 09:20:42 +01:00
Patrick Pelissier
c3574aa290
Update comments
2021-01-10 09:02:52 +01:00
Patrick Pelissier
eabc867c2a
Rename used namespace for C++ to m_lib
2021-01-10 08:48:46 +01:00
Patrick Pelissier
a03b2e80c6
Document string_cats
2021-01-07 22:13:10 +01:00
Patrick Pelissier
c4f23640d5
Add test for string_cats
2021-01-07 22:13:10 +01:00
Patrick Pelissier
a42b854f14
Add macro string_cats to concat multiple strings
2021-01-07 22:13:10 +01:00
Patrick Pelissier
9aa08bfc59
Add support for struct in M_AS_TYPE
2021-01-07 22:13:10 +01:00
Patrick Pelissier
06b79a6caa
Add tests for M_AS_TYPE
2021-01-07 22:13:10 +01:00
Patrick Pelissier
6d533bd52a
Add (internal) macro M_CONDITIONAL
2021-01-07 22:13:10 +01:00
Patrick Pelissier
1b4c608087
Rename operator TEST_EMPTY into EMPTY_P to be compliant with iterator operator
2021-01-07 22:13:10 +01:00
Patrick Pelissier
6ccc81fd92
Remove unused operator UPDATE_TYPE
2021-01-07 22:13:09 +01:00
Patrick Pelissier
6f7d3fcd79
Add limiation on M_EMPTY_P
2020-12-31 00:12:36 +01:00
Patrick Pelissier
7484dee707
Fix a corner case for M_EMPTY_P where it performs too much evaluation steps
2020-12-31 00:12:21 +01:00
Patrick Pelissier
a580aaac83
Add more test cases for M_EMPTY_P
2020-12-31 00:11:37 +01:00
Patrick Pelissier
52bef353e0
Workaround WIN clang that claims to be C11 but fails to deliver a working assert.h (See #85 )
2020-12-30 19:03:10 +01:00
Patrick Pelissier
826ecf76c0
Workaround a compiler warning
2020-12-30 19:02:00 +01:00
Patrick Pelissier
2cf5bff32d
Fix negative error code termination for MSVS (See #86 )
2020-12-30 17:58:43 +01:00
Patrick Pelissier
1377d7a1c2
Fix usage of strncpy_s and strncat_s
...
Provides a full wrapper around strncpy & strncat
(for MSVS as it complains on using strncpy & strncat).
See #86
2020-12-28 23:35:50 +01:00
Patrick Pelissier
ab9284ca20
Update documentation
2020-12-27 10:44:41 +01:00
Patrick Pelissier
5dab01c1c7
Fix spelling
2020-12-26 09:08:42 +01:00
Patrick Pelissier
f9c434401b
Fix M_GET_STRING_ARG (See #84 )
2020-12-26 09:00:39 +01:00
Patrick Pelissier
76b9f9a715
Add test cases for M_GET_STRING
2020-12-26 08:58:52 +01:00
Patrick Pelissier
2ee82c478b
Remove useless type (see #82 )
2020-12-24 10:58:51 +01:00
Patrick Pelissier
211121435d
Fix warning in C++ mode with G++ 10
2020-12-24 08:13:44 +01:00
Patrick Pelissier
fffd1702a5
CLANG 3.8 stdatomic works. Update minimun version
2020-12-24 07:35:45 +01:00
Patrick Pelissier
9aa99bf230
Update package list before installing multilib
2020-12-21 15:23:49 +01:00
Patrick Pelissier
1671ca8d67
Add more assertions
2020-12-21 15:16:16 +01:00
Patrick Pelissier
ad16b310e1
Fix overflow issue in bitset_last_p (see #81 )
2020-12-21 15:08:19 +01:00
Patrick Pelissier
4dbcfd25b3
Fix non support of break in M_LET_IF
2020-12-16 15:27:41 +01:00
Patrick Pelissier
01167b09c4
Add an example of M_LET_IF
2020-12-16 11:07:11 +01:00
Patrick Pelissier
15d0b86c62
Update documentation & add tests as per lastest changes
2020-12-16 11:07:11 +01:00
Patrick Pelissier
edbcecb272
Add support for else condition in M_LET_IF. Fix also a bug in computing unique variable per line
2020-12-16 11:07:11 +01:00
Patrick Pelissier
1689db7b9c
Fix spelling
2020-12-16 11:07:11 +01:00
Patrick Pelissier
f5bc8796f7
Add functions:
...
* string_vprintf
* string_init_vprintf
2020-12-15 22:14:43 +01:00
Patrick Pelissier
e893560a48
Add macros M_LET_IF and M_DEFER to help handling with runtime errors
2020-12-14 21:26:07 +01:00
Patrick Pelissier
a4ff7c71f2
Update documentation
2020-12-13 00:18:53 +01:00
Patrick Pelissier
9f780805f0
Update
2020-12-10 07:59:28 +01:00
Patrick Pelissier
749273d1bb
Update list of methods
2020-12-06 08:32:54 +01:00
Patrick Pelissier
d8fd2e3e69
Update doc as per latest changes
2020-12-06 00:16:53 +01:00
Patrick Pelissier
d443a84254
Remove deprecated funtion
2020-12-06 00:15:17 +01:00
Patrick Pelissier
ef614b19ee
Fix ISO C warning.
2020-12-05 18:33:26 +01:00
Patrick Pelissier
1c5c4aa50f
Fix compatibility with C++
...
which doesn't support designated init.
2020-12-05 18:28:30 +01:00
Patrick Pelissier
5533ffffaa
Add tests for intrusive shared pointers.
2020-12-05 18:14:38 +01:00
Patrick Pelissier
34c990e259
Add function _init_once for intrusive shared pointer
2020-12-05 18:14:22 +01:00
Patrick Pelissier
5f0b6b9f26
Fix format
2020-12-05 12:42:45 +01:00
Patrick Pelissier
26eb882a30
Rename tuple function :
...
* _init_set2 in _init_emplace
* _set2 in _emplace
due to better & clearer naming.
(API break)
2020-12-05 12:29:20 +01:00
Patrick Pelissier
4d0e799c7a
Remove obsolete function.
2020-12-05 12:27:33 +01:00
Patrick Pelissier
6801f688a4
Clarify atomic thin layer limitation (see #79 )
2020-12-01 07:27:14 +01:00
Patrick Pelissier
bdf29af9e9
* Add DJB Xor hash * Rename function (see #78 )
2020-11-29 22:05:24 +01:00
Patrick Pelissier
79dabfc52f
Update documentation as per #76
2020-11-29 20:34:05 +01:00
Patrick Pelissier
de2268c406
Factorization of comparaison by using memcmp
2020-11-29 20:06:56 +01:00
Patrick Pelissier
85ea1f40dc
Use classic hash rather than fast one for C-String (fix assertion failure for C-String hash)
2020-11-29 19:36:28 +01:00
Patrick Pelissier
f89ba94689
Add test for computing C-string hash (raise assertion failure)
2020-11-29 19:35:52 +01:00
Patrick Pelissier
0279dcc3cc
Fix issue on MacOS
2020-11-25 22:56:51 +01:00
Patrick Pelissier
62c8e005bb
Add a new example of array of strings.
2020-11-25 22:41:25 +01:00
Patrick Pelissier
2a28f8d407
Add string_init_printf
2020-11-25 22:41:11 +01:00
Patrick Pelissier
9802fc5098
Remove rapidstring as it is no longer maintained, and the author deleted the repository.
2020-11-24 23:04:33 +01:00
Patrick Pelissier
f372a72fd8
Update list of libraries
2020-11-23 20:29:30 +01:00
Patrick Pelissier
9d661852b2
Factorization of replace_all function for all libraries
2020-11-23 20:14:17 +01:00
Patrick Pelissier
b343d356c3
Add support for empty replaced string
2020-11-22 23:29:38 +01:00
Patrick Pelissier
2e4404ca7e
Fix a (strange) warning for gcc 8 without assertions.
...
Add back the assertions as compile hints.
2020-11-22 23:20:04 +01:00
Patrick Pelissier
29eebaf38d
Factorization of the allocation.
2020-11-22 23:11:09 +01:00
Patrick Pelissier
d0d69aebfa
Add final null char in computation of the needed size for the new function _replace_all
2020-11-22 23:09:37 +01:00
Patrick Pelissier
477c5853f1
Update bench to use new function.
2020-11-22 23:04:50 +01:00
Patrick Pelissier
55e7b3083a
Add function string_replace_all[_str]
...
to replace all occurences of a string by another.
2020-11-22 23:04:32 +01:00
Patrick Pelissier
0b9e27fb7f
Add note on 32 bits systems where atomic library is needed
2020-11-21 11:45:25 +01:00
Patrick Pelissier
36ac6d5104
Fix issue on single core system
2020-11-21 10:53:11 +01:00
Patrick Pelissier
d898d6d4cc
Remove duplicate function
2020-11-21 10:26:02 +01:00
Patrick Pelissier
e7388929c4
Migrate to msys2 v2 for github actions.
2020-11-19 22:43:05 +01:00
Patrick Pelissier
45f8b31efc
Add function string_subset
2020-11-19 22:31:33 +01:00
Patrick Pelissier
ebf440731d
Fix address sanitizer issue
2020-11-15 09:43:41 +01:00
Patrick Pelissier
501a4a65ec
Add test cases
2020-11-15 09:39:29 +01:00
Patrick Pelissier
800d03f728
Update documentation.
2020-11-15 09:39:15 +01:00
Patrick Pelissier
19ff6bfeac
Add equal_p method for m-prioqueue
2020-11-15 09:39:01 +01:00
Patrick Pelissier
24f5739a3b
Update documentation.
2020-11-14 23:56:28 +01:00
Patrick Pelissier
b658598e02
Update documentation for _update & _erase of priority queues.
2020-11-14 23:48:46 +01:00
Patrick Pelissier
47343a2893
Add proper test cases for _update of priority queue
2020-11-14 23:48:23 +01:00
Patrick Pelissier
c1f99359be
Fix issue in update of priority in priority queue:
...
* Rename _update_further into _update.
* it now supports increase or decrease of priority.
* _update_further is deprecated (and was broken).
2020-11-14 23:48:08 +01:00
Patrick Pelissier
bd89e162fc
Add support for additional parameter id
2020-11-14 23:45:38 +01:00
Patrick Pelissier
983a63fbbc
Add more comments to explain how it works.
2020-11-14 22:45:39 +01:00
Patrick Pelissier
978e0ea5d7
Fix format
2020-11-14 22:45:18 +01:00
Patrick Pelissier
85c4b50b6f
Improve coverage of prioriy queue.
2020-11-08 01:00:17 +01:00
Patrick Pelissier
e77aec4619
Reduce test case for MacOS / MINGW (returning incorrect return value for printf)
2020-11-05 23:33:26 +01:00
Patrick Pelissier
d67e084010
Fix introduced warning
2020-11-05 22:55:03 +01:00
Patrick Pelissier
b0a74f162e
Fix string_printf in case of error in formating.
2020-11-05 22:51:28 +01:00
Patrick Pelissier
d92126b97e
Add more tests (improve coverage)
2020-11-05 22:51:02 +01:00
Patrick Pelissier
c055358fa2
Reformat
2020-11-05 22:50:38 +01:00
Patrick Pelissier
9f89148b69
Remove valgrind
...
(not working in Multithread code)
2020-11-05 22:02:44 +01:00
Patrick Pelissier
ef1145603a
Update comments.
2020-10-31 17:30:14 +01:00
Patrick Pelissier
d169a06f79
Rename STRING_ASSERT_SLOW into M_ASERT_SLOW
2020-10-31 17:30:14 +01:00
Patrick Pelissier
8e15a8cfe9
Fix warnings of CodeQL
2020-10-31 00:35:28 +01:00
Patrick Pelissier
6466cefbf4
Fix yml syntax
2020-10-31 00:17:13 +01:00
Patrick Pelissier
bec9a897c9
Update codeql to use test executable
2020-10-31 00:13:03 +01:00
Patrick Pelissier
37d47cb0f1
Cleanup static analyser
2020-10-31 00:12:40 +01:00
Patrick Pelissier
0854136005
Add target exe for analyser
...
Cleanup of static analyzer
2020-10-31 00:12:02 +01:00
Patrick Pelissier
9427931e45
Add CodeQL in continuous integration backend
2020-10-31 00:01:05 +01:00
Patrick Pelissier
6aa28b4cfe
Fix warnings on ARM
2020-10-30 08:02:37 +01:00
Patrick Pelissier
a29682ca29
Create M_ASSERT macro to encapsulate assert within M*LIB
...
The goal is to enable the user to override this macro if needed so that it can enable or disable the M*LIB witout impacting its own assertions.
2020-10-29 22:46:17 +01:00
Patrick Pelissier
f5afd6e275
Update comments.
2020-10-25 21:16:43 +01:00
Patrick Pelissier
7b5fd14bcf
Update comment.
2020-10-24 23:29:02 +02:00
Patrick Pelissier
22ce001f03
Remove incorrect use of M_ASSUME by assert
2020-10-24 23:14:14 +02:00
Patrick Pelissier
6f761091cc
Update comment.
2020-10-24 23:07:29 +02:00
Patrick Pelissier
bb9e0e4f6e
Adding test for M_LET for bounded string
2020-10-24 14:03:31 +02:00
Patrick Pelissier
5e658a81fe
Adding INIT_WITH support for bounded string within M_LET
2020-10-24 14:03:27 +02:00
Patrick Pelissier
ddc722bf78
Add FIXME
2020-10-23 21:50:57 +02:00
Patrick Pelissier
0818d0ac7c
Fix macro formatting.
2020-10-23 21:46:34 +02:00
Patrick Pelissier
2f315793cd
Use of M_ASSERT_INDEX for deque
2020-10-23 21:45:37 +02:00
Patrick Pelissier
067a034bc9
Use of M_ASSERT_INDEX for list.
2020-10-23 21:39:33 +02:00
Patrick Pelissier
201cc45fd8
Use of M_ASSERT_INDEX for bitset.
2020-10-23 21:37:44 +02:00
Patrick Pelissier
7a270ffacb
Update documentation
2020-10-23 21:32:06 +02:00
Patrick Pelissier
27bb62533a
Use of M_ASSERT_INDEX
...
to validate user input.
2020-10-21 23:57:52 +02:00
Patrick Pelissier
032388b790
Update message
2020-10-21 23:57:24 +02:00
Patrick Pelissier
f1e2f81e79
Improve formating of macros:
...
if the line is too long
and can be reduced,
reduce it.
2020-10-21 23:56:55 +02:00
Patrick Pelissier
54d4b80368
Reformat macro to 80 characters
2020-10-21 23:23:40 +02:00
Patrick Pelissier
8a0a556604
Add utility to reformat automatically
...
macro to 80 characters.
2020-10-21 23:23:16 +02:00
Patrick Pelissier
895f362628
Fix a majorant stack usage of B+TREE
2020-10-17 22:46:43 +02:00
Patrick Pelissier
d24b52586d
Put a type within internal namespaces.
2020-10-17 22:25:22 +02:00
Patrick Pelissier
d76585cb0e
Update test as per latest changes.
2020-10-17 22:25:05 +02:00
Patrick Pelissier
fb44be6efe
Remove argument itret_t from *SET_DEF_AS
...
as it is useless
(Return type IS the key type for a set).
2020-10-17 22:24:53 +02:00
Patrick Pelissier
0b6a5aaa97
Port to last API version of CMC
2020-10-17 20:14:06 +02:00
Patrick Pelissier
c00fdc65a2
Change installation directory
...
so that all M*LIB headers are in one directory.
2020-10-17 13:22:17 +02:00
Patrick Pelissier
ab7490eb8a
Fix list of distributed files.
2020-10-17 13:17:47 +02:00
Patrick Pelissier
1a46c0cd3f
Clarify should usage in the documentation.
2020-10-17 13:07:41 +02:00
Patrick Pelissier
22f595c015
Update comment
2020-10-17 12:39:09 +02:00
Patrick Pelissier
68c76ad146
Update example with latest changes.
2020-10-16 21:59:53 +02:00
Patrick Pelissier
0b18792b96
Document _DEF_AS macros
...
Fix #60
2020-10-16 21:56:42 +02:00
Patrick Pelissier
464e8e5f8f
Clean usage of 'shall' within the documentation.
2020-10-16 21:33:01 +02:00
Patrick Pelissier
45410f3f0c
Update README.
2020-10-16 21:04:07 +02:00
Patrick Pelissier
556e706343
Update doc as per last rename
2020-10-16 21:01:41 +02:00
Patrick Pelissier
1e534bd307
Rename derefence type of an iterator of a dict or a B+Treee into _ittref_t.
2020-10-16 21:01:29 +02:00
Patrick Pelissier
7a517ee3ae
Upate comments.
2020-10-16 20:53:34 +02:00
Patrick Pelissier
9bb1957afa
Rename internal types.
2020-10-16 20:51:24 +02:00
Patrick Pelissier
86f942ee5f
Fix forgotten external type in internal function.
2020-10-15 22:15:01 +02:00
Patrick Pelissier
a23df528e4
Add DICT_*_AS macros.
2020-10-15 22:05:18 +02:00
Patrick Pelissier
0e9af6dfac
Prepare user name integration for OA dictionnaries.
2020-10-15 21:53:11 +02:00
Patrick Pelissier
99a8db1111
Prepare integration for custom names for dict.
2020-10-15 21:41:53 +02:00
Patrick Pelissier
24cdf1ca5c
Use of internal types within the code
...
instead of external ones.
2020-10-03 16:07:32 +02:00
Patrick Pelissier
f1b794b239
Use of external documented type
...
instead of internal type.
2020-10-03 16:07:14 +02:00
Patrick Pelissier
b4fdcbc547
Factorization of the it_deref name for overloading
2020-10-03 15:48:44 +02:00
Patrick Pelissier
ce9986f6d8
Factorization of common pattern for bucket dictionnaries.
2020-10-03 14:47:47 +02:00
Patrick Pelissier
ad4dcae1db
Add macro VARIANT_DEF2_AS
2020-10-03 14:07:14 +02:00
Patrick Pelissier
b3fa63c971
Factorization of name usage
2020-10-03 14:07:14 +02:00
Patrick Pelissier
364101592b
Remove unused file
2020-10-03 14:07:14 +02:00
Patrick Pelissier
5b89196cd7
Add macro TUPLE_DEF2_AS
2020-10-03 14:07:14 +02:00
Patrick Pelissier
feb8b30048
Factorization of M_C(name, _t)
2020-10-03 14:07:14 +02:00
Patrick Pelissier
8340cf70fb
Add macros
...
FUNC_OBJ_ITF_DEF_AS
FUNC_OBJ_INS_DEF_AS
2020-10-03 14:07:14 +02:00
Patrick Pelissier
affb3778a0
Rename internal types to _ct
2020-10-03 14:07:14 +02:00
Patrick Pelissier
c039f07f2d
Add macros
...
BPTREE_DEF2_AS
BPTREE_DEF_AS
BPTREE_MULTI_DEF2_AS
BPTREE_MULTI_DEF_AS
2020-10-03 14:07:14 +02:00
Patrick Pelissier
c180981768
Add macros
...
CONCURRENT_DEF_AS
CONCURRENT_RP_DEF_AS
2020-10-03 14:07:14 +02:00
Patrick Pelissier
2cfac5c332
Fix build issue in C11 for new macros.
2020-10-03 14:07:14 +02:00
Patrick Pelissier
8ba489eef3
Add macros
...
SNAPSHOT_SPSC_DEF_AS
SNAPSHOT_SPMC_DEF_AS
SNAPSHOT_MPMC_DEF_AS
2020-10-03 14:07:14 +02:00
Patrick Pelissier
a4cb6e3681
Add macros SHARED_PTR_DEF_AS, SHARED_PTR_RELAXED_DEF_AS, SHARED_RESOURCE_DEF_AS
2020-10-03 14:07:14 +02:00
Patrick Pelissier
379e0be211
Use of new macro to define internal types not exported.
2020-10-03 14:07:14 +02:00
Patrick Pelissier
acb886c391
Add macro RBTREE_DEF_AS
2020-10-03 14:07:14 +02:00
Patrick Pelissier
7f26ef0f1c
Add new macros to define container
...
with the full given name.
2020-10-03 14:07:14 +02:00
Patrick Pelissier
1d8e541205
Add macros BUFFER_DEF_AS, QUEUE_MPMC_DEF_AS, QUEUE_SPSC_DEF_AS
2020-10-03 14:07:14 +02:00
Patrick Pelissier
a4fa70a478
Add macro DEQUE_DEF_AS
2020-10-03 14:07:14 +02:00
Patrick Pelissier
3d3a473716
Add macro ILIST_DEF_AS
2020-10-03 14:07:14 +02:00
Patrick Pelissier
e04b120d41
Add new macros _DEF_AS so that
...
user can define its own name for the generated types.
2020-10-03 14:07:14 +02:00
Patrick Pelissier
63eee6bba3
Update comments
2020-10-03 14:07:14 +02:00
Patrick Pelissier
b396b42808
Update comments
2020-10-03 14:07:14 +02:00
Patrick Pelissier
eb8b106f48
Update comments.
2020-10-03 14:07:14 +02:00
Patrick Pelissier
5d144991cb
Reformat & add more assertions.
2020-10-03 14:07:14 +02:00
Patrick Pelissier
35718ae551
Rename type as internal types
2020-10-03 14:07:14 +02:00
Patrick Pelissier
1dd9aff402
Factorize the name of the object at top level.
2020-10-03 14:07:14 +02:00
Patrick Pelissier
6d47074457
Rename internal types of m-core
2020-10-03 14:07:14 +02:00
Patrick Pelissier
1943650ca3
Factorization of the name of the object
...
at the top level to be able to create
new high level macros that enables
to select the full name of the type.
2020-10-03 14:07:14 +02:00
Patrick Pelissier
5722f19939
Update comments
2020-10-03 14:07:14 +02:00
Patrick Pelissier
7cf14b5d8a
Update formatting
2020-10-03 14:07:14 +02:00
Patrick Pelissier
b3a1a75f6f
Rename internal types:
...
a suffix ending with _ct means confidential type
ans is reserved for M*LIB internal usage.
OPLIST doesn't use the external types
but rather the internal types.
It enables to be independent of the real names
of the external types.
Such external names are planned to be fully customizable
(i.e. the user may define a name that suits its coding style)
2020-10-03 14:07:14 +02:00
Patrick Pelissier
eb7556f88f
Replace abort by assert for static analyszer
2020-08-22 18:58:48 +02:00
Patrick Pelissier
805c747c60
Add more assertions (help static analyzer)
2020-08-22 18:54:51 +02:00
Patrick Pelissier
5f9feb833c
Replace TAB by SPACE
2020-07-25 19:17:25 +02:00
Patrick Pelissier
efef35c1e1
Reformat
2020-07-25 18:20:17 +02:00
Patrick Pelissier
b1b32f565d
Transform TAB into SPACE.
2020-07-25 18:15:57 +02:00
Patrick Pelissier
f4cd8eaff9
Rename internal macro to TUPLEI_
2020-07-25 18:01:34 +02:00
Patrick Pelissier
2cd5258f89
Add comments
...
Replace TAB by SPACE.
2020-07-25 17:54:01 +02:00
Patrick Pelissier
1b206931df
Transform TAB into SPACE
2020-07-22 20:51:45 +02:00
Patrick Pelissier
f68840ef8c
Update doc
2020-07-19 01:12:12 +02:00
Patrick Pelissier
779c15ec08
Update tests as per new semantics
2020-07-19 01:11:15 +02:00
Patrick Pelissier
29bcc00202
Update format
2020-07-19 01:06:48 +02:00
Patrick Pelissier
1ff0d9fac0
Add test for _sort_intersect
2020-07-19 01:01:53 +02:00
Patrick Pelissier
4488853642
Factorization of _sort_union
2020-07-19 00:59:11 +02:00
Patrick Pelissier
d5dc5d083d
Fix _sort_union bug
2020-07-19 00:55:51 +02:00
Patrick Pelissier
784c42d850
Update _insert functions to update
...
iterators as per new specification.
2020-07-19 00:55:35 +02:00
Patrick Pelissier
8c1eb1fcb5
Add tests for _sort_union
2020-07-19 00:53:58 +02:00
Patrick Pelissier
49180bfbe5
Add documentation on IT_INSERT operator
2020-07-19 00:53:43 +02:00
Patrick Pelissier
a3116dd813
Update comments
2020-07-18 09:54:12 +02:00
Patrick Pelissier
23df465401
Update comments
2020-07-14 14:44:10 +02:00
Patrick Pelissier
966170452f
Improve test representativity by simulating various speeds for readers and writers
2020-07-14 14:43:14 +02:00
Patrick Pelissier
eaf7ae7dee
Fix spelling
2020-07-14 00:47:25 +02:00
Patrick Pelissier
8a6652646a
Fix formatting (Replace TAB with SPACE)
2020-07-14 00:34:59 +02:00
Patrick Pelissier
2063bf879d
Formatting: replace TAB by SPACE.
2020-07-14 00:26:26 +02:00
Patrick Pelissier
2529d4ae49
Update comments & remove warning about _Atomic
2020-07-12 22:52:36 +02:00
Patrick Pelissier
439bc06423
Fix unused value warning
2020-07-12 00:32:09 +02:00
Patrick Pelissier
ab6c90f42f
Fix issue with a warning that it triggers now but now before, whereas the code has not changed. Another random warning
2020-07-11 20:39:27 +02:00
Patrick Pelissier
ac9e9a83b9
Fix issue with warnings on MacOS
2020-07-11 20:38:51 +02:00
Patrick Pelissier
e495b92ae5
Workaround warnings about unused return value
2020-07-11 20:29:55 +02:00
Patrick Pelissier
50b1bedc54
Workaround some warnings
2020-07-11 20:13:31 +02:00
Patrick Pelissier
4a80ccd5f4
Add optimization to enable more warnings
2020-07-11 20:13:13 +02:00
Patrick Pelissier
6ca65dd60c
Update comment
2020-07-11 18:36:46 +02:00
Patrick Pelissier
b2be4d5397
Improve checking of failure detection
2020-07-11 18:02:27 +02:00
Patrick Pelissier
de34cefa83
add test for detecting call to disable method
2020-07-11 18:02:11 +02:00
Patrick Pelissier
40c8dbae1e
Update detection of disabled method
2020-07-11 18:01:48 +02:00
Patrick Pelissier
18af53cf38
Disable Wformat-nonliteral in the protected section
2020-07-11 17:18:43 +02:00
Patrick Pelissier
8510318ba5
Another minor warning about casting a double into a float
2020-07-11 17:17:59 +02:00
Patrick Pelissier
6ad02ffe56
Stop on warnings for CI
2020-07-11 16:57:03 +02:00
Patrick Pelissier
535e45d564
Update flags
2020-07-10 13:00:07 +02:00
Patrick Pelissier
e2c60aa45c
Fix another warnings that are triggered in another random combinaison of compiler settings
2020-07-10 12:59:31 +02:00
Patrick Pelissier
56d2a74818
Fix some warnings
2020-07-09 23:38:34 +02:00
Patrick Pelissier
8a36b5ff15
Workaround to avoid CLANG unused function warnings
2020-07-09 22:14:00 +02:00
Patrick Pelissier
7607645636
Reeanble Wunused-function
2020-07-09 22:13:24 +02:00
Patrick Pelissier
cbb84accfe
Add build on linux 32 bits
2020-07-09 17:31:16 +02:00
Patrick Pelissier
3e70cf7b5f
TCC doesn't support -MM, so use cc to generate them
2020-07-09 10:45:09 +02:00
Patrick Pelissier
1a7deef735
Add TCC target
2020-07-09 10:38:35 +02:00
Patrick Pelissier
748771ab72
Update comment
2020-07-09 10:37:37 +02:00
Patrick Pelissier
6ef279dd2f
Add comments
2020-07-07 18:30:14 +02:00
Patrick Pelissier
abcf37dc72
Update
2020-07-07 13:07:54 +02:00
Patrick Pelissier
690b7bf9c1
Fix other warning for msys2
2020-07-05 23:53:06 +02:00
Patrick Pelissier
71cec5155a
Fix uncompliant m-atomic support
...
if __STDC_NO_ATOMICS__ is defined, then in C11, there is no stdatomic header
2020-07-04 23:34:24 +02:00
Patrick Pelissier
d2b0873a95
Add missing make for msys2
2020-07-04 23:09:37 +02:00
Patrick Pelissier
4cecdbb93e
Add missing packages for msys2 as per https://www.msys2.org/docs/ci/
2020-07-04 23:01:47 +02:00
Patrick Pelissier
2abca7d244
Update command line for msys2 as per https://www.msys2.org/docs/ci/
2020-07-04 22:58:16 +02:00
Patrick Pelissier
c26b467e86
Update command line for msys2
2020-07-04 22:48:41 +02:00
Patrick Pelissier
19514b09b0
Add msys2 target
2020-07-04 22:34:07 +02:00
Patrick Pelissier
ab98577deb
Fix warning
2020-07-04 12:50:34 +02:00
Patrick Pelissier
aae5f00dbd
Add new benchmark
2020-07-04 00:47:06 +02:00
Patrick Pelissier
04706d48b9
Fix further warnings
2020-07-03 23:03:12 +02:00
Patrick Pelissier
c7df60c78d
Fix some warnings
2020-07-03 22:44:34 +02:00
Patrick Pelissier
f03a4503eb
Fix some warnings
2020-07-03 22:15:54 +02:00
Patrick Pelissier
a6951fe5e3
Fix warnings for clang-cl
2020-07-03 21:59:25 +02:00
Patrick Pelissier
6def48a0d1
Fix clang-cl to target x64 mode
2020-07-03 21:30:19 +02:00
Patrick Pelissier
8b5d1e07ce
Fix build with MSVC in 32 bits mode
2020-07-03 21:25:20 +02:00
Patrick Pelissier
3182c39280
Add clang-cl in the continuous Integration
2020-07-03 21:18:17 +02:00
Patrick Pelissier
e0b5dc2f02
Add test for clang-cl
2020-07-03 20:59:42 +02:00
Patrick Pelissier
6e5181e405
Fix doc on B+TREE
2020-07-02 23:22:44 +02:00
Patrick Pelissier
75f4f23144
Add comments and fix Pn level
2020-07-02 21:41:57 +02:00
Patrick Pelissier
bc1402f66a
Udpate documentation
2020-07-02 10:40:41 +02:00
Patrick Pelissier
fc5ffcb404
Update API
2020-07-02 10:39:22 +02:00
Patrick Pelissier
bd20a021ce
Update documentation
2020-07-02 10:39:15 +02:00
Patrick Pelissier
dfd12107de
Add new function _clear_ptr
2020-07-02 10:39:05 +02:00
Patrick Pelissier
6743cb9456
Add posibility for user to select Thread backend directly
2020-07-02 00:09:54 +02:00
Patrick Pelissier
4aa93325e9
Update documentation
2020-07-01 12:08:24 +02:00
Patrick Pelissier
f2a06ede62
Add mechanism to disable temporary compiler warnings in a sequence of code.
2020-07-01 11:47:55 +02:00
Patrick Pelissier
a36752b8ce
Update documentation ( Fix #66 )
2020-07-01 11:45:24 +02:00
Patrick Pelissier
3b347f2ba5
Reduce some warnings using the atomic compatibility layer (cannot fix all)
2020-07-01 11:06:58 +02:00
Patrick Pelissier
47296e5c11
The user can define M_USE_C11_NO_THREADS to disable C11 header (Support for broken C11 implementation)
2020-06-29 21:53:09 +02:00
Patrick Pelissier
a24c530ec6
Update documentation on _init_new method
2020-06-29 16:03:54 +02:00
Patrick Pelissier
7ebe0608ae
Define _init_new method only if NEW method has not been disabled
2020-06-29 16:03:38 +02:00
Patrick Pelissier
2a3021c021
Adding more code generation.
2020-06-29 16:01:38 +02:00
Patrick Pelissier
4d313aa72b
Fix warning about unused function
2020-06-29 15:16:37 +02:00
Patrick Pelissier
7906a39647
Fix warning about unused function
2020-06-29 15:16:03 +02:00
Patrick Pelissier
86254958f0
Add precision on C11 thread layer ( #65 )
2020-06-29 15:02:34 +02:00
Patrick Pelissier
0089c1af61
Remove clang-cl as it is not available
2020-06-28 23:08:44 +02:00
Patrick Pelissier
6b5a3ddef7
Add clang-cl version
2020-06-28 23:04:06 +02:00
PpHd
42c2fd69a2
Merge pull request #64 from vladipus/patch-2
...
Update m-core.h
2020-06-27 21:12:44 +02:00
Vladislav Dmitrievich Turbanov
bcb9b831db
Update m-core.h
...
A tiny typo. MSVS should be referred to as MSVC - that is the standard way.
2020-06-27 19:08:52 +03:00
Patrick Pelissier
f6483cbb30
It seems GNUC is force to 4 for APPLE/CLANG
2020-06-27 01:00:46 +02:00
Patrick Pelissier
f742707699
Always use atomic in C++
2020-06-27 00:31:58 +02:00
Patrick Pelissier
aee02d86ab
Workaround issue with CLANG++ on MAC
2020-06-27 00:10:40 +02:00
Patrick Pelissier
dfbf34daf6
Remove a warning with some compiler by encoding 0 as UINT_MAX+1
2020-06-26 23:48:59 +02:00
Patrick Pelissier
494cbbecf0
Try to make Apple Make working in C11 mode
2020-06-26 23:40:49 +02:00
Patrick Pelissier
a1513777f1
Activate C++ build too
2020-06-26 23:38:54 +02:00
Patrick Pelissier
9784a16d47
Get ride of modular arithmetic
2020-06-26 00:25:15 +02:00
Patrick Pelissier
a8648e0cc1
Fix variable name for conditional code
2020-06-25 23:49:28 +02:00
Patrick Pelissier
3f8e93ad7a
Use of intrinsic for clz within MSVS
2020-06-25 23:45:39 +02:00
Patrick Pelissier
b040bc411f
Add tests for builtin core functions
2020-06-25 23:35:34 +02:00
Patrick Pelissier
ae8c3e5300
Update documentation about array & mandatory operators
2020-06-25 22:49:54 +02:00
Patrick Pelissier
01d390c3e9
Test array without INIT_SET & SET
2020-06-25 22:49:36 +02:00
Patrick Pelissier
56e4cda76c
Make INIT_SET & SET operators of arrays as optional
2020-06-25 22:49:25 +02:00
Patrick Pelissier
c59d585c22
Add new macro to test method1 or method2 in oplist
2020-06-25 22:49:08 +02:00
PpHd
81c97682a7
Merge pull request #62 from vladipus/patch-1
...
Update README.md
2020-06-25 21:21:18 +02:00
Patrick Pelissier
a432628df6
Fix warnings for CLANG/WINDOWS ( #61 )
2020-06-25 21:18:01 +02:00
Vladislav Dmitrievich Turbanov
d16effb4c5
Update README.md
...
Fixed a small typo in the ALGO_DEF example, that features an ARRAY_OPLIST with `int` instead of `array_int`
2020-06-25 22:13:53 +03:00
Patrick Pelissier
6279f98bb5
Run also in C11 mode for CI
2020-06-24 21:15:51 +02:00
Patrick Pelissier
3cbc474e76
Document M_ENUM_OPLIST
2020-06-24 21:14:00 +02:00
Patrick Pelissier
c80fb7bebe
Add test for M_ENUM_OPLIST (in particular I/O tests)
2020-06-24 21:13:43 +02:00
Patrick Pelissier
68788a6fb8
Add M_ENUM_OPLIST
2020-06-24 21:13:13 +02:00
Patrick Pelissier
fd3cb50249
Remove temporary file
2020-06-22 00:38:19 +02:00
Patrick Pelissier
7e0bd8414d
Fix warnings for mingw
2020-06-22 00:33:10 +02:00
Patrick Pelissier
70de571dc8
Fix warnings in test suite.
2020-06-22 00:14:55 +02:00
Patrick Pelissier
cc6da8941c
* Fix wanings for reduce precision on integers.
...
* Add wrapper for strncat
2020-06-22 00:14:37 +02:00
Patrick Pelissier
d27c448a94
Fix some warnings with MSVS
...
for the test suite.
2020-06-21 23:52:12 +02:00
Patrick Pelissier
06a1590645
Add missing assertion.
2020-06-21 23:51:49 +02:00
Patrick Pelissier
652653af0b
Fix some warnings by casting
...
for compilers which cannot detect the affectations as ok.
2020-06-21 23:50:49 +02:00
Patrick Pelissier
c520b7d0be
Enable Annex K for MSVS
2020-06-21 23:36:47 +02:00
Patrick Pelissier
4f4605befb
Use of Annex K for MSVS to reduce warnings.
2020-06-21 23:36:34 +02:00
Patrick Pelissier
3f84f54d65
Add casts to avoid some compiler warnings
...
if the compiler is not able to detect the cast if safe.
2020-06-21 23:03:40 +02:00
Patrick Pelissier
bf49b8e933
Enable warnings for MSVS
2020-06-21 22:43:06 +02:00
Patrick Pelissier
1edb204ec6
Update documentation
2020-06-19 21:14:46 +02:00
Patrick Pelissier
dd5c9ac8ad
Fix corner case of string_fget_word when it doesn't end with a separator
2020-06-19 21:11:05 +02:00
Patrick Pelissier
32b6f82249
Add corner case for string_fget_word when it doesn't end with a separator
2020-06-19 21:10:46 +02:00
Patrick Pelissier
44b3895698
Fix m_core_fscan_* in case of EOF
2020-06-19 21:02:17 +02:00
Patrick Pelissier
5ce6ccde3d
Add bench for deque
2020-06-18 22:04:56 +02:00
Patrick Pelissier
ee64e068f9
Add bench for rapidjson
2020-06-14 21:12:02 +02:00
Patrick Pelissier
8d89e7c958
Add leak sanitizer to sanitize target.
2020-06-14 11:33:01 +02:00
Patrick Pelissier
ef74f8eb55
Fix other warnings about conversion but in C++
2020-06-14 01:10:37 +02:00
Patrick Pelissier
a7749e944f
Fix strange warning with gcc
2020-06-14 00:48:58 +02:00
Patrick Pelissier
18bf06ff5f
Add m_core_serial_fail for make debugging easier for serialization
...
Fix issue in saving size_t for 32 bits system
2020-06-14 00:40:11 +02:00
Patrick Pelissier
b27f490acb
Fix typing
2020-06-14 00:18:26 +02:00
Patrick Pelissier
e84fa859c6
Fix implicit conversion.
2020-06-14 00:17:44 +02:00
Patrick Pelissier
4c57ca69bc
Support for 32 bits system.
2020-06-14 00:17:22 +02:00
Patrick Pelissier
b0d2557ea1
string_fgets:
...
Fix buffer overflow for very big string
2020-06-14 00:17:09 +02:00
Patrick Pelissier
82906e03e9
Add warning also for GCC.
2020-06-13 20:02:29 +02:00
Patrick Pelissier
1859868838
Fix sign conversion for algorithm tests.
2020-06-13 20:02:14 +02:00
Patrick Pelissier
4ab3a3605b
Fix -Wsign-conversion warnings in tests.
2020-06-13 19:43:52 +02:00
Patrick Pelissier
279b46b4e2
Fix -Wsign-conversion warnings.
2020-06-13 19:43:38 +02:00
Patrick Pelissier
17950c5fe5
Fix corner cases for string_reserve
2020-06-13 18:57:53 +02:00
Patrick Pelissier
45b94c8abc
Add corner cases for string_reserve
2020-06-13 18:57:39 +02:00
Patrick Pelissier
a98ebd3b20
Fix test.
2020-06-13 18:53:40 +02:00
Patrick Pelissier
cb7cd1ac67
Simplify code
2020-06-13 18:53:28 +02:00
Patrick Pelissier
9a41faf40a
Fix -Wsign-conversion warning for strings.
2020-06-13 18:41:23 +02:00
Patrick Pelissier
8c44362f74
More test case.
2020-06-13 18:41:06 +02:00
Patrick Pelissier
548c0c0c61
Fix -Wsign-conversion warning
2020-06-13 18:37:10 +02:00
Patrick Pelissier
607221f480
Fix expected result due to change in list + INIT_WITH
2020-06-13 18:19:29 +02:00
Patrick Pelissier
160c76361b
Add -Wsign-conversion when checking with clang
2020-06-13 18:15:53 +02:00
Patrick Pelissier
2fadad0c8d
Fix warnings raised by -Wsign-conversion of clang
...
in m-core.h
2020-06-13 18:15:26 +02:00
Patrick Pelissier
4d4973abcc
Fix warning
2020-06-13 17:57:31 +02:00
Patrick Pelissier
f8ae9eb677
Add bench of serialization of integers
2020-06-13 17:38:14 +02:00
Patrick Pelissier
de825203cf
Ignore other temporary files
2020-06-13 17:37:54 +02:00
Patrick Pelissier
4f865176d3
Add bench for serialization.
2020-06-13 17:30:58 +02:00
Patrick Pelissier
cb4b43e2e8
* Add length param for seralization write_string
...
to increase a little bit the performance for big strings.
* Change the format of storing strings for serial-bin.
2020-06-13 17:26:07 +02:00
Patrick Pelissier
89b6e1aac0
Adding serialization for bounded string
2020-06-13 11:30:52 +02:00
Patrick Pelissier
daeaa242b8
Add new types to be used for M_LET:
...
* m_serial_bin_write_t
* m_serial_bin_read_t
2020-06-13 11:21:33 +02:00
Patrick Pelissier
100af17328
Make copyright notice explicit
2020-06-13 10:44:47 +02:00
Patrick Pelissier
7527bfec85
Update comments
2020-06-13 00:17:35 +02:00
Patrick Pelissier
f73d25c92d
Update documentation after renaming
2020-06-12 20:00:20 +02:00
Patrick Pelissier
9080f5d52f
Add basic tests for M_KEEP_ARGS / M_SKIP_ARGS / M_MID_ARGS
2020-06-12 20:00:04 +02:00
Patrick Pelissier
6beb142bbe
Fix conflict with SVID2/XPG mallopt options #53
2020-06-12 19:58:18 +02:00
PpHd
9b8b93288a
Merge pull request #51 from vladipus/patch-1
...
Update README.md
2020-06-12 19:42:51 +02:00
Vladislav Dmitrievich Turbanov
6a2a549ec5
Update README.md
...
Fixed a M_IPTR missing *
2020-06-11 19:46:40 +03:00
Patrick Pelissier
468b7e7a0c
Add bench for CMC
2020-06-10 22:29:59 +02:00
Patrick Pelissier
fd640e9232
Update change of behaviors
2020-06-08 22:58:52 +02:00
Patrick Pelissier
d13d7feae3
Update test as per new behavior
2020-06-08 22:58:41 +02:00
Patrick Pelissier
17f69326e2
Reverse order of a list initialized with M_LET to match the behavior of array
2020-06-08 22:58:30 +02:00
Patrick Pelissier
273fcd51b6
Add bench for rigtorp MPMCQueue
2020-06-06 12:00:52 +02:00
Patrick Pelissier
f4b9185ceb
Update documentation on QUEUE_MPMC
2020-06-06 11:09:55 +02:00
Patrick Pelissier
b722227b39
Update comment
2020-06-05 21:06:06 +02:00
Patrick Pelissier
3d7e2f5c6b
Fix m*lib version
2020-06-05 21:01:11 +02:00
Patrick Pelissier
9369530068
Comments & formating
2020-06-05 20:50:34 +02:00
Patrick Pelissier
4e968c3777
Comment the exponential backoff object.
2020-06-05 20:39:16 +02:00
Patrick Pelissier
9a5302ac19
Rename internal backoff
...
to avoid consummign too much namespace
2020-06-05 20:34:31 +02:00
Patrick Pelissier
8216ef0f7b
Factorization of check of index
...
So that it can be reused for other modules.
2020-06-05 20:30:07 +02:00
Patrick Pelissier
b897027021
Add user customizable ARRAY macro
...
for checking if index is within the allowedd bounds even in release mode
2020-06-05 00:11:22 +02:00
Patrick Pelissier
6095cf8610
Reindent file.
2020-06-04 23:51:17 +02:00
Patrick Pelissier
e917ac5663
Update comments and simplify
2020-06-02 22:57:38 +02:00
Patrick Pelissier
2b44892aad
Add more comments
2020-05-31 00:36:47 +02:00
Patrick Pelissier
294e45c7e1
Add comments
2020-05-31 00:15:46 +02:00
Patrick Pelissier
467acfdd10
Use of M_BOOL_OPLIST
...
to avoid warnings.
2020-05-30 23:45:46 +02:00
Patrick Pelissier
d3823951b5
Add M_BOOL_OPLIST
2020-05-30 23:45:29 +02:00
Patrick Pelissier
cc33079d43
Add comments
2020-05-30 23:38:31 +02:00
Patrick Pelissier
78d0bfb286
Port new error oplist format to all containers.
2020-05-30 18:00:43 +02:00
Patrick Pelissier
b2f5ae6917
Proper generation.
2020-05-30 17:54:58 +02:00
Patrick Pelissier
9c723da768
Change format of errror on oplist
...
This is to enable M_GLOBAL_OPLIST_OR_DEF to properly expand the erroneous oplist to the backend generator, that will report the error.
As such the erreneous oplist is surrounded by two pairs of brackets (())
2020-05-30 17:54:22 +02:00
Patrick Pelissier
70c3932f6e
Add new test on proper error checking
2020-05-30 17:52:31 +02:00
Patrick Pelissier
92bddcaab4
Fix preprocessing issue
...
in case of recursive tuple or variant.
2020-05-30 12:13:43 +02:00
Patrick Pelissier
79a8401d75
Fix oplist definiiton
...
Improve test suite
2020-05-30 12:07:21 +02:00
Patrick Pelissier
570473e465
Improve test suite.
2020-05-30 11:33:37 +02:00
Patrick Pelissier
990b7b02d7
Update list of expected failures
2020-05-30 11:23:53 +02:00
Patrick Pelissier
0b301d1cea
Fix oplist definition.
2020-05-30 11:12:15 +02:00
Patrick Pelissier
f35db79792
Work around C++ warnings
2020-05-30 10:46:17 +02:00
Patrick Pelissier
dc1f163716
Fix option name with new cl
2020-05-30 10:41:51 +02:00
Patrick Pelissier
4d6bb407ee
Reenable MSVC test suite with new compiler version (16.6)
2020-05-30 10:34:02 +02:00
Patrick Pelissier
37cef298c6
Update format
2020-05-29 21:49:03 +02:00
Patrick Pelissier
0396d1f648
Go to next development version
2020-05-29 21:07:43 +02:00
Patrick Pelissier
e694d83cc4
V0.4.0
2020-05-27 21:50:03 +02:00
Patrick Pelissier
19fc150763
Discard warning with clang++
2020-05-27 21:41:31 +02:00
Patrick Pelissier
3784f653d9
Fix warning with CLANG
2020-05-27 21:41:11 +02:00
Patrick Pelissier
eb40cff6a1
Improve checkall target to stop on warning
2020-05-27 21:09:07 +02:00
Patrick Pelissier
b7f84236d3
* Update comments
...
* Micro optimization
2020-05-25 21:41:16 +02:00
Patrick Pelissier
65e3f1049b
* Update comments.
...
* Fix position of const for some prototypes.
2020-05-25 00:23:12 +02:00
Patrick Pelissier
cc45b9c1fe
Fix issue in test suite.
2020-05-24 20:39:20 +02:00
Patrick Pelissier
9340c2e55c
Fix memory leak for _parse_str in case of error.
2020-05-24 19:50:32 +02:00
Patrick Pelissier
9710e014f2
Reindent function
2020-05-24 19:19:19 +02:00
Patrick Pelissier
7761fb6bf1
Add contract for tuple & variant.
2020-05-24 19:08:18 +02:00
Patrick Pelissier
2f4df5f67c
Fix potential read before init in test.
2020-05-24 19:07:29 +02:00
Patrick Pelissier
b841f81416
Fix package name for MS Windows
...
The filesystem doesn't support '*'
2020-05-24 18:14:25 +02:00
Patrick Pelissier
72fd53ab44
Update comments
2020-05-24 12:01:56 +02:00
Patrick Pelissier
8335bc525b
Add comments
2020-05-23 16:09:18 +02:00
Patrick Pelissier
9e5d14ce36
Factorization & add tests
2020-05-21 13:10:50 +02:00
Patrick Pelissier
3bafede8b7
* Make the test more pertinent
2020-05-21 12:32:33 +02:00
Patrick Pelissier
3f2904ab0d
* Add comment
2020-05-21 12:32:20 +02:00
Patrick Pelissier
933b495ed1
* Optimization for M_LET for a string_t in case of constant non formatted string
...
* Support for string_t in M_LET for string_t in C11 mode.
* Adding associate test
2020-05-21 12:19:17 +02:00
Patrick Pelissier
77813adc00
Add example of formatted C string for string in M_LET
2020-05-21 11:55:35 +02:00
Patrick Pelissier
ce2adea6c0
Update documentation
2020-05-21 09:54:08 +02:00
Patrick Pelissier
3ecdfff8f0
Remove more cleanly generated configuration file.
2020-05-21 00:54:24 +02:00
Patrick Pelissier
a103ceb850
Add new example of array of string.
2020-05-21 00:36:35 +02:00
Patrick Pelissier
9f24b89487
Add debug flag for example
2020-05-21 00:36:13 +02:00
Patrick Pelissier
8be06cadb3
Add comments on description.
2020-05-20 23:21:27 +02:00
Patrick Pelissier
c488d979cf
Ignore Visual Code directory if any.
2020-05-20 23:05:28 +02:00
Patrick Pelissier
f4c24f07af
Update comment description of macros and functions
2020-05-20 22:36:36 +02:00
Patrick Pelissier
3d2ce63d63
Fix performance issue in benchmarks
2020-05-19 23:21:00 +02:00
Patrick Pelissier
0ac2c62ffe
Port to new API
2020-05-19 22:57:08 +02:00
Patrick Pelissier
6001781e68
Cleanup namespace, add comments, and remove dead code
2020-05-17 21:39:24 +02:00
Patrick Pelissier
d90cb7caf3
Update doc
2020-05-17 12:11:10 +02:00
Patrick Pelissier
88a4835025
Fix issue when defining algorithm with same prefix than container
2020-05-17 12:11:04 +02:00
Patrick Pelissier
75ae7a06e5
Add missing tests
2020-05-17 11:53:43 +02:00
Patrick Pelissier
3885cb29a2
Add control of type and oplists
2020-05-17 11:53:27 +02:00
Patrick Pelissier
bf3ffd1766
Add test cases for new control
2020-05-17 11:10:06 +02:00
Patrick Pelissier
d884d257bb
Export TYPE operator in oplist
2020-05-17 10:53:17 +02:00
Patrick Pelissier
a87cac84dd
Move up control so that it is the first error reported by the compiler.
2020-05-17 10:52:54 +02:00
Patrick Pelissier
d1ae26f0fd
* Add control than the type and the oplist are compatible
2020-05-17 10:27:30 +02:00
Patrick Pelissier
9c58e73c37
* Add M_CHECK_COMPATIBLE
...
* Fix issue in oplist
2020-05-17 10:26:40 +02:00
Patrick Pelissier
024b62a7a7
Add instance for M_CHECK_COMPATIBLE to be able to check multiple types within one container.
2020-05-17 10:26:08 +02:00
Patrick Pelissier
c59731775e
* Provide alternative for M_STATIC_ASSERT in GNUC + C11 with improved error messages
...
* Add internal macro M_CHECK_COMPATIBLE_OPLIST to check if a type and an oplist could match.
2020-05-17 09:36:50 +02:00
Patrick Pelissier
4668476c6a
Fix issue with old version of ICC
2020-05-16 14:47:30 +02:00
Patrick Pelissier
743959ebde
Fix micro performance issue
2020-05-16 14:09:49 +02:00
Patrick Pelissier
dd27fa7e72
Add coverage for Function Object
2020-05-16 10:24:29 +02:00
Patrick Pelissier
f2025f83d3
Fix help usage
2020-05-16 09:41:05 +02:00
Patrick Pelissier
8c06b43b2b
Update tests for new controls
2020-05-15 21:46:18 +02:00
Patrick Pelissier
3cde7a1731
Add protection for use of oplist within a container oplist
2020-05-15 21:46:03 +02:00
Patrick Pelissier
e9db1d28b8
Try to work around to print the oplist
2020-05-15 21:45:21 +02:00
Patrick Pelissier
adffaf0e87
Fix illegal usage of oplist for function object
2020-05-15 21:45:02 +02:00
Patrick Pelissier
49a2e600c4
Add control of sub-oplist when creating a new oplist of a container
...
Add test case of this new control
Fix some corner bugs in some containers evolving their own oplists.
2020-05-15 21:19:39 +02:00
Patrick Pelissier
0bedcba32b
Rewrite M_STATIC_ASSERT to include an error code and message
...
Add more control on the default expanded macros to check if arguments are compatible
2020-05-15 14:51:20 +02:00
Patrick Pelissier
c531f805b0
Define _reduce only if SET method is properly set
2020-05-15 14:31:47 +02:00
Patrick Pelissier
da0ab5ea98
Update failure tests as per latest checks
2020-05-11 20:55:16 +02:00
Patrick Pelissier
6774afd751
Add checks of missing oplist in the last _DEF macros
2020-05-11 20:54:50 +02:00
Patrick Pelissier
6d489136e7
Update help
2020-05-10 22:18:19 +02:00
Patrick Pelissier
4ea6dbc7fa
Update makefile as per latest version of library
2020-05-10 20:21:03 +02:00
Patrick Pelissier
defc58f6a3
Update bench code to latest version of the library.
2020-05-10 20:20:37 +02:00
Patrick Pelissier
006d0d16a5
Fix error
2020-05-10 20:20:03 +02:00
Patrick Pelissier
b8af8bb344
Redisable MSVC testing with new version of compiler
2020-05-10 12:40:37 +02:00
Patrick Pelissier
e249be1142
Reenable MSVC testing with new version of compiler
2020-05-10 12:38:36 +02:00
Patrick Pelissier
05fde6c3cf
Display MSVC compiler full version
2020-05-10 12:06:31 +02:00
Patrick Pelissier
aaa1d7dc4b
Update description of test
2020-05-10 11:20:16 +02:00
Patrick Pelissier
8c479b2e5a
Update tests
2020-05-10 11:17:25 +02:00
Patrick Pelissier
45d2a529b5
Add more validation of oplists before expanding data
2020-05-10 11:16:46 +02:00
Patrick Pelissier
7d17223332
Update comments
2020-05-10 11:15:56 +02:00
Patrick Pelissier
12bc65b6a8
Fix spelling
2020-05-10 11:15:28 +02:00
Patrick Pelissier
a849d5c031
Make check-failure tests parallel
2020-05-09 21:39:01 +02:00
Patrick Pelissier
f195b09657
Add more tests
2020-05-09 21:38:48 +02:00
Patrick Pelissier
439177ec71
Add protection against wrong oplist in more headers
2020-05-09 21:38:32 +02:00
Patrick Pelissier
aadd4f11b1
Update tests as per new checks
2020-05-09 17:16:11 +02:00
Patrick Pelissier
113fdbf388
Add more controls on proper presence of oplist for _DEF macros
2020-05-09 17:16:00 +02:00
Patrick Pelissier
648406a99a
Update tests as per new checks
2020-05-09 16:11:11 +02:00
Patrick Pelissier
055e74d350
Add more check for valid oplists before expanding further
2020-05-09 16:10:56 +02:00
Patrick Pelissier
ac3d7568f2
Update test
2020-05-09 11:20:05 +02:00
Patrick Pelissier
6c222b9ad7
Raise proper failure if M_let is used without an oplist
...
Raise proper failure if a TYPE operator is used in an oplist that doesn't export it.
2020-05-09 11:15:44 +02:00
Patrick Pelissier
4426a60904
Add test for testing expected failures
2020-05-09 10:56:31 +02:00
Patrick Pelissier
34f70a031f
Use M_STATIC_FAILURE to stop expanding methods in case of detected failure
2020-05-09 10:56:05 +02:00
Patrick Pelissier
79f2f396b9
Add macro M_STATIC_FAILURE to abort expansion in case of error
2020-05-09 10:55:25 +02:00
Patrick Pelissier
88143f7d52
Update ignore file
2020-05-09 10:54:30 +02:00
Patrick Pelissier
c1261dd0f2
Fix doc
2020-05-08 21:47:19 +02:00
Patrick Pelissier
8f7a60ea73
Add documentation for function object
2020-05-08 21:43:35 +02:00
Patrick Pelissier
4758bbd6cc
Add more tests
2020-05-08 21:23:48 +02:00
Patrick Pelissier
3f66325c19
Add new example for function object, json & algorithms
2020-05-08 17:50:07 +02:00
Patrick Pelissier
6f10d7deb9
Add synonym of serialisater with specialized oplists to be used in RAII
2020-05-08 17:49:44 +02:00
Patrick Pelissier
919900c90a
Update documentation
2020-05-08 17:48:56 +02:00
Patrick Pelissier
e6daaf429c
Add some tests for function objects
2020-05-08 11:37:38 +02:00
Patrick Pelissier
1200f30695
* Add more Function Object support in algorithm
...
* Fix bug of selection sort
2020-05-08 11:35:22 +02:00
Patrick Pelissier
fca1120990
No longer export IT_REF for map containers (See API changes)
2020-05-08 11:33:28 +02:00
Patrick Pelissier
3735704c95
Update new API change
2020-05-08 11:30:57 +02:00
Patrick Pelissier
8c0c1b3102
Update documentation of reduce if the container is empty
2020-05-08 11:30:38 +02:00
Patrick Pelissier
db192993f1
Reduce constraint as the dictionnary iteration is not modifiable
2020-05-08 00:27:15 +02:00
Patrick Pelissier
4f44b3f60b
Add CMP callback
2020-05-07 22:13:36 +02:00
Patrick Pelissier
b196fcc3c0
Rename _cmp_cb_t into _eq_cb_t
2020-05-07 22:10:53 +02:00
Patrick Pelissier
395f1af19e
Implement more function object algorithm
2020-05-07 22:09:07 +02:00
Patrick Pelissier
d8f761e889
Update Makefile for dist
2020-05-05 23:44:27 +02:00
Patrick Pelissier
563ffb4275
Add first support for function object for certain algos (WIP)
2020-05-05 23:34:34 +02:00
Patrick Pelissier
9ba2de4b70
Add macro M_IF_FUNCOBJ to handle conditional expression if the function object is defined
2020-05-05 23:34:12 +02:00
Patrick Pelissier
0ac6a53fe9
Define callback types
2020-05-05 22:57:19 +02:00
Patrick Pelissier
4431e9f9ae
Factorization / Split of the definition of the algorithm
2020-05-05 22:40:03 +02:00
Patrick Pelissier
48526ff5c7
Simplify logic due to fix of M_PARENTHESIS_P
2020-05-04 00:33:00 +02:00
Patrick Pelissier
4ee453025c
Add comments
2020-05-04 00:32:40 +02:00
Patrick Pelissier
1e7b543c0f
Fix issue with oplists with 3 arguments and fix warnings
2020-05-04 00:30:14 +02:00
Patrick Pelissier
8c2b4f8cf9
Add test cases for function object
2020-05-04 00:29:42 +02:00
Patrick Pelissier
13cadfa470
Update description of the list of headers
2020-05-03 18:00:46 +02:00
Patrick Pelissier
deb595372b
Add first version of Function Object
2020-05-03 17:49:02 +02:00
Patrick Pelissier
01fd5d929e
* Fix M_RET_ARG so that it accepts also a list of the exact number of arguments (instead of one more) * Add more keywords for pattern recognation
2020-05-03 13:13:45 +02:00
Patrick Pelissier
2d60bd2c1b
Fix a bug in M_PARENTHESIS_P
2020-05-02 10:19:31 +02:00
Patrick Pelissier
9655b13203
Add more corner cases for M_PARENTHESIS_P
2020-05-02 10:18:52 +02:00
Patrick Pelissier
6b97a7436d
Add basic tests for dispathing init_with based on their number of args
2020-05-02 10:06:30 +02:00
Patrick Pelissier
1c792dd0a4
Add option for init_with to dispatch to different methods in function of the number of args
2020-05-02 10:06:08 +02:00
Patrick Pelissier
dcbd9f496f
Document NAME operator
2020-05-02 09:56:23 +02:00
Patrick Pelissier
9804120cde
* Add simple test for registration of int global operator
2020-05-02 09:56:11 +02:00
Patrick Pelissier
a9b06718f0
* Add simple test for NAME operator
2020-05-02 09:55:28 +02:00
Patrick Pelissier
963d819e22
* Add NAME operator. * Register default oplist for char,short,int,long,float,double
2020-05-02 09:55:10 +02:00
Patrick Pelissier
28847af43f
Update constraints on MOVE & INIT_MOVE operators
2020-04-27 23:12:06 +02:00
Patrick Pelissier
130fa36970
Update iterator constraint
2020-04-27 22:55:53 +02:00
Patrick Pelissier
ab99035291
Add another example
2020-04-20 23:50:05 +02:00
Patrick Pelissier
6de43d8a45
Add doc for ALGO_REDUCE with different type
2020-04-20 23:49:48 +02:00
Patrick Pelissier
7b46891622
Add test for ALGO_REDUCE with different type
2020-04-20 23:49:35 +02:00
Patrick Pelissier
a0a32d8c6c
ALGO_REDUCE accept dest with different type than the container
2020-04-20 23:49:16 +02:00
Patrick Pelissier
1ffd07dc6e
Update format
2020-04-11 00:25:40 +02:00
Patrick Pelissier
cb49cd7100
* Fix integer overflow in test of mul reduction
2020-04-10 08:35:44 +02:00
Patrick Pelissier
923b340a80
* Update documentation
2020-04-10 08:29:55 +02:00
Patrick Pelissier
5b8750ee2a
* Add support for product in ALGO_REDUCE
2020-04-10 08:28:16 +02:00
Patrick Pelissier
d438d089fb
Add note on the provided oplists
2020-04-10 08:19:59 +02:00
Patrick Pelissier
843ddac3dd
Proper prefix internal variables of macros by '_'
2020-04-01 23:40:41 +02:00
Patrick Pelissier
c5238e0a4c
Add new example for algorithm
2020-04-01 23:40:16 +02:00
Patrick Pelissier
f99ee8aa40
Update documentation
2020-04-01 23:28:07 +02:00
Patrick Pelissier
18c7d0e11a
Add test for SET_KEY only containers for ALGO_EXTRACT
2020-04-01 23:27:38 +02:00
Patrick Pelissier
4e67823593
Add support for SET_KEY only containers for ALGO_EXTRACT
2020-04-01 23:27:20 +02:00
Patrick Pelissier
e7fcefb391
* Dict supports INIT_WITH method too.
2020-03-29 00:49:36 +01:00
Patrick Pelissier
be06426783
Add documentation for ALGO_TRANSFORM
2020-03-28 17:41:29 +01:00
Patrick Pelissier
e558e83be3
Add test case for ALGO_TRANSFORM
2020-03-28 17:41:16 +01:00
Patrick Pelissier
d77a235b2a
Add macro ALGO_TRANSFORM
2020-03-28 17:41:04 +01:00
Patrick Pelissier
3add6bb5bf
Improve test suite
2020-03-28 17:17:43 +01:00
Patrick Pelissier
4367daaa00
Add documentation for _transform method.
2020-03-28 13:34:17 +01:00
Patrick Pelissier
4d46b3d126
Add basic test cases for _transform method.
2020-03-28 13:34:02 +01:00
Patrick Pelissier
548cd84a7f
Add _transform method for algorithm.
2020-03-28 13:33:43 +01:00
Patrick Pelissier
d87ffaa572
Improve documentation.
2020-03-28 13:07:35 +01:00
Patrick Pelissier
370cdb4e45
Add another example.
2020-03-28 13:05:15 +01:00
Patrick Pelissier
068d023917
Factorize in m-core.h the pattern recognication.
2020-03-28 11:36:51 +01:00
Patrick Pelissier
86b6ad54d5
Rename filln, filla, fillan into fill_n, fill_a, fill_an (same name as C++)
2020-03-28 11:10:02 +01:00
Patrick Pelissier
bdf999a9fc
Disable fully VC++ build as the build is fully broken due to regression in version 16.5 vs 16.4
2020-03-26 22:34:51 +01:00
Patrick Pelissier
39f8b6828b
Try workaround against regression with new VisualC++
2020-03-26 22:03:11 +01:00
Patrick Pelissier
11f84ab34b
Document new algorithms
2020-03-26 21:49:04 +01:00
Patrick Pelissier
c3a5306266
Add function _fill, _filln, _filla, _fillan as algorithms
2020-03-26 21:48:46 +01:00
Patrick Pelissier
1fe9e4c14c
Export ADD / MUL / DIV / SUB for basic C types.
2020-03-26 21:44:19 +01:00
Patrick Pelissier
e69203dc50
Remove exported PUSH / POP methods as they don't follow stricly the prototypes of such functions.
2020-03-26 21:43:44 +01:00
Patrick Pelissier
342954f272
Fix introduced build error for Mingw
2020-03-25 11:56:38 +01:00
Patrick Pelissier
741d6b8828
Test string + algorithm
2020-03-25 11:44:35 +01:00
Patrick Pelissier
f1f41ef320
* Add missing iterator functions * Export iterators in oplist so that it is usable in algorithm
2020-03-25 11:43:55 +01:00
Patrick Pelissier
785792d1f4
Allow build of examples in C11 mode
2020-03-25 11:17:06 +01:00
Patrick Pelissier
9affe3106c
Add example of ALGO_FOR_EACH and ALGO_REDUCE
2020-03-25 11:16:19 +01:00
Patrick Pelissier
eb9fd14e2c
Fix documentation.
2020-03-25 10:19:43 +01:00
Patrick Pelissier
c281a2c339
Update CI script to include VC++
2020-03-02 18:09:53 +01:00
Patrick Pelissier
cb109eb479
Add proper progression for special script
2020-03-02 14:35:49 +01:00
Patrick Pelissier
3c6d194974
Add script to launch the test suite with VC++
2020-03-02 14:25:42 +01:00
Patrick Pelissier
653a0d9734
Fix build issue for systems where double==long double
2020-03-02 14:23:59 +01:00
Patrick Pelissier
a5fbd8405c
Avoid C99 construct incompatible with strict C++ compiler
2020-02-24 22:27:43 +01:00
Patrick Pelissier
70994d4f60
Update doc
2020-02-16 11:06:43 +01:00
Patrick Pelissier
f15203afb2
Comment a little bit more the examples
2020-02-10 06:47:24 +01:00
Patrick Pelissier
0a0d707afd
Document bitset
2020-02-08 23:39:30 +01:00
Patrick Pelissier
e206c3fe48
Document SPSC buffer
2020-01-23 23:18:33 +01:00
Patrick Pelissier
7f5704d321
Document MPMC buffer
2020-01-09 22:52:02 +01:00
Patrick Pelissier
4f7b0b9455
Happy new year 2020
2020-01-04 15:41:06 +01:00
Patrick Pelissier
f5f16015df
In quiet mode, if the result of the bench is not assumed to be reliable, display -1 instead of the result.
2020-01-04 15:12:59 +01:00
Patrick Pelissier
935325e0cb
Add bench of emilib
2020-01-04 15:06:24 +01:00
Patrick Pelissier
7b9530ac58
Fix name of bench
2020-01-04 15:05:12 +01:00
Patrick Pelissier
a9fc259420
ALGO_EXTRACT func argument is now optional
2019-12-30 14:31:21 +01:00
Patrick Pelissier
6f603b52df
Update comments
2019-12-30 14:11:41 +01:00
Patrick Pelissier
aeb2a47952
Add comments to example
2019-12-30 13:44:03 +01:00
Patrick Pelissier
ca7cea3fe3
Use of linear probing and the same hash function as other libraries
2019-12-30 00:12:05 +01:00
Patrick Pelissier
f14aca8808
Port to new UDB2 protocol
2019-12-29 23:51:30 +01:00
Patrick Pelissier
f1e5e9d9db
Simplify code to use get_at method with its get & create semantic
2019-12-29 23:45:17 +01:00
Patrick Pelissier
cecba9777a
Update documentation on buffer/queues
2019-12-27 16:42:54 +01:00
Patrick Pelissier
4352267034
Update deprecated API
2019-12-27 16:42:00 +01:00
Patrick Pelissier
0c3730d9a3
Migrate version to 0.3.1
2019-12-27 16:41:42 +01:00
Patrick Pelissier
5111b0c726
Deprecated some buffer options since the _blocking functions are much more usefull
2019-12-27 16:39:42 +01:00
Patrick Pelissier
8ecd3f1592
Add best_within and variance
2019-12-23 23:05:48 +01:00
Patrick Pelissier
0a6f8851c9
Update list of bench to launch automatically
2019-12-20 21:37:51 +01:00
Patrick Pelissier
f0d3e93d9d
Tune for Windows CI: C11 is broken, so switch to C99 and requests ISO C compatible printf function.
2019-12-16 12:44:56 +01:00
Patrick Pelissier
e77ff2451b
Try setup CCI for windows
2019-12-16 12:31:10 +01:00
Patrick Pelissier
142c224f84
Add another example on complex structure usage
2019-12-15 19:53:46 +01:00
Patrick Pelissier
29e8d9199d
Update doc about new API
2019-12-15 19:43:38 +01:00
Patrick Pelissier
7128f5add2
* Add support for API_6 & API_7. * Fix issue for DO_INIT_MOVE that doesn't support API calls
2019-12-15 19:43:26 +01:00
Patrick Pelissier
1b7bcda4e1
Add quiet mode. Add usage
2019-12-15 10:30:40 +01:00
Patrick Pelissier
03b6146ef0
Add option to print only the best or only the average
2019-12-15 10:12:38 +01:00
Patrick Pelissier
e99735d2b6
Add repeat option for bench
2019-12-15 10:01:32 +01:00
Patrick Pelissier
7263629c55
Add rigtop hashmap
2019-12-14 20:59:01 +01:00
Patrick Pelissier
605ce9b938
* Update version * Update comments * Improve robustness
2019-12-14 11:12:59 +01:00
Patrick Pelissier
049d8b6ca6
Port to new libdynamic API
2019-12-13 23:00:57 +01:00
Patrick Pelissier
90d3dda830
Clean up generated plot files too
2019-12-09 07:53:43 +01:00
Patrick Pelissier
2022a66db3
* Update makefile (missing coverage) * Refactor
2019-12-08 22:17:56 +01:00
Patrick Pelissier
78c786070e
Add coverage support
2019-12-08 22:17:27 +01:00
Patrick Pelissier
c5c72007af
Update list of files to distribute
2019-12-08 21:53:20 +01:00
Patrick Pelissier
c60d59cb7a
Port all benchs to new infrastructure
2019-12-07 19:21:21 +01:00
Patrick Pelissier
00111e3e3c
Port more bench to new infrzastructure
2019-12-07 14:45:06 +01:00
Patrick Pelissier
5cc2ac17d9
Add support for generating gnuplot graph
2019-12-07 12:22:33 +01:00
Patrick Pelissier
d37ea84ab5
Cleanup redundant 'time' word
2019-12-07 11:59:23 +01:00
Patrick Pelissier
5e335bc8bd
* Port to generic parser
2019-12-07 11:58:47 +01:00
Patrick Pelissier
65765763ae
* Add generic parser for bench. * Factorization
2019-12-07 11:58:19 +01:00
Patrick Pelissier
90f248fbe8
Rename interface field of serial object into m_interface (WINDOWS compatibility as it defines a macro called interface)
2019-12-06 21:13:37 +01:00
Patrick Pelissier
a39cf23697
Remove a warning (WINDOWS)
2019-12-06 21:10:00 +01:00
Patrick Pelissier
261776762c
Update debugging documentation
2019-12-02 23:38:29 +01:00
Patrick Pelissier
f207f9441c
Remove linker warning for examples
2019-11-30 00:33:53 +01:00
Patrick Pelissier
ffed880e0a
Fix static assert for C++ (disable them totally as static_assert doesn't work -- It can't be used in expressions)
2019-11-30 00:08:59 +01:00
Patrick Pelissier
a79b67cea2
Generate better error message in case of missing methods in OPLIST for GCC/CLANG
2019-11-29 23:45:48 +01:00
Patrick Pelissier
bc3c8b5bcd
Fix M_DO_INIT_MOVE / M_DO_MOVE to be more conservative. M_MOVE_DEFAULT doesn't work for all types ([1] structure). A MOVE operator should be defined however.
2019-11-29 23:23:27 +01:00
Patrick Pelissier
3489bb42bc
Add static assertion and use it for move/copy/cmp default
2019-11-29 23:13:28 +01:00
Patrick Pelissier
7fe36f7bd7
Add test for M_MOVE_DEFAULT
2019-11-29 23:12:34 +01:00
Patrick Pelissier
82fd4c94db
Update CI (Simplify CI tests)
2019-11-25 23:09:54 +01:00
Patrick Pelissier
4fc48b490e
Update CI
2019-11-25 23:05:25 +01:00
Patrick Pelissier
750e5e6d95
Add target checkall at root Makefile
2019-11-25 22:50:50 +01:00
Patrick Pelissier
cb564128e6
Update doc
2019-11-24 09:16:43 +01:00
PpHd
047fc986f2
Setup github workflows for Continuous Integration
2019-11-24 09:05:44 +01:00
Patrick Pelissier
aca800ef8a
Fix warning with lastest GCC about strict overflow
2019-11-24 08:50:55 +01:00
Patrick Pelissier
dde090d4b0
Make GMP optional for the examples
2019-11-24 08:34:39 +01:00
Patrick Pelissier
87183573ce
Ignore generated configuration
2019-11-24 08:27:40 +01:00
Patrick Pelissier
baddcc3855
Avoid warning about variable being unused (C11)
2019-11-23 23:28:36 +01:00
Patrick Pelissier
ba531774a0
Fix doc
2019-11-21 06:28:28 +01:00
Patrick Pelissier
708d17a4d2
Update README on details on OPLIST
2019-11-21 06:27:32 +01:00
Patrick Pelissier
7d802c03e5
Update README on details on OPLIST
2019-11-21 06:26:10 +01:00
Patrick Pelissier
787e1e9965
Merge branch 'master' of https://github.com/P-p-H-d/mlib
2019-11-05 19:56:09 +01:00
Patrick Pelissier
625691d279
Clarify doc on m-worker
2019-11-05 08:13:16 +01:00
Patrick Pelissier
4f0148dc77
Update doc with new container
2019-11-02 12:56:00 +01:00
Patrick Pelissier
c78f2b992f
Add support for set based on OA hashmap (DICT_OASET_DEF)
2019-11-02 08:40:24 +01:00
Patrick Pelissier
9857db0d15
Prepare integration of set based on OA hashmap for _ref and _cref
2019-11-02 08:29:44 +01:00
Patrick Pelissier
8b71064643
Simplify code for SET (since EQUAL returns TRUE as an EMPTY method)
2019-11-02 08:24:42 +01:00
Patrick Pelissier
bc39034f6d
Prepare integration of set based on OA hashmap
2019-11-02 08:17:44 +01:00
Patrick Pelissier
e6a9b8fc8e
Add M_EMPTY_OPLIST
2019-11-02 08:16:45 +01:00
Patrick Pelissier
3db43dc2db
Update comments
2019-11-02 07:33:48 +01:00
Patrick Pelissier
d384d5ad6c
Always use INIT_MOVE when shrinking or enlarging the OA hashmap (Reversing the order of the last scanning)
2019-11-01 20:01:02 +01:00
Patrick Pelissier
7b2004caad
Remove item
2019-10-29 12:32:51 +01:00
Patrick Pelissier
6754f88861
Update
2019-10-29 12:32:36 +01:00
Patrick Pelissier
9393809dfd
Update todo
2019-10-26 19:22:33 +02:00
Patrick Pelissier
79ecacb6c0
Clarify what dict to use
2019-10-26 11:11:37 +02:00
Patrick Pelissier
853acbad4b
Update doc
2019-10-21 23:13:37 +02:00
Patrick Pelissier
e158eac10a
Update doc
2019-10-21 22:56:28 +02:00
Patrick Pelissier
48ca2a2384
Add bench for OA for big objects (it confirms that OA dict is not suited for such object)
2019-10-21 22:56:15 +02:00
Patrick Pelissier
d9d3d3cbe3
Update doc
2019-10-16 07:03:43 +02:00
Patrick Pelissier
6b4f10bf45
Prepare common macros for both hash tables
2019-10-15 07:33:31 +02:00
Patrick Pelissier
3b647b982f
Add linear bench
2019-10-14 21:29:27 +02:00
Patrick Pelissier
00b875ea53
Add linear hash map bench
2019-10-14 20:57:29 +02:00
Patrick Pelissier
545fc4d93c
Update doc
2019-10-11 07:50:26 +02:00
Patrick Pelissier
c41342739a
Reformulate
2019-10-02 08:12:09 +02:00
Patrick Pelissier
ed99c5aaa3
Fix spelling
2019-09-28 17:17:14 +02:00
PpHd
08842811e8
Merge pull request #48 from taboege/string-clear-get-str-stack
...
Fix string_clear_get_str when stack allocated
2019-09-26 07:19:14 +02:00
Tobias Boege
3ea063d1e0
Fix string_clear_get_str when stack allocated
...
If a string_t is stack-allocated, string_clear_get_str would still try
to copy it from the NULL heap pointer, resulting in a failed assertion.
Copy from the stack instead. Also add a test for this.
2019-09-26 05:39:49 +02:00
Patrick Pelissier
a905f12915
Document _cmp_order for tuple
2019-09-22 08:06:56 +02:00
Patrick Pelissier
5d8548b92b
Update
2019-09-04 07:41:46 +02:00
Patrick Pelissier
99b63e9c77
Update
2019-08-26 08:04:06 +02:00
Patrick Pelissier
4002ef5aff
Fix spelling
2019-08-23 06:42:47 +02:00
Patrick Pelissier
d31ccfe8a4
Simplify example code
2019-08-11 10:43:35 +02:00
Patrick Pelissier
c4ab76a330
More examples
2019-08-09 08:14:12 +02:00
Patrick Pelissier
84d4277be3
Add new example with basic types usage
2019-08-08 22:23:06 +02:00
Patrick Pelissier
0a99814ce2
Fix comments
2019-08-06 20:47:24 +02:00
Patrick Pelissier
11d695cb57
Update doc
2019-07-31 07:45:31 +02:00
Patrick Pelissier
13e2d6b473
Update issues
2019-07-25 07:10:45 +02:00
Patrick Pelissier
e8137e4218
Fix spelling
2019-07-24 21:27:06 +02:00
Patrick Pelissier
fe5df08d6e
Update comments
2019-07-20 09:32:09 +02:00
Patrick Pelissier
f77017f35f
Update current limitation
2019-07-16 23:21:52 +02:00
Patrick Pelissier
ce93c00a7b
Workaround limitation of M_MOVE_DEFAULT for [1] structure (==> It supposes now that the destination parameter is **not** a type with [1] tricks or at least not a pointer to it, instead of having this constraint for both arguments).
2019-07-16 23:21:41 +02:00
Patrick Pelissier
b8f44cc219
Fix bug (number of reader was too big, resulting in potential segfault)
2019-07-16 23:00:10 +02:00
Patrick Pelissier
2c921fdefe
Improve test suite of snapshot to detect incorrect issues of INIT/CLEAR call by a container.
2019-07-16 23:00:10 +02:00
Patrick Pelissier
20eb95ba45
Update comments
2019-07-16 23:00:10 +02:00
Patrick Pelissier
7a6239912e
Simplify code
2019-07-12 12:30:04 +02:00
Patrick Pelissier
9067311788
Update comment
2019-07-12 11:50:46 +02:00
Patrick Pelissier
23b2e07132
Add basic testing for _push_move method
2019-07-11 13:38:58 +02:00
Patrick Pelissier
c8f2c0e06e
Add _push_move method for SPSC
2019-07-11 13:38:40 +02:00
Patrick Pelissier
72c4eb80a2
Add doc on non documented operators
2019-07-11 12:56:00 +02:00
Patrick Pelissier
1f18e788e6
Update comments
2019-07-11 12:36:01 +02:00
Patrick Pelissier
f855e24b56
Add description of operator INC_ALLOC
2019-07-11 12:29:00 +02:00
Patrick Pelissier
84d1b7ad50
Update doc
2019-07-08 21:35:59 +02:00
Patrick Pelissier
9f82649aa8
Add test for multiset
2019-07-08 21:25:19 +02:00
Patrick Pelissier
791f586c7e
Add back contract support for multimap / multiset
2019-07-08 21:18:59 +02:00
Patrick Pelissier
8d3b0cc94b
Prepare support in contract for multimap/multiset
2019-07-08 21:14:15 +02:00
Patrick Pelissier
70d1dfeb8b
Add test case for multimap
2019-07-08 16:23:59 +02:00
Patrick Pelissier
9a4c6ba0d5
WIP for multimap / multiset.
2019-07-08 16:23:45 +02:00
Patrick Pelissier
ef2dbf89ee
Improve test
2019-07-08 11:36:09 +02:00
Patrick Pelissier
d30b776fb0
Add more test
2019-07-08 11:33:42 +02:00
Patrick Pelissier
6408b28513
Update comments, function name and prepare for multimap / multiset
2019-07-08 11:17:08 +02:00
Patrick Pelissier
32b3e21564
Start supporting multimap/multiet
2019-07-07 21:18:34 +02:00
Patrick Pelissier
1ef28bedcb
Rename internal functions for clarity
2019-07-07 21:16:04 +02:00
Patrick Pelissier
1356bb746e
Add more tests
2019-07-06 10:44:49 +02:00
Patrick Pelissier
23240a44d5
Change how the keys are split. Before key[i] ==> node[i] has all keys < key[i], node[i+1] has all keys >= key[i]. After key[i] ==> node[i] has all keys <= key[i], node[i+1} has all keys > key[i].
2019-07-06 00:03:26 +02:00
Patrick Pelissier
589c023622
Update test
2019-07-06 00:01:13 +02:00
Patrick Pelissier
047b6c5a58
Update
2019-07-04 21:10:38 +02:00
Patrick Pelissier
951425e963
Update comments
2019-07-04 10:42:24 +02:00
Patrick Pelissier
e69cbfcab3
Add parameter isMulti
2019-07-04 09:53:58 +02:00
Patrick Pelissier
37f3cd6a72
Rename method _it_to_p into _it_until_p. Add method _it_while_p
2019-07-03 18:57:24 +02:00
Patrick Pelissier
ec7b5dd120
Remove deprecated methods
2019-07-03 18:06:52 +02:00
Patrick Pelissier
d50a78171f
Bump to version 0.3.0
2019-07-03 18:06:39 +02:00
Patrick Pelissier
b422aec2cd
Add new example
2019-06-25 07:04:33 +02:00
Patrick Pelissier
7ba0e03b4f
Add comments
2019-06-20 21:36:12 +02:00
Patrick Pelissier
c535766c22
Update/Clean up basic type
2019-06-17 07:26:11 +02:00
Patrick Pelissier
289a3fdc71
Fix confusing position of {
2019-06-10 23:20:36 +02:00
Patrick Pelissier
7f0b6208a4
Propose a shorter version of the example.
2019-06-10 22:59:47 +02:00
Patrick Pelissier
60a10eb799
Uniformize the macro names
2019-06-09 12:02:38 +02:00
Patrick Pelissier
5321085856
Uniformize & add intermediary evaluation step for dict oplist
...
(like all other containers)
2019-06-09 11:39:15 +02:00
Patrick Pelissier
03be814a4d
Uniformize macro names
2019-06-09 11:38:39 +02:00
Patrick Pelissier
6c3f7683a5
Uniformize API
2019-06-09 11:26:45 +02:00
Patrick Pelissier
06d6a90a21
Uniformize internal macros
2019-06-09 11:02:45 +02:00
Patrick Pelissier
747da27489
Uniformize
2019-06-09 10:49:18 +02:00
Patrick Pelissier
2869345920
Add test dor dual-push list for algo
2019-06-09 10:05:34 +02:00
Patrick Pelissier
6b8938cf76
Update comments.
...
Rename / Uniformize internal macros.
2019-06-09 10:01:50 +02:00
Patrick Pelissier
8e7eae5751
Update comments.
2019-06-09 09:32:35 +02:00
Patrick Pelissier
1882148a7c
Add more assertions
2019-06-08 10:45:24 +02:00
Patrick Pelissier
e46746ce01
Fix format string
2019-06-08 10:33:26 +02:00
Patrick Pelissier
32917e2cfa
Add variant & prioqueue to tests then with concurrent
2019-06-08 10:07:03 +02:00
Patrick Pelissier
65a243fc13
Add missing const
2019-06-08 10:06:47 +02:00
Patrick Pelissier
1e011cb851
Add missing const in prototypes.
2019-06-08 09:59:16 +02:00
Patrick Pelissier
48f585a4ee
Update comments
2019-06-08 09:47:49 +02:00
Patrick Pelissier
bc10b616ae
Update doc
2019-06-08 09:31:18 +02:00
Patrick Pelissier
851f08131d
Update
2019-06-07 07:46:54 +02:00
Patrick Pelissier
e294f4557e
Update
2019-06-06 22:07:09 +02:00
Patrick Pelissier
9e5775fc16
Add example of serialization
2019-06-06 07:44:33 +02:00
Patrick Pelissier
8eb95d0cdc
Update doc
2019-06-05 22:05:02 +02:00
Patrick Pelissier
42f807d64b
Rename test file
2019-06-02 10:39:55 +02:00
Patrick Pelissier
d1bb97ac52
Add new serializer
2019-06-02 10:39:24 +02:00
Patrick Pelissier
f502b16b1d
Fix bug
2019-06-02 10:31:25 +02:00
Patrick Pelissier
51e5764258
Add comment
2019-06-02 10:05:27 +02:00
Patrick Pelissier
ec2281c29a
Use of proper cast
2019-06-02 09:25:19 +02:00
Patrick Pelissier
acfe1cb7e8
Update documentation for serialization
2019-05-28 22:50:16 +02:00
Patrick Pelissier
594aebd903
Fix comment
2019-05-28 22:50:06 +02:00
Patrick Pelissier
8bca63ac08
Fix MD syntax
2019-05-28 21:54:12 +02:00
Patrick Pelissier
c02ec4f94c
Update comments
2019-05-19 10:27:23 +02:00
Patrick Pelissier
797ac1f0da
Fix for 32 bits system
2019-05-18 18:55:51 +02:00
Patrick Pelissier
058d3202ff
Amend
2019-05-18 14:09:10 +02:00
Patrick Pelissier
62fcdac9cb
Update list of headers
2019-05-18 14:08:17 +02:00
Patrick Pelissier
b9131353b6
Add test
2019-05-18 11:17:15 +02:00
Patrick Pelissier
a34deb2f3b
Workaround warning.
2019-05-18 11:17:15 +02:00
Patrick Pelissier
9ef4b5c93f
Fix cast
2019-05-18 11:17:14 +02:00
Patrick Pelissier
417b0295be
Add C++ compatibility
2019-05-18 11:17:14 +02:00
Patrick Pelissier
d11409bcc6
Add proper cast
2019-05-18 11:17:14 +02:00
Patrick Pelissier
928b81f454
Fix return value for in_serial/out_serial
2019-05-18 11:17:14 +02:00
Patrick Pelissier
05a68157bc
Add local argument to serial interface to enable serial interface to create local parameters if needed (for example for serial binary)
2019-05-18 11:17:14 +02:00
Patrick Pelissier
b6d5b5462b
Update interface needed for serial
2019-05-18 11:17:14 +02:00
Patrick Pelissier
1c77082a29
Update comments
2019-05-18 11:17:14 +02:00
Patrick Pelissier
363c55668d
Add in_serial / out_serial methods for several containers
2019-05-18 11:17:14 +02:00
Patrick Pelissier
7ed85fb97a
Add in_serial / out_serial for concurrent containers
2019-05-18 11:17:14 +02:00
Patrick Pelissier
585ea1293d
Add in_serial / out_serial for lists
2019-05-18 11:17:14 +02:00
Patrick Pelissier
448072555f
Update comments
2019-05-18 11:17:14 +02:00
Patrick Pelissier
4701d5919b
Fix serial import/export for variant
2019-05-18 11:17:14 +02:00
Patrick Pelissier
0997f59665
Update for variant
2019-05-18 11:17:14 +02:00
Patrick Pelissier
dcf7a94728
Add in_serial / out_serial for variant
2019-05-18 11:17:14 +02:00
Patrick Pelissier
12ba563416
Add assertions
2019-05-18 11:17:14 +02:00
Patrick Pelissier
f2fffb9219
Factor comment
2019-05-18 11:17:14 +02:00
Patrick Pelissier
3f03615ed2
Simplify code by factoring fscanf calls
2019-05-18 11:17:14 +02:00
Patrick Pelissier
bc6bda057c
Add in_serial / out_serial for array
2019-05-18 11:17:14 +02:00
Patrick Pelissier
aeebe42bfb
Fix issues for EOF & parsing arrays
2019-05-18 11:17:14 +02:00
Patrick Pelissier
5c4c93b62f
Add missing export/import JSON interface
2019-05-18 11:17:14 +02:00
Patrick Pelissier
c3ddd48d38
Simplify code
2019-05-18 11:17:14 +02:00
Patrick Pelissier
98f3c40ac5
add export/import of JSON string
2019-05-18 11:17:14 +02:00
Patrick Pelissier
ada1b9861f
Add size_of_type field for reading too
2019-05-18 11:17:13 +02:00
Patrick Pelissier
50cc8689bb
Add serial methods for string_t
2019-05-18 11:17:13 +02:00
Patrick Pelissier
83da861a9c
Simplify code by using more fscanf possibility
2019-05-18 11:17:13 +02:00
Patrick Pelissier
1cb1d16e77
Simplify code by using fscanf behvior on white space
2019-05-18 11:17:13 +02:00
Patrick Pelissier
b525723084
Implement Serial Json Read tuple
2019-05-18 11:17:13 +02:00
Patrick Pelissier
4accdc994d
Add JSON/read interface
2019-05-18 11:17:13 +02:00
Patrick Pelissier
ad9bee0eec
Add JSON serializer
2019-05-18 11:17:13 +02:00
Patrick Pelissier
6c7ff1c723
Update/fix bugs
2019-05-18 11:17:13 +02:00
Patrick Pelissier
3b2aad1b2e
Export new methods for tuple
2019-05-18 11:17:13 +02:00
Patrick Pelissier
5222fabf02
Add tuple support for serial
2019-05-18 11:17:13 +02:00
Patrick Pelissier
44abead174
Update IN_SERIAL & OUT_SERIAL for default types.
2019-05-18 11:17:13 +02:00
Patrick Pelissier
492d5f0f9a
Add IN_SERIAL & OUT_SERIAL for default types.
2019-05-18 11:17:13 +02:00
Patrick Pelissier
9bc5ac3df8
Start implementating generic serialization
2019-05-18 11:17:13 +02:00
Patrick Pelissier
5c726d63f4
Fix
2019-05-15 07:38:16 +02:00
Patrick Pelissier
2cd0a8db74
Uniformize the way of displaying the location of errors in the error message
2019-05-11 01:16:54 +02:00
Patrick Pelissier
0fa0445fa9
Fix C++ warning -Wclass-memaccess with G++ >= 8
2019-05-10 23:13:54 +02:00
Patrick Pelissier
1e171f9cc0
Increase NARGS support to 75
2019-05-10 21:39:18 +02:00
Patrick Pelissier
8d16ea4bf4
Increase maximum number of operators per oplist to 75
2019-05-10 21:26:18 +02:00
Patrick Pelissier
a0c2ead91d
Fix bug for M_AS_TYPE and small types
2019-05-10 10:20:38 +02:00
Patrick Pelissier
b2875f6ba0
Add BSTRLIB for MASTER STRING BENCHMARK
2019-05-10 08:18:38 +02:00
Patrick Pelissier
edb4ccf63e
Add algo functions _remove_val & _remove_if
2019-05-07 16:35:39 +02:00
Patrick Pelissier
481009d18b
Add function _end_with for strings.
2019-05-07 16:12:43 +02:00
Patrick Pelissier
6153383dab
Update indent
2019-05-07 16:05:47 +02:00
Patrick Pelissier
74fed41818
Update version
2019-05-07 16:01:50 +02:00
Patrick Pelissier
2d5de1b9ea
Update comments
2019-04-29 12:32:29 +02:00
Patrick Pelissier
e23691c743
Fix spelling
2019-04-24 07:47:15 +02:00
Patrick Pelissier
aaac236db6
Update README
2019-04-22 18:31:47 +02:00
Patrick Pelissier
ccccedc2d5
Rework failure messages.
2019-04-22 18:30:46 +02:00
Patrick Pelissier
446afb04c7
Remove unused macro M_INIT_FAILURE
2019-04-22 12:07:53 +02:00
Patrick Pelissier
87cd964329
Uniformize error messages
2019-04-22 11:45:29 +02:00
Patrick Pelissier
80a344e46d
Update version
2019-04-22 11:34:35 +02:00
Patrick Pelissier
f2eb5014ac
Fix regression on 32 bits for strings.
2019-04-21 23:50:42 +02:00
Patrick Pelissier
d6c72061ce
add new bench on strings
2019-04-21 23:13:29 +02:00
Patrick Pelissier
7c26fd25c9
Add SDS & RAPIDSTRING replace function implemented at used level
2019-04-21 19:54:20 +02:00
Patrick Pelissier
10e12d2b5c
Update
2019-04-21 11:21:45 +02:00
Patrick Pelissier
b9070f89d9
Update
2019-04-21 10:43:17 +02:00
Patrick Pelissier
46d41a8882
Fix bad merge
2019-04-20 12:33:09 +02:00
Patrick Pelissier
b5dc3481d4
Update doc
2019-04-20 12:33:08 +02:00
Patrick Pelissier
c18cd81dde
Add more assumes needed for static analysis.
2019-04-20 12:33:08 +02:00
Patrick Pelissier
eaf5a26157
Minor speed up
2019-04-20 12:33:08 +02:00
Patrick Pelissier
547c67b676
Modify string_t so that it can still be trivially movable once again.
2019-04-20 12:33:08 +02:00
Patrick Pelissier
c89d6ef0ce
Fix test.
2019-04-20 12:33:08 +02:00
Patrick Pelissier
a54041c340
Minor fix
2019-04-20 12:33:08 +02:00
Patrick Pelissier
352e0972cd
Comment code
2019-04-20 12:33:08 +02:00
Patrick Pelissier
91ebd7cc9f
Cleanup code
2019-04-20 12:33:08 +02:00
Patrick Pelissier
d8854c276b
Cleanup code
2019-04-20 12:33:08 +02:00
Patrick Pelissier
cc61840ae8
Refactor code
2019-04-20 12:33:08 +02:00
Patrick Pelissier
67a7a4762a
Refactor code
2019-04-20 12:33:08 +02:00
Patrick Pelissier
c28597014f
Add more hypothesis
2019-04-20 12:33:08 +02:00
Patrick Pelissier
d00f29bf26
Fix bug
2019-04-20 12:33:08 +02:00
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
Patrick Pelissier
3c56f24db2
Update analysis
2018-12-29 00:16:50 +01:00
Patrick Pelissier
82dbf60a4c
Use of the standard naming for User Defined macro that can customize the code generation. Rename macros WORKER_DISABLE.
2018-12-23 23:49:19 +01:00
Patrick Pelissier
b596e81e88
Regenerate depend
2018-12-14 21:48:21 +01:00
Patrick Pelissier
b7bbe15547
Fix missing header in install
2018-12-14 21:46:38 +01:00
Patrick Pelissier
cb5f8c20c8
Update analysis
2018-12-11 23:23:09 +01:00
Patrick Pelissier
61a1e15103
Update analysis
2018-12-11 23:19:33 +01:00
Patrick Pelissier
2416c2e466
Fix bug of overflow of 'alloc-num' if alloc < num (case where the service is called with a big number to insert
2018-12-05 17:52:02 +01:00
Patrick Pelissier
b898ce3c56
update analysis
2018-11-29 23:24:11 +01:00
Patrick Pelissier
061e83b9e1
Add basic test for CONCURRENT_RP_DEF
2018-11-29 22:18:44 +01:00
Patrick Pelissier
0a8f727908
Remove CONCURRENT_RP2_DEF (Insuficient performance)
2018-11-27 07:47:06 +01:00
Patrick Pelissier
ba584ab096
Use M_THREAD_ATTR
2018-11-26 23:26:42 +01:00
Patrick Pelissier
1fb1fa2e0a
Add M_THREAD_ATTR
2018-11-26 23:26:08 +01:00
Patrick Pelissier
8cf780a60f
Update comment
2018-11-25 22:43:37 +01:00
Patrick Pelissier
ae171115bc
Export method _size in concurrent if operator GET_SIZE defined.
2018-11-25 18:03:25 +01:00
Patrick Pelissier
a8620c3aff
Export method _size for operator GET_SIZE
2018-11-25 18:00:47 +01:00
Patrick Pelissier
c154cdf46c
Add operator GET_SIZE
2018-11-25 17:52:24 +01:00
Patrick Pelissier
77c59e2b85
Fix const issue.
2018-11-25 17:49:36 +01:00
Patrick Pelissier
f07656757f
Add another candidate for concurrent with parallel reader.
2018-11-25 11:44:28 +01:00
Patrick Pelissier
a1c22fb679
Add first alpha version of Concurrent Container with support concurrent reading.
2018-11-24 19:31:31 +01:00
Patrick Pelissier
3640041c47
Port internal functions of concurrent to use the local lock interface.
2018-11-24 12:20:37 +01:00
Patrick Pelissier
d3934dccb9
Add missing const in prototypes.
2018-11-24 11:46:28 +01:00
Patrick Pelissier
10cf2f2270
Prepare concurent for using different lock strategy
2018-11-24 11:37:09 +01:00
Patrick Pelissier
c180b2b96d
Update analysisd
2018-11-22 07:49:15 +01:00
Patrick Pelissier
5d5c2380ed
Update release notes due to valgrind being unable to launch the test suite and scan-build producing too many false positives.
2018-11-16 22:54:04 +01:00
Patrick Pelissier
a8b5c3ff4e
Improve assertions
2018-11-10 17:54:13 +01:00
Patrick Pelissier
16587aeb93
Update doc
2018-11-08 20:55:28 +01:00
Patrick Pelissier
629a3a3dc1
Update depend
2018-11-08 20:54:42 +01:00
Patrick Pelissier
ea46379d24
Update long term issue.
2018-11-07 19:54:07 +01:00
Patrick Pelissier
ee0c77edc8
Replace SET+CLEAR by MOVE.
2018-11-04 20:28:56 +01:00
Patrick Pelissier
c0610b2d60
Update doc
2018-11-04 20:15:15 +01:00
Patrick Pelissier
13ab545246
Update example for concurrent
2018-11-03 19:05:57 +01:00
Patrick Pelissier
d85d6bcb13
Update doc
2018-11-01 17:21:11 +01:00
Patrick Pelissier
138662d6a0
Update checkall
2018-11-01 16:29:55 +01:00
Patrick Pelissier
e45437e19f
Add missing const
2018-11-01 16:11:42 +01:00
Patrick Pelissier
725846e155
Add missing type
2018-11-01 16:11:27 +01:00
Patrick Pelissier
74aa514903
Add missing const
2018-11-01 16:11:12 +01:00
Patrick Pelissier
7f7230be90
Fix doc
2018-10-31 17:38:04 +01:00
Patrick Pelissier
d4a6e8c47a
Add doc for m-concurrent
2018-10-31 17:37:17 +01:00
Patrick Pelissier
9c19ed4471
Add more encapsulation tests.
2018-10-31 11:33:58 +01:00
Patrick Pelissier
357c37c69d
Add missing const qualifier
2018-10-31 11:33:41 +01:00
Patrick Pelissier
7c2d9c8643
Add missing const
2018-10-31 11:31:48 +01:00
Patrick Pelissier
69d699b80e
Add contract
2018-10-31 11:26:00 +01:00
Patrick Pelissier
40832dd727
Add assertions
2018-10-31 08:24:06 +01:00
Patrick Pelissier
31c3baa42b
Update comment
2018-10-30 20:10:15 +01:00
Patrick Pelissier
0ed03224c2
Update test
2018-10-30 20:04:01 +01:00
Patrick Pelissier
f8d82ae74a
Fix oplist definition.
2018-10-30 20:00:50 +01:00
Patrick Pelissier
16234bde82
Add const
2018-10-30 17:23:59 +01:00
Patrick Pelissier
31a5d7ee3b
Add oplist
2018-10-30 10:56:02 +01:00
Patrick Pelissier
f908c7e04d
Update
2018-10-30 10:27:29 +01:00
Patrick Pelissier
eb20f66bd9
Update
2018-10-30 10:25:22 +01:00
Patrick Pelissier
3b3e853cf8
Add first test cases
2018-10-29 23:07:34 +01:00
Patrick Pelissier
998ae05a5b
Update dict_set to be like a B+TREE (API breakage). _ref returns pointer to the data
2018-10-29 22:59:31 +01:00
Patrick Pelissier
155d01b8c3
Fix blocking=false for _pop & _get
2018-10-29 18:10:07 +01:00
Patrick Pelissier
1a4cce7efd
Add concurrent benchmark
2018-10-29 17:17:14 +01:00
Patrick Pelissier
3a0dd2ffe7
Fix errors
2018-10-29 17:15:20 +01:00
Patrick Pelissier
68b705b16a
Proper export of additional methods for DICT_SET
2018-10-29 17:02:58 +01:00
Patrick Pelissier
fe245e76cf
Fix DICT_SET_DEF macro
2018-10-29 16:51:33 +01:00
Patrick Pelissier
618e37b07c
Remove pop operator as there is no method for it.
2018-10-29 16:51:17 +01:00
Patrick Pelissier
3dde8d45c1
Add _empty_p & _pop_move_blocking
2018-10-29 13:26:16 +01:00
Patrick Pelissier
4691f95b73
Add blocking methods for concurrent container.
2018-10-29 11:18:20 +01:00
Patrick Pelissier
02d4bf0e09
Export method _empty_p for operator TEST_EMPTY for all containers.
2018-10-29 11:06:54 +01:00
Patrick Pelissier
5ecf4f37c0
Change deprecated functions.
2018-10-29 11:06:29 +01:00
Patrick Pelissier
15f6484dd2
Fix comment
2018-10-29 11:02:55 +01:00
Patrick Pelissier
2ead3905e5
Rename m-protect to m-concurrent
2018-10-28 22:17:33 +01:00
Patrick Pelissier
99d883253c
Add TEST_EMPTY operator
2018-10-28 22:13:48 +01:00
Patrick Pelissier
ed4d4f9f23
Fix formatting
2018-10-28 17:53:41 +01:00
Patrick Pelissier
d76f9565b2
Add new primitives.
2018-10-28 17:53:16 +01:00
Patrick Pelissier
1c637f1182
Proper export of KEY_OPLIST & VALUE_OPLIST
2018-10-28 11:17:05 +01:00
Patrick Pelissier
4dbe5de79c
Fix in progress
2018-10-28 11:16:46 +01:00
Patrick Pelissier
afcb88d04c
Add PROTECT module that automaticaly add a lock on container access.
2018-10-28 10:41:10 +01:00
Patrick Pelissier
1ea1deef94
Update doc with last changes.
2018-10-28 10:40:18 +01:00
Patrick Pelissier
08d2af22db
Add KEY_OPLIST & VALUE_OPLIST operators
2018-10-28 10:38:41 +01:00
Patrick Pelissier
70179bb1d7
Add VALUE_TYPE operator
2018-10-28 10:33:25 +01:00
Patrick Pelissier
83226c5ce8
Add KEY_TYPE operator
2018-10-28 10:03:47 +01:00
Patrick Pelissier
3d6b737c46
Export *KEY operators in OPLIST for array, dict, B+tree
2018-10-27 23:37:06 +02:00
Patrick Pelissier
fff511101c
Add _erase for array
2018-10-27 23:30:38 +02:00
Patrick Pelissier
6672becdd5
Add _erase for array
2018-10-27 23:30:21 +02:00
Patrick Pelissier
bd315c7e43
Add method ERASE_KEY
2018-10-27 23:04:56 +02:00
Patrick Pelissier
fbfe28c087
Port the test suite to use _erase instead of _remove.
2018-10-27 22:59:33 +02:00
Patrick Pelissier
adbafc0b02
Fix usage of pop_at after later change.
2018-10-27 22:59:19 +02:00
Patrick Pelissier
4e6dad939a
API Compatibility change: rename _remove for DICT & B+TREE into _erase for API uniformization.
2018-10-27 22:56:00 +02:00
Patrick Pelissier
12bf9c0f59
ERASE method returns bool (like dictionnary)
2018-10-27 22:43:06 +02:00
Patrick Pelissier
f7f7d7bc38
Add asertion
2018-10-27 22:34:53 +02:00
Patrick Pelissier
c169c05bba
Clarify name of old methods SET_KEY, GET_KEY, GET_SET_KEY
2018-10-27 22:34:34 +02:00
Patrick Pelissier
19d48740cd
Modify prototype of buffer _init_set & _set to allow const argument for src. Not proud of the solution.
2018-10-27 16:13:02 +02:00
Patrick Pelissier
7a067a4b90
Add M_PTR_OPLIST
2018-10-27 11:13:09 +02:00
Patrick Pelissier
13f3dab23a
Update with more examples.
2018-10-27 11:12:55 +02:00
Patrick Pelissier
fd9d308b28
Allow tuple initilization in M_LET
2018-10-27 09:28:17 +02:00
Patrick Pelissier
1047d842d0
Add OPLIST for buffer & an example. Still a WIP for the constness of the BUFFER source.
2018-10-26 23:30:04 +02:00
Patrick Pelissier
77385e53f7
Add _init1 for buffer (internal use)
2018-10-26 22:23:44 +02:00
Patrick Pelissier
f7b3de2750
Add test cases for _init_set & _set for buffers
2018-10-26 22:05:14 +02:00
Patrick Pelissier
a65e6de66b
Add more cases.
2018-10-26 21:44:25 +02:00
Patrick Pelissier
41cf523dfc
Adding _set & _init_set for buffer (to test)
2018-10-26 21:21:29 +02:00
Patrick Pelissier
3774f8fd11
Fix M_POD_OPLIST in C11 mode
2018-10-26 20:18:32 +02:00
Patrick Pelissier
b9e26b1c2c
Add test with musl-gcc to test C11 library thread.h
2018-10-26 20:09:32 +02:00
Patrick Pelissier
609175713b
Fix C11 backend.
2018-10-26 19:40:51 +02:00
Patrick Pelissier
d56b794177
Fix bug in _get method of deque container.
2018-10-21 22:41:29 +02:00
Patrick Pelissier
608a929fcb
Added another test case for _get method for DEQUE container.
2018-10-21 22:40:56 +02:00
Patrick Pelissier
4bf045e3d6
Make INIT conditional for DEQUE containers.
2018-10-21 22:31:22 +02:00
Patrick Pelissier
6b5434d64f
Fix regression:
...
even if there is no INIT method for the base type,
the container still defines a INIT method.
2018-10-21 22:27:52 +02:00
Patrick Pelissier
abb5480890
Port DEQUE to CALL infrastructure.
2018-10-20 19:02:48 +02:00
Patrick Pelissier
95069b0d4c
Update doc
2018-10-20 16:59:56 +02:00
Patrick Pelissier
8f15b50b5f
Update documentation of arrays.
2018-10-20 16:57:55 +02:00
Patrick Pelissier
c7a1505f9b
Update doc
2018-10-10 21:54:34 +02:00
Patrick Pelissier
ff098c91f4
Add _capacity for deque
2018-10-07 09:05:09 +02:00
Patrick Pelissier
fb40a4f904
Update state
2018-10-03 22:03:08 +02:00
Patrick Pelissier
c87696f5c1
Add _hash, _equal_p, _out_str, _in_str, _get_str, _parse_str
...
for intrusive list.
2018-10-03 22:01:40 +02:00
Patrick Pelissier
4f3dad4bea
Add _reverse for I-LIST
2018-10-01 21:22:19 +02:00
Patrick Pelissier
46c2e33096
Remove WIP
2018-09-29 10:23:31 +02:00
Patrick Pelissier
66ee266b90
Move depend.png in doc folder.
2018-09-29 10:22:03 +02:00
Patrick Pelissier
14883b1e26
Update image
2018-09-29 10:10:30 +02:00
Patrick Pelissier
33f74988b1
Update doc
2018-09-29 10:09:18 +02:00
Patrick Pelissier
78b157ff7f
Update documentation.
2018-09-29 10:05:40 +02:00
Patrick Pelissier
546b756932
Port TUPLE & VARIANT to API transformation infrastructure.
2018-09-25 21:38:31 +02:00
Patrick Pelissier
5b74d54c64
Remove unused macro.
2018-09-25 20:10:44 +02:00
Patrick Pelissier
fc608b21ee
Update comment
2018-09-25 20:02:58 +02:00
Patrick Pelissier
2b6a266b93
Optimize _pop_back for dual push list.
2018-09-22 11:58:22 +02:00
Patrick Pelissier
7cb5092010
Update document on dual_push list
2018-09-22 11:58:05 +02:00
Patrick Pelissier
a1c3681002
Optimization of _init_set for list.
2018-09-22 11:37:23 +02:00
Patrick Pelissier
91f35aa3bb
Update documentation of LIST.
2018-09-22 11:36:38 +02:00
Patrick Pelissier
49a6715dfe
Merge branch 'master' of https://github.com/P-p-H-d/mlib
2018-09-19 22:22:57 +02:00
Patrick Pelissier
b799725bef
Update comment.
2018-09-19 22:22:48 +02:00
Patrick Pelissier
1ada22462f
Update comment.
2018-09-19 22:20:11 +02:00
Patrick Pelissier
b0ec9680a1
Merge branch 'master' of https://github.com/P-p-H-d/mlib
2018-09-19 07:58:38 +02:00
Patrick Pelissier
7a8a6b1bb1
Rewrite in order to be easier to read.
2018-09-19 07:57:59 +02:00
Patrick Pelissier
1380a91bf1
Update comments.
2018-09-17 22:20:39 +02:00
Patrick Pelissier
83208f74ec
Add one more test.
2018-09-17 22:20:26 +02:00
Patrick Pelissier
5f571418d0
Clarify documentation
2018-09-16 00:01:41 +02:00
Patrick Pelissier
a7d8ff208f
Fix.
2018-09-15 19:42:54 +02:00
Patrick Pelissier
1046f3e220
Add more structure in example.
2018-09-15 19:38:18 +02:00
Patrick Pelissier
6406f97f56
Clarify documentation about oplist usage.
2018-09-15 18:28:43 +02:00
Patrick Pelissier
e0c456490a
Fix definition of oplist for containers:
...
if no argument is given, it shall behave as if it was defined with
a standard C type.
2018-09-15 17:59:50 +02:00
Patrick Pelissier
6a1b2a3964
Add new example.
2018-09-15 15:46:22 +02:00
Patrick Pelissier
3452b72add
Fix regression of M*LIB:
...
oplist of tuple/variant wasn't able to detect the default INIT creation
as no valid OPLIST was passed in the absence of OPLIST.
Give the explicit default OPLIST in this case.
2018-09-15 15:30:03 +02:00
Patrick Pelissier
2e3b312fab
Fix issue of recursive usage of M_GLOBAL_OPLIST_OR_DEF
...
Update the way to use the macro to avoid being limited by the
preprocessor limitation.
2018-09-14 20:57:55 +02:00
Patrick Pelissier
8f67ca339b
Rename internal macros.
2018-09-13 22:59:38 +02:00
Patrick Pelissier
1679b7b5cf
Mark ALGO_INIT_VA & ALGO_LET_INIT_VA as obsolete:
...
the M_LET macro supports their feature in a more generic way.
2018-09-10 22:57:52 +02:00
Patrick Pelissier
757049543d
Port to M_CALL infrastructure the M-ALGO
2018-09-10 22:50:26 +02:00
Patrick Pelissier
38b098b547
Port to M_CALL for M-STRING
2018-09-10 21:59:29 +02:00
Patrick Pelissier
60478e3f61
Port to M_CALL for M-SNAPSHOT
2018-09-10 21:55:18 +02:00
Patrick Pelissier
6325f01122
Port to M_CALL M-SHARED
2018-09-10 21:39:38 +02:00
Patrick Pelissier
74c12e6ea2
Port to M_CALL for R/B TREE.
2018-09-10 21:34:18 +02:00
Patrick Pelissier
fd3453bb2a
Port to M_CALL infrastructure M-I-SHARED
2018-09-10 07:55:47 +02:00
Patrick Pelissier
2ff7631c9c
Port to M_CALL infrastructure.
2018-09-10 07:53:07 +02:00
Patrick Pelissier
7a6b0ab641
Port dict to new M_CALL infrastructure to support API transformation.
2018-09-09 14:04:49 +02:00
Patrick Pelissier
8fd0003548
Update
2018-09-08 22:51:46 +02:00
Patrick Pelissier
bb8de993b6
Start porting to M_CALL infrastructure, enabling support for
...
API transformation.
2018-09-08 22:49:12 +02:00
Patrick Pelissier
7c83d733cd
Fix grammar
2018-09-08 20:34:12 +02:00
Patrick Pelissier
6f49a1905c
Minor fix
2018-09-08 20:32:49 +02:00
Patrick Pelissier
d0378aadeb
Update doc
2018-09-08 20:25:38 +02:00
Patrick Pelissier
4834318742
Update doc about missing parse_str methods.
2018-09-08 09:56:25 +02:00
Patrick Pelissier
1838a490ba
Update doc
2018-09-08 09:47:47 +02:00
Patrick Pelissier
de3cbe45b4
Make INIT method optional.
2018-09-08 09:47:36 +02:00
Patrick Pelissier
a34cb6c89d
Simplification
2018-09-08 09:34:01 +02:00
Patrick Pelissier
9c0724ddb9
Simplification.
2018-09-08 09:10:37 +02:00
Patrick Pelissier
ce948bd9ce
Make INIT optional for TUPLE.
2018-09-08 09:02:54 +02:00
Patrick Pelissier
5eb5d2420e
Make INIT method optional for oplists.
2018-09-08 08:57:02 +02:00
Patrick Pelissier
7510e36f6b
Update doc
2018-09-08 08:56:53 +02:00
Patrick Pelissier
8bfdf2bd5f
Add M_IF_METHOD2_BOTH
2018-09-08 08:48:09 +02:00
Patrick Pelissier
2174c28aa2
Make INIT operator optionnal for ARRAY & LIST.
2018-09-08 08:21:13 +02:00
Patrick Pelissier
7a55667a5d
Remove lib (link broken)
2018-09-04 22:15:44 +02:00
Patrick Pelissier
79d0452427
Instead of fixed string, enable using printf like formatting for initialization of a string.
2018-09-02 11:05:27 +02:00
Patrick Pelissier
ad5c141a7c
Enable support to initialize a string_t with a const char[] within M_LET.
2018-09-02 11:00:14 +02:00
Patrick Pelissier
d4cd327ea3
Add API transform call for all operators.
2018-09-02 10:40:09 +02:00
Patrick Pelissier
27b29d5ffe
Clean up & fix DICT_SET_OPLIST
2018-09-01 21:40:17 +02:00
Patrick Pelissier
b52222cad9
Add operator INIT_WITH for oplist with PUSH.
2018-09-01 21:22:18 +02:00
Patrick Pelissier
822c27399c
Add M_INIT_VAI to initialize a container with a VA.
...
(pretty much like it was done for ALGO).
Use if for array & list so that you can init them in M_LET
by giving it a VA.
2018-09-01 21:12:02 +02:00
Patrick Pelissier
0e717389c1
Add API transform support for the method in an oplist.
2018-09-01 20:42:51 +02:00
Patrick Pelissier
2197c4ce81
Add more cases to test.
2018-09-01 09:50:28 +02:00
Patrick Pelissier
b894d64063
Add support for INIT_WITH in M_LET in C99 mode.
2018-09-01 09:47:32 +02:00
Patrick Pelissier
d95a11365a
* New method INIT_WITH
...
* Prepare variable number of arguments for M_LET with INIT_WITH
2018-09-01 09:39:09 +02:00
Patrick Pelissier
dbcade3087
Add support for given an argument for the initialization of a variable in M_LET
...
if the variable is within parenthesis:
M_LET((a,b), string_t)
==> It will init a & set it to b.
For the moment, we can only init with value of the same type (through init_set)
2018-08-31 00:02:03 +02:00
Patrick Pelissier
7ac54c0eb8
Update doc
2018-08-29 22:17:52 +02:00
Patrick Pelissier
91c74b863d
Update comments
2018-08-26 09:26:44 +02:00
Patrick Pelissier
8c0b6f1e9d
Fix spellings.
2018-08-25 21:35:37 +02:00
Patrick Pelissier
539f388e66
Update doc (fix spelling).
2018-08-25 09:00:19 +02:00
Patrick Pelissier
b03c312b4e
Update doc
2018-08-25 08:32:51 +02:00
Patrick Pelissier
71db5f9a79
Support for break to break the execution of M_LET
2018-08-25 00:11:20 +02:00
Patrick Pelissier
e33e77595f
Simplify the logic for parsing bool.
2018-08-24 21:03:25 +02:00
Patrick Pelissier
d4016b310d
Add support for conditionnal support for stdio.h
...
(needed for special environnement where no stdio is supported).
2018-08-24 20:59:54 +02:00
Patrick Pelissier
a41177a110
Add support for bool in default type support.
...
Needs to rewritefully how to dispatch the default type for IN_STR method
Add also proper non-support for const char* & char * for IN_STR & PARSE_STR
(We cannot do it reliabelty, so the function says it always fail).
2018-08-24 20:45:26 +02:00
Patrick Pelissier
f8600296f0
Add missing const for dict's equal_p
2018-08-24 19:18:29 +02:00
Patrick Pelissier
e1147fb33d
Add support for IN_STR for default C types.
2018-08-23 19:58:02 +02:00
Patrick Pelissier
ec0d020669
Fix documentation about right prototype of in_str.
2018-08-23 19:38:19 +02:00
Patrick Pelissier
e8eab86546
Fix issue in warning about discarding const attribute.
2018-08-22 00:21:23 +02:00
Patrick Pelissier
c9ebedb01f
Rename _get_ methods for tuple & variants into _get_at_ methods.
...
Add _cget_at_ methods too.
2018-08-21 23:58:03 +02:00
Patrick Pelissier
af5742ce2d
Change the value used to generate the enumerate of a variant:
...
the previous values didn't prevent to have a name collision
with other methods defined for the variant.
2018-08-21 22:53:07 +02:00
Patrick Pelissier
8f85c71654
Rename some internal macros to a better name.
2018-08-21 22:15:11 +02:00
Patrick Pelissier
70753c1082
Add method parse_str for the oplist of default C type.
2018-08-21 20:04:11 +02:00
Patrick Pelissier
2ab2b9efd6
Add primitive to parse standard C types (except const char*)
2018-08-21 19:53:55 +02:00
Patrick Pelissier
dbb34b75fd
Add method for the operator OUT_STR for the default type.
2018-08-21 19:26:18 +02:00
Patrick Pelissier
7447492c76
Fix issue with deque in case of successive _clean:
...
the CLEAR method was called more than once for an object.
2018-08-20 23:13:55 +02:00
Patrick Pelissier
492e4c33db
Adding more assertions to check the good call of the test object.
2018-08-20 23:11:13 +02:00
Patrick Pelissier
cbb08bdcfc
Amend previous commit.
2018-08-19 20:28:46 +02:00
Patrick Pelissier
0de829741a
Add synonimous for pointers.
2018-08-19 20:27:45 +02:00
Patrick Pelissier
0fa7aed1c4
Add missing synonim
2018-08-19 20:07:58 +02:00
Patrick Pelissier
3b0e940284
Add missing _ptr & _srcptr alias.
2018-08-19 17:58:23 +02:00
Patrick Pelissier
48a970ceb9
Avoid using '__' within words.
...
It seems to be a reserved naming of C++.
2018-08-19 11:31:09 +02:00
Patrick Pelissier
c7b533f21e
Cleanup terminology
2018-08-19 10:54:48 +02:00
Patrick Pelissier
839d4da191
Update doc
2018-08-19 10:36:30 +02:00
Patrick Pelissier
b76ddfe93c
Update doc
2018-08-19 10:07:04 +02:00
Patrick Pelissier
4ba0156ad8
Backport solution from tuple to variant.
2018-08-19 08:45:10 +02:00
Patrick Pelissier
6ef9936e24
Fix issue of recusrive definition of TUPLE using GLOBAL oplist:
...
There was a recursive call of M_REDUCE2 that fails to expand properly on its second invocation
Rewrite fully how global oplists are implemented:
it performs a first pass to expand the oplists, and the a separate pass to define the functions.
This enables to separate the pass, and use M_REDUCE2 in both.
2018-08-19 08:28:17 +02:00
Patrick Pelissier
e835dbc7c6
Update Makefile for also testing clang++
2018-08-19 08:27:51 +02:00
Patrick Pelissier
5c8429a7bb
Reformating
2018-08-16 07:29:22 +02:00
Patrick Pelissier
824011657a
Improve once again mapping of the buffer structure to avoid
...
false sharing.
2018-08-15 10:33:20 +02:00
Patrick Pelissier
8e2031bf5a
Add comments.
2018-08-15 10:30:17 +02:00
Patrick Pelissier
8bb5f5475e
Avoid putting the push mutex & the pop mutex inside the same cache line.
...
Avoid false sharing for multi-threading scenario and should increase performance.
2018-08-15 10:21:23 +02:00
Patrick Pelissier
eb4f249a54
Add missing CLEAN method in export OPLIST.
2018-08-14 23:09:12 +02:00
Patrick Pelissier
3aa3b87709
Add missing CLEAN method in export OPLIST.
2018-08-14 23:08:33 +02:00
Patrick Pelissier
0046157862
Fix issue for SWAP method not exported correctly for tuple.
2018-08-14 08:00:16 +02:00
Patrick Pelissier
acbf1efad6
Fix issue: CLEAN method was not properly exported by tuple.
2018-08-14 07:58:37 +02:00
Patrick Pelissier
5d1eb45d5c
Export CLEAN method.
2018-08-14 07:49:31 +02:00
Patrick Pelissier
c52c41c885
Export CLEAN method for tuple if it is defined.
2018-08-13 20:14:37 +02:00
Patrick Pelissier
822f9aacf6
Add CLEAN method for tuple.
2018-08-13 20:05:32 +02:00
Patrick Pelissier
7d5608ca0e
Export CLEAN method for string.
2018-08-13 20:03:06 +02:00
Patrick Pelissier
937bbef818
Add method _erase & _update_further for priority queue.
2018-08-12 21:35:09 +02:00
Patrick Pelissier
c506443ed0
Add comment about ALGO_EXTRACT
2018-08-08 22:54:56 +02:00
Patrick Pelissier
5f42f26587
Fix warning about shadowed variables
2018-08-08 22:49:49 +02:00
Patrick Pelissier
f84e96d790
Reexport IT_INSERT for array.
...
Even it is slow, it may be useful.
2018-08-08 22:49:25 +02:00
Patrick Pelissier
ede57a20be
Add ALGO ALGO_INSERT that allows inserting a container into another one.
2018-08-08 22:44:17 +02:00
Patrick Pelissier
df8306c721
Export IT_INSERT method
2018-08-08 22:43:44 +02:00
Patrick Pelissier
1bb144e256
VARIANT: Oplist is now optional for their definition.
2018-08-07 23:18:37 +02:00
Patrick Pelissier
7d83603646
TUPLE: Oplist is now optional for tuple definition.
2018-08-06 23:20:02 +02:00
Patrick Pelissier
7e4d51bab0
Add support for global oplist for deque
2018-08-05 22:33:13 +02:00
Patrick Pelissier
4ef1b079cb
Can omit optlist in B+TREE definition
2018-08-05 11:08:18 +02:00
Patrick Pelissier
e95d13adb1
Add support for multiple M_LET on the same line
...
without warning about shadow variables.
2018-08-04 08:34:35 +02:00
Patrick Pelissier
92d7009804
Fis issue if given type is a T * = TYPE:
...
token pasting created const T *, which is not the same as
const TYPE = T * const
2018-08-03 20:35:37 +02:00
Patrick Pelissier
354327e40b
Fix issue for string_strim if string was empty and not allocated.
2018-08-03 20:23:24 +02:00
Patrick Pelissier
34d56c54c8
Test strim with an empty string.
...
(Shall do nothing).
2018-08-03 20:22:32 +02:00
Patrick Pelissier
143a5fdf4f
Fix issue if given type is a T * = TYPE:
...
token pasting created const T *, which is not the same as
const TYPE = T * const
2018-08-03 20:20:57 +02:00
Patrick Pelissier
030510613c
Add more assertions.
2018-08-03 19:57:38 +02:00
Patrick Pelissier
984b8e7da0
Fix const cast issue for 'void *' pointer.
2018-08-03 18:55:01 +02:00
Patrick Pelissier
aba1ac1646
Fix issue in 64 bits with overwriting enabled for buffer.
2018-08-02 23:31:48 +02:00
Patrick Pelissier
6b93d7644a
Proper constant definition for unicode error.
2018-08-02 23:31:17 +02:00
Patrick Pelissier
68c737dcef
Clean up interface if (internal) genint:
...
it returns at most an 2048, so an unsigned int is more enought
(and internally it was already used!).
So transform the interface to take as input unsigned int.
Fix maximum size supported by the genint package.
Add proper constant used for error, and use it in the code.
2018-08-02 23:19:05 +02:00
Patrick Pelissier
b8f8ffe0a2
Perform same optimization than previous commit for
...
M_GLOBAL_OPLIST_OR_DEF
2018-08-02 22:48:28 +02:00
Patrick Pelissier
02e8681f76
M_GLOBAL_OPLIST:
...
More robust implementation that delays the evaluation of the concatenation
2018-08-02 20:02:15 +02:00
Patrick Pelissier
603fb9db62
Replace some size displayed with '%lu' as unsigned long
...
with proper '%zu' as size_t.
2018-08-02 19:34:10 +02:00
Patrick Pelissier
b01459d1ef
Add out_str for CSTR_OPLIST
2018-08-01 23:36:04 +02:00
Patrick Pelissier
667f1f5951
Update documentation.
2018-08-01 23:28:01 +02:00
Patrick Pelissier
660c5a2db4
Add M_GET_STRING to transform a standard numerical C type into a string_t
...
(with a method compatible with the operator GET_STR).
2018-08-01 23:26:58 +02:00
Patrick Pelissier
8a4d013354
Fix issues (normal contract where used for I/O whereas they could be used
...
with OA Dict)
2018-08-01 22:55:54 +02:00
Patrick Pelissier
faedca81d1
Add M_CORE_VERSION_* macros.
2018-08-01 22:28:50 +02:00
Patrick Pelissier
166d408f5e
Add support for out_str for the default C types if C11 is enabled.
2018-08-01 20:12:24 +02:00
Patrick Pelissier
017f25d9d5
M_PRINT_ARG & M_FPRINT_ARG don't put a final semicolon at the end
...
of their expansion anymore (cleaner and no longer needed with the
new available tools).
2018-08-01 19:59:57 +02:00
Patrick Pelissier
6a70eba83f
Document some missing methods for priority queues.
2018-08-01 19:35:54 +02:00
Patrick Pelissier
ef13ab6938
Add rapidstring
2018-08-01 00:31:58 +02:00
Patrick Pelissier
75cb61fd36
Fix issue of deque's _init_move.
2018-07-31 23:11:43 +02:00
Patrick Pelissier
9c31f8aa92
Complete test to show failure of _init_move for deque.
2018-07-31 23:11:26 +02:00
Patrick Pelissier
27a08da430
Add node contract check.
2018-07-31 08:19:45 +02:00
Patrick Pelissier
fdada9661f
Update comment.
2018-07-30 22:45:24 +02:00
Patrick Pelissier
f1a52439bb
Add more tests.
2018-07-30 22:42:33 +02:00
Patrick Pelissier
d13849c173
Update formatting.
2018-07-30 22:42:09 +02:00
Patrick Pelissier
d8a0e73899
Update comment.
2018-07-30 22:24:03 +02:00
Patrick Pelissier
b6a3387f8a
User are able to customize the number of elements of a mempool globaly.
2018-07-30 22:02:46 +02:00
Patrick Pelissier
04dd708941
Delayed the inclusion of the common headers, so that the backend may properly
...
set up additional parameters for the headers.
2018-07-29 19:40:37 +02:00
Patrick Pelissier
39ffe1c95a
Fix issue for 32 bits build due to previous modification of limb size to 64 bits.
2018-07-29 19:40:08 +02:00
Patrick Pelissier
7b5ae3c15b
Update API so that the worker_t parameter is given on creating the sync bloc.
...
(API breakage), more RAII like.
2018-07-28 19:09:07 +02:00
Patrick Pelissier
7678625071
Review:
...
* add comments
* change error code from assertion to proper memory failure
* add new assertions
2018-07-28 13:48:30 +02:00
Patrick Pelissier
dbe8817d95
Add bitset_clz
2018-07-27 06:19:54 +02:00
Patrick Pelissier
09e117cd57
Update comments.
...
Update _new_node: it shall never return NULL.
2018-07-24 00:34:35 +02:00
Patrick Pelissier
4b8779d8d3
Update formula for increasing the size.
2018-07-24 00:24:50 +02:00
Patrick Pelissier
79158dabbc
Rename _map into _for_each.
2018-07-22 21:32:46 +02:00
Patrick Pelissier
f962bc8da5
Avoid overflow in case of huge computations.
...
Add more comments.
2018-07-22 21:32:19 +02:00
Patrick Pelissier
28e8dde06d
Make target uninstall PHONY
2018-07-21 12:12:50 +02:00
Patrick Pelissier
6c3d41a124
Add target uninstall
2018-07-21 12:12:19 +02:00
Patrick Pelissier
9c2967f8df
Cleanup install target with proper use of COMMAND VARIABLES.
2018-07-19 22:55:56 +02:00
Patrick Pelissier
99311364e7
Regenerate the dependency graph.
2018-07-18 22:35:25 +02:00
Patrick Pelissier
16e86b8291
Don't regenerate depend.png everytime but only if the headers have been updated.
...
Optimize the generation of the PNG.
2018-07-18 22:34:52 +02:00
Patrick Pelissier
5741af8fd3
Add 'dist' target in the Makefile.
2018-07-18 22:31:53 +02:00
Patrick Pelissier
6bdd47a557
Don't remove depend with a make clean
...
otherwise you'll get a regeneration of the dependency file for each clean command
which is useless.
make distclean shall be used to remove the dependency file.
2018-07-18 22:28:19 +02:00
Patrick Pelissier
750ba93c14
Add note.
2018-07-18 21:43:27 +02:00
Patrick Pelissier
18be930507
Fix bug in case of error returned by vsnprintf:
...
the buffer may have been corrupted in case of error.
Clean it before returning.
2018-07-18 21:41:52 +02:00
Patrick Pelissier
be26176828
Add one more test case.
2018-07-18 21:41:14 +02:00
Patrick Pelissier
540e01f1fe
Fix prototype of the callback to InitOnceExecuteOnce: Missing CALLBACK.
...
(Some version of the compilers for windows produced warnings)
2018-07-18 21:21:35 +02:00
Patrick Pelissier
7cfb6b16e4
Update cross compilation information.
2018-07-18 01:01:13 +02:00
Patrick Pelissier
d5a8b9648f
Simplify
2018-07-18 01:01:04 +02:00
Patrick Pelissier
1657d7af7d
Support of LOG_COMPILER for cross-compilation test.
2018-07-18 00:28:35 +02:00
Patrick Pelissier
318f1a2818
Update/Add comments.
2018-07-17 23:03:45 +02:00
Patrick Pelissier
8b0b115709
Update comment.
2018-07-17 23:03:33 +02:00
Patrick Pelissier
7d2494b7f9
Fix bug of SPMC / MPMC snapshots: not all items in buffers
...
were properly cleared.
2018-07-17 21:10:14 +02:00
Patrick Pelissier
3b642ffeb3
Update after internal review.
2018-07-17 21:00:55 +02:00
Patrick Pelissier
815bf5f0e0
Include proper header and do not depend on other headers to include it.
2018-07-16 21:45:28 +02:00
Patrick Pelissier
4af48724ce
Update after internal review.
2018-07-16 21:43:17 +02:00
Patrick Pelissier
001272820c
Update example to latests API.
2018-07-15 23:11:00 +02:00
Patrick Pelissier
4aca0664ef
Add methods _find_again, _find_again_if, _mismatch_again and _mismatch_again_if
2018-07-15 23:06:22 +02:00
Patrick Pelissier
6721a86768
Add method _mismatch and _mismatch_if
2018-07-15 22:34:29 +02:00
Patrick Pelissier
5025b3690d
Add test.
2018-07-15 22:26:59 +02:00
Patrick Pelissier
42b37a718f
Add test.
2018-07-15 22:26:21 +02:00
Patrick Pelissier
fcdfd836ec
Add method _count_if
2018-07-15 11:05:58 +02:00
Patrick Pelissier
b2f005239b
API breakage:
...
rename _constains into _contain_p
to be more uniform with other predicate functions,
and to use infinitive form for the method.
2018-07-15 10:54:38 +02:00
Patrick Pelissier
bc3fa890bd
Add method _find_if.
2018-07-15 10:48:22 +02:00
Patrick Pelissier
95dbbf6e75
Simplification of the example.
2018-07-15 02:53:35 +02:00
Patrick Pelissier
22f2ae7341
Add methods _all_of_p, _any_of_p and _none_of_p.
2018-07-14 18:21:46 +02:00
Patrick Pelissier
96202aa78f
Do not use reserved identifiers of the C standard (See 7.1.3 Reserved identifiers)
2018-07-14 14:35:14 +02:00
Patrick Pelissier
cef8a13cc2
Add a new test.
2018-07-14 14:18:25 +02:00
Patrick Pelissier
54271231a0
Update doc.
2018-07-14 14:13:18 +02:00
Patrick Pelissier
d1bb651596
Update doc.
2018-07-14 14:03:17 +02:00
Patrick Pelissier
10b7f65437
Update DEV.
2018-07-13 10:54:41 +02:00
Patrick Pelissier
3a70324d43
Fix spelling.
2018-07-13 10:42:26 +02:00
Patrick Pelissier
21b72cd174
Update
2018-07-13 10:40:45 +02:00
Patrick Pelissier
ce8656f1b2
Update
2018-07-13 10:40:40 +02:00
Patrick Pelissier
9277dc967b
Update
2018-07-11 00:04:45 +02:00
Patrick Pelissier
67b1e65d97
Update comment
2018-07-08 00:33:18 +02:00
Patrick Pelissier
79fe9da2da
Update
2018-07-05 12:21:02 +02:00
Patrick Pelissier
3164e2698d
Improve comments.
2018-07-05 12:12:16 +02:00
Patrick Pelissier
ffae33e6f7
Update
2018-07-05 12:12:09 +02:00
Patrick Pelissier
8dafe3b7a6
Add macro M_GET_AT.
2018-07-04 17:39:03 +02:00
Patrick Pelissier
e23616169b
Improve comments.
2018-07-04 17:38:48 +02:00
Patrick Pelissier
9d7fc942f7
Rename DICT_SET_DEF2 into DICT_SET_DEF
2018-07-03 15:50:14 +02:00
Patrick Pelissier
982d8cf19d
DICT_*_DEF* doesn't require anymore oplists for defining the function:
...
it can get them from global oplists or default oplits.
2018-07-03 15:44:40 +02:00
Patrick Pelissier
aae460623d
Replace _set_at by _push
2018-07-03 15:07:36 +02:00
Patrick Pelissier
df14e5bcb6
Update
2018-07-03 10:42:51 +02:00
Patrick Pelissier
15d5a83c16
Update doc
2018-07-03 10:42:11 +02:00
Patrick Pelissier
4b0f7543ee
Rename _set_at to _push method for SET dictionnary.
...
Add proper _splice method for SET dictionnary.
2018-07-03 10:40:26 +02:00
Patrick Pelissier
362c64aa9c
Fix URL to show preview.
2018-07-03 10:11:40 +02:00
Patrick Pelissier
56c497cf2c
Add ref card.
2018-07-03 10:08:16 +02:00
Patrick Pelissier
e0dc2da80a
Add synthesis of the API.
2018-07-03 09:35:35 +02:00
Patrick Pelissier
41362f12ea
Add comment about _hash for dict.
2018-07-01 22:54:19 +02:00
Patrick Pelissier
3765c0b0fb
Add _equal_p method for OA dictionary.
2018-07-01 22:44:56 +02:00
Patrick Pelissier
d1f2b62f66
Replace _set_at2 by _get_at for array.
...
(Break API)
2018-07-01 22:35:05 +02:00
Patrick Pelissier
26b8c1d0a2
Add method _move & _init_move.
2018-07-01 17:16:36 +02:00
Patrick Pelissier
aa195f9f6f
Add methods _cget.
2018-07-01 17:16:25 +02:00
Patrick Pelissier
cd1d59264e
Fix build issue with C++
2018-06-29 22:50:41 +02:00
Patrick Pelissier
923e009fd3
Fix issue for new method _get_at for OA dict.
2018-06-29 22:32:10 +02:00
Patrick Pelissier
70a4fd99f4
iFix buiild issue with mutex based atomics.
2018-06-29 21:43:33 +02:00
Patrick Pelissier
feb4011f57
Add new example.
2018-06-29 19:41:55 +02:00
Patrick Pelissier
bf2a04ff66
Add method _get_at:
...
_get or create an entry.
2018-06-29 19:41:34 +02:00
Patrick Pelissier
e16d352e71
Fix prototype (forgot const)
2018-06-29 19:41:20 +02:00
Patrick Pelissier
817724ce39
Fix issue for get_word:
...
the separators need to be skipped first.
2018-06-29 19:40:35 +02:00
Patrick Pelissier
0fda117ffe
Add push/pop_front/back_move methods.
2018-06-27 20:10:42 +02:00
Patrick Pelissier
e5be1e1f05
Add a name to the structure.
2018-06-27 20:10:28 +02:00
Patrick Pelissier
7d7af8cf59
Add a name to the structure.
2018-06-27 20:10:12 +02:00
Patrick Pelissier
cbc09f83d4
Disable MOVE & INIT_MOVE for such containers (TBC).
2018-06-27 20:09:45 +02:00
Patrick Pelissier
31913ae80e
Add bench for DualPushList.
2018-06-27 20:09:24 +02:00
Patrick Pelissier
522632bea6
Remove deprecated macro SNAPSHOT_DEF.
...
Shall use SNAPSHOT_SPSC_DEF
2018-06-27 20:04:18 +02:00
Patrick Pelissier
397f75a4db
Add missing method _front for bitset.
2018-06-27 07:33:23 +02:00
Patrick Pelissier
0bf84a321b
Add missing methods _capacity for MPMC queue & SPSC queue.
2018-06-27 07:28:34 +02:00
Patrick Pelissier
5915208dee
API breakage:
...
Rename _pop method into _pop_at method
as the provided function is a _pop_at method, not a _pop method.
Remove _pop from the oplist as it doesn't follow _pop convention.
2018-06-27 07:17:33 +02:00
Patrick Pelissier
2167931e3f
Remove _pop method from OPLIST as it doesn't follow _pop
...
convention.
2018-06-27 07:17:09 +02:00
Patrick Pelissier
2d18171914
Rename _pop method into _pop_at methods
...
as the provided function follow the prototype of a _pop_at method
rather than a _pop method.
2018-06-27 07:13:10 +02:00
Patrick Pelissier
28f6a7d399
Add missing _empty_p methods for dictionnaries.
2018-06-27 07:10:18 +02:00
Patrick Pelissier
8e042435e5
Update comment and use of a different hash function.
2018-06-23 13:26:46 +02:00
Patrick Pelissier
cddf8712e4
Update comment.
2018-06-23 13:12:28 +02:00
Patrick Pelissier
88fd96e022
Add a more complete example of use.
2018-06-23 13:10:33 +02:00
Patrick Pelissier
17e715f408
Remove _last as it is a duplicate with _back!
2018-06-23 11:07:06 +02:00
Patrick Pelissier
c821d9ea65
Add methods _front & _last for arrays.
2018-06-23 11:05:29 +02:00
Patrick Pelissier
5cb8a9ddd0
Document priority queue API.
2018-06-20 23:25:41 +02:00
Patrick Pelissier
f0131b2c39
Fix prototype of _front:
...
missing const.
2018-06-20 23:25:25 +02:00
Patrick Pelissier
bc3c68a3cb
Move a section.
2018-06-14 22:34:42 +02:00
Patrick Pelissier
b81d387778
Simplify the code by factoring similar branches.
2018-06-11 23:08:56 +02:00
Patrick Pelissier
0afbe72672
Fix spelling.
2018-06-11 21:09:20 +02:00
Patrick Pelissier
5fc63485f3
Update
2018-06-07 21:56:09 +02:00
Patrick Pelissier
1bc84c98f8
Update
2018-06-07 21:51:19 +02:00
Patrick Pelissier
737af45c85
Adding the long term ISSUES in configuration.
2018-06-07 21:47:23 +02:00
Patrick Pelissier
e08fbc7d86
Move all core macros to support up to 52 arguments.
2018-06-06 23:33:23 +02:00
Patrick Pelissier
91090d20de
Remove non defined operators from the oplist.
2018-06-06 00:00:08 +02:00
Patrick Pelissier
05a22e20b8
Add documentation on B+TREE.
2018-06-05 23:58:49 +02:00
Patrick Pelissier
7c43f343a3
Update
2018-06-05 00:39:07 +02:00
Patrick Pelissier
029e6aa251
Remove reference to libraries without working sites.
2018-06-04 23:11:18 +02:00
Patrick Pelissier
2f26d4ffd3
Add more tests / improve coverage.
2018-06-02 21:26:54 +02:00
Patrick Pelissier
d306bae035
Generate cleaner coverage.
2018-06-02 21:26:32 +02:00
Patrick Pelissier
34dc8b32cb
Fix broken _swap
2018-06-02 21:26:20 +02:00
Patrick Pelissier
fe38244d7c
Micro optimisation.
2018-06-02 19:31:07 +02:00
Patrick Pelissier
25e8c9f637
Update comments.
2018-06-02 19:23:46 +02:00
Patrick Pelissier
337b568b5e
Update comments.
2018-06-02 19:21:59 +02:00
Patrick Pelissier
e696192ef7
Update comments.
...
Cosmetic change.
2018-05-31 23:09:11 +02:00
Patrick Pelissier
928fc077b8
Remove a warning.
2018-05-30 23:17:37 +02:00
Patrick Pelissier
2a448b932c
Update doc
2018-05-30 23:17:30 +02:00
Patrick Pelissier
d40d23a50e
Add test for _splice_at for Intrusive list.
2018-05-30 20:21:37 +02:00
Patrick Pelissier
c4548c4355
Fix splice_at which was broken.
2018-05-30 20:21:27 +02:00
Patrick Pelissier
50fdea813b
Update doc
2018-05-30 19:26:13 +02:00
Patrick Pelissier
0ff163e541
Fix issue for intrusive list and _splice_back.
2018-05-29 23:00:25 +02:00
Patrick Pelissier
38cd8847a2
Adding a generic merge sort if container has both _splice_back & _splice_at
...
methods
2018-05-28 23:51:41 +02:00
Patrick Pelissier
e62ae9fb94
Fix the iterators calculation of _splice_at.
...
NOTE: iterator seems broken for _splice_back. To check
2018-05-28 23:51:10 +02:00
Patrick Pelissier
187b6cf072
Update to new specification.
2018-05-28 23:46:30 +02:00
Patrick Pelissier
a3fad5966a
Update test to reflect the new specifications.
2018-05-28 23:46:10 +02:00
Patrick Pelissier
74350f3638
Reuse a local variable instead of reading once again from memory.
2018-05-28 23:45:40 +02:00
Patrick Pelissier
ee2c7caac2
Update _splice_at with new specification.
...
Fix issue of _splice_at (iterator not properly set).
Export _split_at methods in oplist.
2018-05-28 23:44:15 +02:00
Patrick Pelissier
c915a6912e
Update specification of _splice_at.
...
It is more interressing to have the iterator of the target list
to advance too. It allows copying items from list to list in the same order.
2018-05-28 23:43:05 +02:00
Patrick Pelissier
d5cd232441
Add method SPLICE_AT as a generic method.
2018-05-28 23:42:46 +02:00
Patrick Pelissier
c4c14b0fc6
Add _splice_at
2018-05-28 22:08:55 +02:00
Patrick Pelissier
e5f5563249
Add method _splice_at for dual_push_list
2018-05-28 21:58:45 +02:00
Patrick Pelissier
2a6893efb4
Add method _splice_at for singly list.
2018-05-28 21:22:14 +02:00
Patrick Pelissier
9fd920945a
Remove condition that the list shall be different for splice_back.
...
No need.
2018-05-28 20:59:27 +02:00
Patrick Pelissier
a116daa7a1
Splice_back may work if old & new are the same list.
2018-05-28 20:58:51 +02:00
Patrick Pelissier
0b8759380b
Fix name of called method to avoid infinite recursion...
2018-05-27 11:17:11 +02:00
Patrick Pelissier
00c5e3544f
Export _splice_back methods.
...
Add _push_move & _pop_move methods for dual push list.
2018-05-27 11:16:16 +02:00
Patrick Pelissier
53a79e3170
Export splice_back method for list
2018-05-27 11:06:35 +02:00
Patrick Pelissier
5810bf9acd
Add method SPLICE_BACK.
2018-05-27 11:05:00 +02:00
Patrick Pelissier
7815feddba
Proper expand algorithms for intrusive list.
2018-05-24 22:58:16 +02:00
Patrick Pelissier
f529a5eea8
Use of a trick to make the function compatible with other
...
definition of the _it method (use of const for the container).
2018-05-24 22:57:27 +02:00
Patrick Pelissier
40e9550b29
Generate algo for intrusive list.
2018-05-23 21:10:58 +02:00
Patrick Pelissier
64d0202f95
ALGO macros accept now a type instead of an oplist
...
if a global oplist has been registered for the type.
Add macro ALGO_LET_INIT_VA which declares, initializes, sets and clears
a container.
2018-05-22 20:39:51 +02:00
Patrick Pelissier
da9483aa3a
Add reference to C standard about CONST_CAST.
2018-05-22 19:38:38 +02:00
Patrick Pelissier
0221e555fe
Fix bug in deque: _clean doesn't call CLEAR on all created objects.
2018-05-22 05:46:37 +02:00
Patrick Pelissier
494ee2c099
Add proper check of allocation for testing object.
2018-05-22 05:46:04 +02:00
Patrick Pelissier
dc92ad9c02
Fix compatbility issue with C++ which doesn't support
...
compound literal...
2018-05-21 23:00:48 +02:00
Patrick Pelissier
8a4a019973
Fix build issue with C++
2018-05-21 07:23:19 +02:00
Patrick Pelissier
a1a49ebf4b
Update comment
2018-05-20 22:38:00 +02:00
Patrick Pelissier
45263a6261
Fix parenthesis
2018-05-20 18:07:58 +02:00
Patrick Pelissier
7ccede36b1
Test with deque too.
2018-05-19 12:52:40 +02:00
Patrick Pelissier
482e1631fa
Remove warning in case of some kind of type
...
(Famous problem of C not allowing to cast
a T (*)[N] into a const T (*)[N].
2018-05-19 12:51:31 +02:00
Patrick Pelissier
d0fe7f3e25
Add method _push_move & _pop_move.
...
Add assertion on _pop_back to check that the container is not empty.
2018-05-19 11:21:57 +02:00
Patrick Pelissier
86083e3a92
Add methods push_move & pop_move.
...
Rewrite _pop_back to be a little bit faster for complex structure as it used
DO_MOVE instead of plain _set.
2018-05-19 11:21:18 +02:00
Patrick Pelissier
281f567d97
Add proper usage of const.
2018-05-19 11:10:09 +02:00
Patrick Pelissier
7f887720cc
Add methods PUSH_MOVE & POP_MOVE.
2018-05-19 11:09:36 +02:00
Patrick Pelissier
717268add9
Simplify the macro usage.
2018-05-19 11:09:20 +02:00
Patrick Pelissier
2f7e3b1596
Update documentation.
2018-05-19 11:08:54 +02:00
Patrick Pelissier
1a3cd2f626
Add experimental support for cmp function with user define order.
2018-05-16 22:36:26 +02:00
Patrick Pelissier
2fbea43a5c
Add M_MAP3 macro.
2018-05-16 20:00:41 +02:00
Patrick Pelissier
70788e932e
Update doc
2018-05-16 19:47:06 +02:00
Patrick Pelissier
949d12052e
Update
2018-05-16 07:52:37 +02:00
Patrick Pelissier
2af35673bb
Update comments about TODO.
2018-05-15 21:02:34 +02:00
Patrick Pelissier
4a64ca58ac
Update tested systems.
2018-05-15 20:41:15 +02:00
Patrick Pelissier
815c594fa6
Add new libraries
2018-05-15 20:41:06 +02:00
Patrick Pelissier
fc4dba4569
Add DSC versions of the _sort function to reverve the sort (DSC=descending).
2018-05-14 23:08:46 +02:00
Patrick Pelissier
1d8df98339
Rename undocumented methods _union & _intersect to _sort_union & _sort_intersect
...
as they depend on the sort order.
2018-05-14 22:58:52 +02:00
Patrick Pelissier
745aabcfd5
Factorisation of all calls to GET_CMP within the sort functions
...
to a single function.
2018-05-14 22:55:17 +02:00
Patrick Pelissier
be100790f1
Uniformize the comparaisons to always be in the same order.
2018-05-14 22:51:07 +02:00
Patrick Pelissier
afc5e82906
Externalize _sort generation from the main macro.
2018-05-14 22:49:11 +02:00
Patrick Pelissier
2951d4b7fa
Document new methods.
2018-05-14 22:30:08 +02:00
Patrick Pelissier
dcd300211f
Add methods _cmp_field for tuples.
2018-05-14 22:29:58 +02:00
Patrick Pelissier
f796d27bb4
Update
2018-05-13 09:55:08 +02:00
Patrick Pelissier
47a2553356
Add new test on B*TREE as set.
2018-05-11 22:41:56 +02:00
Patrick Pelissier
67bf199254
Fix comparison of object.
...
memcmp compares object as little endian, which is not what we want.
2018-05-11 22:41:22 +02:00
Patrick Pelissier
4b1ed25ef3
Rewrite inner loop. should be a little bit faster.
2018-05-11 22:41:00 +02:00
Patrick Pelissier
a5ac43e5f3
Fix issue with oplist of set.
2018-05-11 17:57:33 +02:00
Patrick Pelissier
0557527bfe
Update format of serialisation for B+TREE:
...
as the tree is ordered, a '[]' has to be used.
2018-05-11 17:32:32 +02:00
Patrick Pelissier
dc1445e0d6
Remove TODO comment.
2018-05-10 23:12:38 +02:00
Patrick Pelissier
431401bc96
Improve example.
2018-05-10 01:59:05 +02:00
Patrick Pelissier
fded6c404a
Add new libraries.
2018-05-10 01:34:20 +02:00
Patrick Pelissier
680a850618
Add test of _in_str, _out_str, _get_str and _parse_str
2018-05-09 21:48:42 +02:00
Patrick Pelissier
7d08a7ba1a
Fix issue in _parse_str
2018-05-09 21:48:32 +02:00
Patrick Pelissier
e9f603fa30
Rename internal calls to my_mpz* to testobj*
2018-05-08 10:40:29 +02:00
Patrick Pelissier
1a064e033b
Rename mympz.h --> test-obj.h
...
as it is used only for testing purpose.
2018-05-08 10:29:51 +02:00
Patrick Pelissier
ebcfcf9bfa
Add I/O test for B+TREE
2018-05-07 23:08:47 +02:00
Patrick Pelissier
cf063b75ff
Update oplist to reflect all methods.
2018-05-07 23:08:12 +02:00
Patrick Pelissier
951a9d7989
Fix issue in parse.
2018-05-07 23:08:01 +02:00
Patrick Pelissier
37191a53c3
Fix unclear variable.
2018-05-04 00:14:52 +02:00
Patrick Pelissier
42d420db6a
Add generation for string.
2018-05-03 22:12:32 +02:00
Patrick Pelissier
122cf63a3f
Preshift the state by 8, to avoid a shift within the decoder.
...
Rewrite the size_u to avoid a branch.
2018-05-03 22:11:43 +02:00
Patrick Pelissier
fafce60f9e
Add method _parse_str
...
NOTE: _in_str, _out_str, _get_str & _parse_str remain to be tested.
2018-05-03 18:06:11 +02:00
Patrick Pelissier
e855f27c8c
Add method _parse_str for RBTREE.
...
NOTE: A refactorisation seems needed as all the in_str / parse_str
share a lot of the same algorithms. Maybe move them into algo?
2018-05-03 17:59:34 +02:00
Patrick Pelissier
f01a593ff7
Update
2018-05-03 17:59:21 +02:00
Patrick Pelissier
6af34b1c16
Update doc to add _parse_str method
2018-05-03 17:51:36 +02:00
Patrick Pelissier
188b329eae
Add method _parse_str for dict.
2018-05-03 17:43:40 +02:00
Patrick Pelissier
7b0f71cc99
Add method _parse_str for deque
...
(missing tests for in, out, get_str & parse_str).
2018-05-03 17:34:17 +02:00
Patrick Pelissier
73f8baf464
Add method _parse_str for array.
2018-05-03 17:29:10 +02:00
Patrick Pelissier
3a09efde91
Skip spaces in serialisation.
2018-05-03 17:22:50 +02:00
Patrick Pelissier
4efa8c1ef9
Add function _parse_str for list.
2018-05-03 17:14:10 +02:00
Patrick Pelissier
9f178208f2
Fix bug in new function.
2018-05-03 17:13:47 +02:00
Patrick Pelissier
0f2113ee12
Fix
2018-05-03 17:03:09 +02:00
Patrick Pelissier
139e003b0b
Add method _parse_str for variant.
2018-05-03 17:01:03 +02:00
Patrick Pelissier
1bf80cf315
Add function _parse_str
2018-05-03 13:37:19 +02:00
Patrick Pelissier
bcf182f515
Add _parse_str method
2018-05-03 13:30:39 +02:00
Patrick Pelissier
c34fb94e77
Proper export of the method PARSE_STR
2018-05-03 13:19:36 +02:00
Patrick Pelissier
64080fadd3
Update comments.
2018-05-03 13:07:52 +02:00
Patrick Pelissier
1009cd6ed4
Export _parse_str function.
2018-05-03 13:05:45 +02:00
Patrick Pelissier
839c1af124
Export _parse_str function.
2018-05-03 13:04:04 +02:00
Patrick Pelissier
6b24842704
Add _parse_str interface.
...
Rewrite _set_str to use the _parse_str
2018-05-03 12:59:58 +02:00
Patrick Pelissier
2ad8ae3451
Rewrite parse_str interface to be more like strol
2018-05-03 12:59:10 +02:00
Patrick Pelissier
b1597f6f61
Rewrite comments.
2018-05-02 23:57:24 +02:00
Patrick Pelissier
47a49263ae
Add function _parse_str for string.
2018-05-02 19:36:51 +02:00
Patrick Pelissier
9fed336c9e
Add proper const to prototype.
2018-05-01 12:44:43 +02:00
Patrick Pelissier
ac5b689950
Add method _set2 for tuple.
2018-04-30 20:00:26 +02:00
Patrick Pelissier
3d43bb260a
Update
2018-04-30 13:32:24 +02:00
Patrick Pelissier
2eaeb26d4c
Make Serialization input of array / dict more flexible
...
by supporting space characters within the input.
2018-04-30 11:02:42 +02:00
Patrick Pelissier
34d0f8ec81
Add missing function for variant:
...
variant_init_element
variant_init_set_element
2018-04-30 10:24:37 +02:00
Patrick Pelissier
ddc1c7e98f
Update to display checksum correctly.
2018-04-30 08:24:31 +02:00
Patrick Pelissier
e41475f672
Rewrite
2018-04-29 11:52:19 +02:00
Patrick Pelissier
e954622925
Rewrite
2018-04-29 11:48:02 +02:00
Patrick Pelissier
fae899e52e
Add benchmark udb2.
2018-04-29 10:45:03 +02:00
Patrick Pelissier
7b11f5afbc
Add benchmark UDB
2018-04-28 19:44:52 +02:00
Patrick Pelissier
40c0bf79b1
Update
2018-04-28 19:09:30 +02:00
Patrick Pelissier
df2df593b6
Replace complex convertion from int to string into a simple call to to_string
2018-04-27 21:54:57 +02:00
Patrick Pelissier
1dc59d610d
Use of new function m_thread_yield
2018-04-27 21:54:34 +02:00
Patrick Pelissier
8fc8decd09
Add m_thread_yield & m_thread_sleep.
...
Rewrite the windows package (it wasn't fully working before) and use functions
available since WINDOWS VISTA (increasing minimum supported version).
2018-04-27 20:12:44 +02:00
Patrick Pelissier
08f44845ce
Fix issue for SPSC queue:
...
computing the number of elements in the queue is not reliable enough
as we can get more than than the size of the queue.
2018-04-26 22:41:11 +02:00
Patrick Pelissier
4fbffc4788
Use plain 'unsigned int' instead of 'unsigned long long'
...
for index of SPSC queues. There is no issue as we don't compare
the index, but only substract them.
2018-04-26 22:38:43 +02:00
Patrick Pelissier
8cf4050d3d
Remove uneeded alignment constraint for SPSC queue.
2018-04-26 22:26:30 +02:00
Patrick Pelissier
31c18fc56d
Bench SPSC queues too.
2018-04-26 22:05:54 +02:00
Patrick Pelissier
005207cfd6
Remove a warning in release mode.
2018-04-26 22:05:36 +02:00
Patrick Pelissier
c8d668ad96
Merge branch 'master' of https://github.com/P-p-H-d/mlib
2018-04-25 22:04:42 +02:00
Patrick Pelissier
a39c4ba9a4
Rewrite the code by adding an additional cast to avoid new warning with GCC8.
2018-04-25 22:03:52 +02:00
Patrick Pelissier
f4deea05bf
Update doc.
2018-04-24 22:42:19 +02:00
Patrick Pelissier
1c18133603
Close the handle of the thread in case of joining thread.
2018-04-22 19:30:24 +02:00
Patrick Pelissier
15566b4b65
Add bench of library SDS for string
2018-04-21 18:53:38 +02:00
Patrick Pelissier
737185752c
Merge branch 'master' of https://github.com/P-p-H-d/mlib
2018-04-21 12:46:26 +02:00
Patrick Pelissier
a12e3534c6
Rewrite I/O functions so that they handle properly
...
non printable characters.
2018-04-21 10:26:05 +02:00
Patrick Pelissier
51575b341b
Use of static library for liblfds.
2018-04-20 22:24:20 +02:00
Patrick Pelissier
06b330ec51
Update doc
2018-04-20 21:44:59 +02:00
Patrick Pelissier
e0a6bce5b0
Add SDS
2018-04-20 21:43:19 +02:00
Patrick Pelissier
da07a5b613
string_strim allows optionnal second argument which list the characters to strim.
2018-04-20 20:46:44 +02:00
Patrick Pelissier
fbbca37b55
Ignore a*.dat file too.
2018-04-20 19:51:56 +02:00
Patrick Pelissier
7fa1c2264e
Fix issue for C++ layer (memory order constants have to be put in the current namespace too).
2018-04-20 19:34:22 +02:00
Patrick Pelissier
dcfbe53713
Fix conformity bug in _splice.
2018-04-20 19:30:45 +02:00
Patrick Pelissier
8b2993c979
Add more assertions to help scan-build with false positive.
2018-04-20 19:30:15 +02:00
Patrick Pelissier
131da660c8
Fix bug in _clean.
2018-04-20 19:30:01 +02:00
Patrick Pelissier
f3de34a62b
Optimization for MPMC queues:
...
* use of atomic_explicit functions to give the memory order we want,
* reduce the size of the index to unsigned int: even if there is an
overflow, it doesn't matter as we don't compare the index with < or >
but with ==.
2018-04-19 22:15:37 +02:00
Patrick Pelissier
928d6bafcb
Fix issue if there is no working stdatomic / atomic header:
...
definition of atomic_compare_exchange_strong_explicit was wrong.
Same for atomic_compare_exchange_weak_explicit
2018-04-19 22:14:16 +02:00
Patrick Pelissier
704fb0cbd9
Add a cast to avoid a warning with some compilers
...
(I am not sure the warning was justified).
2018-04-19 22:13:53 +02:00
Patrick Pelissier
3be27aefa3
Fix the format for size_t
2018-04-19 22:13:27 +02:00
Patrick Pelissier
8be81ac09e
Update the list of tested systems.
2018-04-19 22:13:05 +02:00
Patrick Pelissier
e2fc9c3699
Update
2018-04-19 20:21:54 +02:00
Patrick Pelissier
472eaff6f0
Add gene queue
2018-04-19 20:20:18 +02:00
Patrick Pelissier
805b016aee
Reformat test and reduce pressure on thread creation for some tests
...
(Some systems didn't handle so much thread creation).
2018-04-17 23:01:05 +02:00
Patrick Pelissier
624a13ba1a
Update version with added parallelism for long computation.
2018-04-17 00:00:56 +02:00
Patrick Pelissier
9692bf3991
Start list of API breakage.
2018-04-17 00:00:29 +02:00
Patrick Pelissier
3f5406f1d4
API breakage:
...
worker_sync takes an extra parameter (worker_t) to perform a
wait-on-event instead of a busy waiting, reducing consummer ressources.
worker_init takes an int instead of an unsigned int for the number of workers.
It allows additional extra value -1 to initialize the number of workers to
twice the number of CPU, allowing to overload the CPU with loads and keep
them fully working in some scenario.
2018-04-16 23:57:28 +02:00
Patrick Pelissier
b684a62f8b
Add more local information about the origin of a failure.
2018-04-16 22:05:17 +02:00
Patrick Pelissier
6bb94db22f
Add function dict_splice
2018-04-15 21:02:14 +02:00
Patrick Pelissier
d70a971d2e
Add note
2018-04-15 20:59:04 +02:00
Patrick Pelissier
b05b515f3d
Reformat
2018-04-15 20:58:52 +02:00
Patrick Pelissier
12b15e0037
Add function array_splice just like function list_splice
...
as it can be done faster at low level.
2018-04-15 11:41:32 +02:00
Patrick Pelissier
2c9169308b
Add code generation for OA dict
2018-04-15 10:53:55 +02:00
Patrick Pelissier
74a3d50c88
Minor optimization for _clean
...
No need to fill in the complete array with invalid param
as the array will be reduced.
2018-04-15 10:53:15 +02:00
Patrick Pelissier
6b8bb33221
Convert unsigned long to size_t in function prototypes for 32 bits systems.
2018-04-15 01:10:49 +02:00
Patrick Pelissier
175fb46508
Fix issue for 32 bits system
2018-04-15 00:48:31 +02:00
Patrick Pelissier
2f65400641
Add target checkall to lanch the test suite wih multiple compilers / options.
2018-04-15 00:40:48 +02:00
Patrick Pelissier
b5f4f2fc4b
Finish splitting m_core_clz into m_core_clz32 & m_core_clz64
2018-04-15 00:10:38 +02:00
Patrick Pélissier
8c34f44dae
Finish fixing for 32 bits / clz
2018-04-14 23:14:21 +02:00
Patrick Pélissier
d97f46133b
Fix issue for 32 bits systems
...
mpz_core_clz wasn't reproductible for 32 bits system.
2018-04-14 23:08:53 +02:00
Patrick Pélissier
a94a5feb84
Fix issue with 32 bits systems (size_t != unsigned long)
2018-04-14 20:52:29 +02:00
Patrick Pelissier
ead5d7511a
Use of proper oplist with the CMP method.
2018-04-14 08:33:37 +02:00
Patrick Pelissier
1cd7446013
Add more instantiation of the containter
2018-04-14 08:27:26 +02:00
Patrick Pelissier
40747a463b
Remove dependecies from GMP header, allowing to run the test suite without GMP
2018-04-14 08:16:31 +02:00
Patrick Pelissier
8e20118ab6
Reformat
2018-04-14 08:12:58 +02:00
Patrick Pelissier
19f330e670
Rename also MYMPZ2_OPLIST into MY_MPZ_CMP_OPLIST
2018-04-14 08:12:27 +02:00
Patrick Pelissier
20d549b5e1
Rename MYMPZ_OPLIST into MY_MPZ_OPLIST
2018-04-14 08:11:14 +02:00
Patrick Pelissier
e09fa89781
Little bit rewrite to help the compiler optimizes the loop a bit more:
...
as the variables are not longer on the stack, it uses more registers
and more instructions in the critical loop than before. By
copying the data into stack local variable, the compiler is once again
able to optimize the loop properly.
2018-04-14 08:07:01 +02:00
Patrick Pelissier
70b1421114
Update after review
2018-04-13 20:56:48 +02:00
Patrick Pelissier
b80a30785a
Fix
2018-04-13 20:28:57 +02:00
Patrick Pelissier
c3245ac301
Full refactorisation and proper use of M*LIB.
...
Should be as fast as before.
2018-04-13 20:28:01 +02:00
Patrick Pelissier
085d5b411c
Add oplist for B*TREE
2018-04-13 20:16:23 +02:00
Patrick Pelissier
8c26d6d0b5
Update
2018-04-12 23:39:19 +02:00
Patrick Pelissier
76f5085e84
Merge branch 'master' of https://github.com/P-p-H-d/mlib
2018-04-11 22:42:46 +02:00
Patrick Pelissier
80d78e3270
Add bounded string cte macro
2018-04-11 22:42:22 +02:00
Patrick Pelissier
654521b74c
Add some tests of _equal_p
2018-04-10 23:25:04 +02:00
Patrick Pelissier
353d2d4cc9
Fix issue in copy of B*TREE:
...
the _next field wasn't properly set for the deepest nodes.
2018-04-10 23:23:36 +02:00
Patrick Pelissier
b38d84419a
Add methods hash, eqal_p, out_str, in_str & get_str
...
Format of serialisation needs to be properly uniformised between:
dictionnary,
red-black tree,
set,
b+tree with key,value,
b+tree with only key.
2018-04-09 18:42:34 +02:00
Patrick Pelissier
0d085771e4
Add tests for new methods
2018-04-09 18:07:03 +02:00
Patrick Pelissier
f3b2b6b41e
Add methods _swap, _move & _init_move
2018-04-09 18:06:48 +02:00
Patrick Pelissier
fb35ad7ab3
Update due no new LIBSRT API.
2018-04-08 21:43:25 +02:00
Patrick Pelissier
cf6e721994
Fix wrong usage of CollectionC by the benchmark.
2018-04-08 21:32:57 +02:00
Patrick Pelissier
9faea5ff15
Rewrite bench code so that it computes what is expected.
2018-04-08 21:10:29 +02:00
Patrick Pelissier
fe18009bc0
Rewrite the loop so that the result is the same for dict and dict_oa.
2018-04-08 21:07:20 +02:00
Patrick Pelissier
10f900ea3e
Rewrite code to avoid warning if optimisations are turned on.
2018-04-08 20:27:37 +02:00
Patrick Pelissier
63874694f8
Rewrite the code to avoid some silly warnings on some implementation.
2018-04-08 20:01:04 +02:00
Patrick Pelissier
9b9e246e66
More tests
2018-04-08 11:16:31 +02:00
Patrick Pelissier
e6a6eb9be5
Fix issue in it_from for B+TREE
2018-04-08 11:13:48 +02:00
Patrick Pelissier
050bb5dbfa
Add tests for it_from & it_to_p for B+TREE
2018-04-08 11:13:22 +02:00
Patrick Pelissier
b005ec1845
Fix function max for B+TREE
2018-04-08 10:48:02 +02:00
Patrick Pelissier
f158a94e0a
Add tests for min & max
2018-04-08 10:47:52 +02:00
Patrick Pelissier
a166620a6d
Add method _from, _to_p, _min & _max for B+TREE
2018-04-08 10:39:27 +02:00
Patrick Pelissier
47fb467878
Add basic it test for B+tree
2018-04-08 07:24:56 +02:00
Patrick Pelissier
67af80c772
Fix issue in it_end for B+TREE
2018-04-08 07:22:34 +02:00
Patrick Pelissier
1f44155127
Add one more corner case
2018-04-07 12:11:50 +02:00
Patrick Pelissier
87a3ac4a76
Add test for methods _init_set & _set for B+tree
2018-04-07 12:10:50 +02:00
Patrick Pelissier
73354a04d5
Add method _init_set & _set for B+tree
2018-04-07 12:10:19 +02:00
Patrick Pelissier
cb3038e73c
Add more checks
2018-04-07 11:51:38 +02:00
Patrick Pelissier
b6ec31fe11
Add more test.
2018-04-07 11:50:18 +02:00
Patrick Pelissier
c7059a60ee
Add more tests
2018-04-07 11:44:16 +02:00
Patrick Pelissier
af49aaf8b1
Add more tests.
2018-04-07 11:42:12 +02:00
Patrick Pelissier
4149b8388b
Improve quality of coverage report by not expanding contract function.
2018-04-07 11:41:43 +02:00
Patrick Pelissier
df0d723714
Compute coverage for B+TREE
2018-04-07 11:28:50 +02:00
Patrick Pelissier
44209ed93e
Add more tests
2018-04-07 11:19:58 +02:00
Patrick Pelissier
930a3c8637
More tests.
2018-04-07 11:14:31 +02:00
Patrick Pelissier
d2f5698397
iMake oplist optional for BPTREE_DEF
2018-04-07 11:10:13 +02:00
Patrick Pelissier
42d9fc3284
Update doc
2018-04-07 00:43:51 +02:00
Patrick Pelissier
91db494898
Add basic iterator for B+tree
...
I can't match the exact interface of a dictionary of the key and the value are in separate place in the structure
(so I can't return a pair of (key,value)). Instead I return a pair of pointer (key_ptr, value_ptr).
I don't see any other way which doesn't evolve copy of the key/value.
For the RBtree interface, no such problem occurs.
2018-04-05 22:44:36 +02:00
Patrick Pelissier
75217d4914
Rewrite / cleanup
2018-04-04 22:57:47 +02:00
Patrick Pelissier
ceaf004719
Remove wrong comment
2018-04-04 22:55:19 +02:00
Patrick Pelissier
27b7380433
B+TREE: Add _size operator
2018-04-04 22:54:39 +02:00
Patrick Pelissier
7ca254ade9
B+TREE: Add _pop function.
2018-04-04 22:39:46 +02:00
Patrick Pelissier
c91864c2a7
B+TREE: _remove returns a boolean indicating if the item
...
removed was present or not
2018-04-04 22:35:47 +02:00
Patrick Pelissier
4925297a35
Update doc
2018-04-04 20:27:44 +02:00
Patrick Pelissier
d7ece50ed0
Replace "Dict" by "DictOA" since KLIB uses an OpenAddressing dictionnary.
2018-04-03 20:13:18 +02:00
Patrick Pelissier
3ef4a9f413
Fix issue with the way of benching the BTREE of KLIB.
...
Forgot to initialize the key in the search pass.
2018-04-03 20:10:11 +02:00
Patrick Pelissier
9768b5b37a
Add bench of B+TREE
2018-04-03 20:07:21 +02:00
Patrick Pelissier
e4cd999bd0
Test expansion of new container.
2018-04-03 20:01:24 +02:00
Patrick Pelissier
8e335535cc
Add new container without a value.
2018-04-03 20:01:04 +02:00
Patrick Pelissier
2f53d98806
Fix issue with kind_s being redefined if the macro is used again.
...
Fix issue of not using proper method for type.
Render usage of value optional so that we can create B+TREE with only keys.
2018-04-03 18:29:28 +02:00
Patrick Pelissier
5d99331358
Add expansion of a user type.
2018-04-03 18:29:16 +02:00
Patrick Pelissier
316022cde4
Add oplist with CMP operator
2018-04-03 18:28:51 +02:00
Patrick Pelissier
8d1abca8de
Add link to the comparison between STL & M*LIB
2018-04-03 12:47:44 +02:00
Patrick Pelissier
1b2e73eaa2
Prepare doc
2018-04-03 12:43:30 +02:00
Patrick Pelissier
6127371920
Add B+TREE container.
...
Fix #4
2018-04-03 12:40:29 +02:00
Patrick Pelissier
7936dbbf8c
Minor fix
2018-03-31 16:31:47 +02:00
Patrick Pelissier
8aa45309a2
Update doc
2018-03-31 12:10:50 +02:00
Patrick Pelissier
d75237ba66
Update
2018-03-31 12:05:42 +02:00
Patrick Pelissier
9909877771
Avoid warning with C++
2018-03-31 12:01:05 +02:00
Patrick Pelissier
64ef1f3aba
Fix classic issue with C++
2018-03-31 11:56:28 +02:00
Patrick Pelissier
d670e1a6bb
Update
2018-03-31 10:05:24 +02:00
Patrick Pelissier
7082a4dc24
Fix wrong initialization of ATOMIC_VAR_INIT for the emulation layer
...
(wrong since the simplication of the atomic structure).
2018-03-31 10:04:41 +02:00
Patrick Pelissier
e6c9314c91
Reorder the list of other libraries.
2018-03-30 21:39:10 +02:00
Patrick Pelissier
3dccd4484e
Add nedtries
2018-03-30 21:35:19 +02:00
Patrick Pelissier
170ed98701
Remove dependency of boost/glib to the pool benchmark
2018-03-29 20:51:42 +02:00
Patrick Pelissier
54fa2c8635
Don't assume boost is always installed on the platform.
2018-03-29 20:12:53 +02:00
Patrick Pelissier
bc83fe43e5
Remove dependency on GMP, so that it is easier to run the bench suite.
2018-03-29 20:01:45 +02:00
Patrick Pelissier
18710567f2
Make QT & GLIB optional libraries
2018-03-29 19:19:48 +02:00
Patrick Pelissier
9a98ed5cb6
Add PHONY target.
2018-03-29 19:15:11 +02:00
Patrick Pelissier
35a98fd3b5
Remove unused header file
2018-03-29 19:13:59 +02:00
Patrick Pelissier
cd74fdf234
time command doesn't work reliabely in Makefile
2018-03-29 19:13:35 +02:00
Patrick Pelissier
6cccbfc73a
Add worker_sync_p function.
2018-03-26 22:13:50 +02:00
Patrick Pelissier
e59308a9a3
Update documentation.
2018-03-26 21:55:51 +02:00
Patrick Pelissier
85a3be4ae3
Update documentation
2018-03-26 21:45:06 +02:00
Patrick Pelissier
d873693fe7
Update to ignore 'other' directory
2018-03-24 12:47:19 +01:00
Patrick Pelissier
2df967d5c2
add TODO
2018-03-24 08:52:20 +01:00
Patrick Pelissier
20989a7ab5
Add test for bounded string.
2018-03-24 08:42:47 +01:00
Patrick Pelissier
8e114d6fe4
Add bounded string definition so that you can easily use them for a container.
2018-03-24 08:42:15 +01:00
Patrick Pelissier
479ad2d4ba
Update doc
2018-03-23 22:07:04 +01:00
Patrick Pelissier
d05bb49f5d
Add more assertions.
...
Change prototype of fputs to return the error / success status.
2018-03-23 21:25:55 +01:00
Patrick Pelissier
fc9755379d
Add ctemplates
2018-03-23 20:10:37 +01:00
Patrick Pelissier
a85db0c383
Add libgenerics
2018-03-21 23:13:34 +01:00
Patrick Pelissier
d19ec5bf49
Fix format of _size
2018-03-21 20:11:31 +01:00
Patrick Pelissier
ba72e4ebbf
Remove check in protected contract:
...
since there are two mutex now, there are data race when we want to check it.
TODO: Properly separate the contract.
2018-03-17 19:54:59 +01:00
Patrick Pelissier
5936e25ce4
Add test
2018-03-17 09:24:26 +01:00
Patrick Pelissier
d82dc196e0
Fix datarace (?) if support for pop deferred has been activated
...
(a rewake of thread may be lost)
2018-03-16 23:55:16 +01:00
Patrick Pelissier
c174b368e8
Fix issue with atomic variables needing writable variable even for reading only.
2018-03-16 23:27:08 +01:00
Patrick Pelissier
81e3515f40
Add missing tests
2018-03-16 23:06:15 +01:00
Patrick Pelissier
bffec6206b
Remove usage of variable array extension in C tests to avoid warning with C++ compilers.
2018-03-16 23:02:28 +01:00
Patrick Pelissier
d269c23948
Remove warning with C++.
...
It'll will increase the size of the type a little bit.
TODO: Check compatibility between code using C def and code using C++ def
2018-03-16 23:00:46 +01:00
Patrick Pelissier
f2b2335080
Fix issue with C++ not supporting passing an int constant value to an unsigned atomic type...
...
I definitely find this disturbing.
2018-03-16 22:59:51 +01:00
Patrick Pelissier
5dded0d9aa
Clarify the displayed message
2018-03-16 22:30:59 +01:00
Patrick Pelissier
33142c3a0d
Fix build for flathaspmap (needs of C++14 and not C++11).
2018-03-16 09:27:00 +01:00
Patrick Pelissier
06e256f77a
Fix build with newer version of library
2018-03-16 09:13:34 +01:00
Patrick Pelissier
3f13cca666
Fix compilation with newer version of library
2018-03-16 09:04:32 +01:00
Patrick Pelissier
73117708e5
Analyze generated code
2018-03-14 23:51:51 +01:00
Patrick Pelissier
f88b53dce5
Fix issue
2018-03-14 23:51:43 +01:00
Patrick Pelissier
3e609bab04
Add method pop_until
2018-03-14 23:46:30 +01:00
Patrick Pelissier
a6bf530c5f
Remove a warning.
2018-03-14 22:19:16 +01:00
Patrick Pelissier
5d003b7678
Generate more functions
2018-03-14 22:18:48 +01:00
Patrick Pelissier
a5cbc3f34a
Rename method into GET_KEY. Add method SET_KEY
2018-03-13 22:22:26 +01:00
Patrick Pelissier
52e92e1ebf
Bench stable sort
2018-03-11 00:36:51 +01:00
Patrick Pelissier
5307b6c097
Add stable sort for array
2018-03-11 00:36:38 +01:00
Patrick Pelissier
dd4f4761de
Add GET_AT method
...
:
2018-03-10 19:26:59 +01:00
Patrick Pelissier
96f3533e46
Fix bug for default oplist used by M_A1_OPLIST
...
o
2018-03-10 18:52:16 +01:00
Patrick Pelissier
774e1720b7
Add M_SWAP_DEFAULT
2018-03-10 18:48:27 +01:00
Patrick Pelissier
83f8eadce9
Fix name of variable without a macro (shadow variable)
2018-03-10 18:09:23 +01:00
Patrick Pelissier
f8e75761ef
Change SNAPSHOT_SRSW to SNAPSHOT_SPSC to be uniform with queue definition
...
(Replace Reader / Writer term by Consummer / Producer term)
2018-03-10 17:46:02 +01:00
Patrick Pelissier
cbb881df86
Fix overwrite branch which has a data race on number.
...
Rewrite it to be simpler & faster and without data race.
2018-03-10 10:13:54 +01:00
Patrick Pelissier
103e5304e8
Use of 2 mutex for buffer:
...
* one for the enqueue
* one for the dequeue
The number of items in the buffer is the only variable which can be accessed
by both at the same time.
This improve the performance of the communication and reduce the possibility
of priority inversion between the producer and the consummer thread.
2018-03-09 21:07:21 +01:00
Patrick Pelissier
e152ff0377
Add TODO
2018-03-09 21:07:07 +01:00
Patrick Pelissier
65f39ab22e
Optmize the buffer queue:
...
don't broadcast the condition variable if we know that
no thread is waiting for it.
Improve bench test from 700ms to 450ms
2018-03-09 19:15:47 +01:00
Patrick Pelissier
df51c6dc64
Add m_cond_broad_cast
2018-03-09 19:15:31 +01:00
Patrick Pelissier
b7c86ee01e
Fix detection
...
of GCC
2018-03-06 21:58:41 +01:00
Patrick Pelissier
992bb6a73a
Add bench of hash computation library (XXHASH)
2018-03-04 01:16:37 +01:00
Patrick Pelissier
557dd3e0d5
Fix spelling
2018-03-03 18:32:08 +01:00
Patrick Pelissier
c8d5b5440f
Add documentation for LIST_DUAL_PUSH_DEF
2018-03-03 18:30:01 +01:00
Patrick Pelissier
0900e72070
Add TODO
2018-02-28 21:44:52 +01:00
Patrick Pelissier
dcdc64f974
Update graph
2018-02-28 21:34:47 +01:00
Patrick Pelissier
58898adbcd
Add target to Generate depend.png
2018-02-28 21:34:31 +01:00
Patrick Pelissier
ff2050466b
Fix spelling
2018-02-28 21:17:16 +01:00
Patrick Pelissier
dd209c05b9
Use new kind of dictionary for bench
2018-02-28 21:07:53 +01:00
Patrick Pelissier
12a4806b85
Add documentation
2018-02-28 21:07:43 +01:00
Patrick Pelissier
82575962ed
Add expansion of the new kind of dictionary
2018-02-28 21:07:29 +01:00
Patrick Pelissier
1db2813aa3
Add dictionary with store computed hash, avoiding the need
...
of recomputation in some cases.
2018-02-28 21:06:58 +01:00
Patrick Pelissier
c71613dcfe
Don't display warnings about unused variables in release mode.
2018-02-28 21:05:15 +01:00
Patrick Pelissier
762d8a8e74
Update assertion
2018-02-27 22:43:17 +01:00
Patrick Pelissier
b7966f6b61
Update assertions
2018-02-27 22:41:20 +01:00
Patrick Pelissier
b1443533e0
Update comment
2018-02-27 22:41:11 +01:00
Patrick Pelissier
6f12ac1d19
Update comments & add new assertions
2018-02-27 22:32:03 +01:00
Patrick Pelissier
0295eea145
Rewrite the prototype of intrusive shared object
...
to be more clear when there is a shared pointer
and when there is not.
2018-02-26 21:38:33 +01:00
Patrick Pelissier
171402f99f
Fix bug
2018-02-25 11:52:21 +01:00
Patrick Pelissier
3d57d35536
Update test
2018-02-25 11:52:14 +01:00
Patrick Pelissier
bacf2b9eec
Add more test for dual push list
2018-02-25 11:43:31 +01:00
Patrick Pelissier
fd885bdb19
Rewrite a little bit singly linked list
...
to be up-to-date with standards of other containers.
2018-02-25 11:24:44 +01:00
Patrick Pelissier
a497c07b0b
Update test
2018-02-24 21:41:30 +01:00
Patrick Pelissier
ffd5f23406
Update due to new generic type
2018-02-24 21:41:16 +01:00
Patrick Pelissier
97e3cc35c2
Add more tests.
2018-02-24 20:26:32 +01:00
Patrick Pelissier
44d8363292
Fix issue with assertion
2018-02-24 20:26:19 +01:00
Patrick Pelissier
e540a95ad0
Fix spelling
2018-02-24 15:28:07 +01:00
Patrick Pelissier
db63b0d515
Fix code generation analyzis for list
...
Add dual push list
2018-02-24 15:21:23 +01:00
Patrick Pelissier
7637c2fb58
Update test
2018-02-24 15:16:11 +01:00
Patrick Pelissier
5b40b43435
Add some tests.
2018-02-24 15:13:34 +01:00
Patrick Pelissier
6ec277ec99
Add dual push singly linked list
2018-02-24 15:07:58 +01:00
Patrick Pelissier
1befa63c9b
Remove duplicate code.
2018-02-24 15:04:44 +01:00
Patrick Pelissier
3d3e052f23
Add reference to wikipedia data structure in the documentation
2018-02-24 09:03:47 +01:00
Patrick Pelissier
aea816dcaf
Fix data race
2018-02-24 07:44:16 +01:00
Patrick Pelissier
d258fb3eff
Fix memory leak
2018-02-23 23:13:10 +01:00
Patrick Pelissier
1463d83b9f
Fix memory leak in test
2018-02-23 23:10:26 +01:00
Patrick Pelissier
10c947d9d4
Support of monocore cpu
2018-02-23 22:21:20 +01:00
Patrick Pelissier
2da51ea6e9
Remove constraint on size > 0
...
as workers can create a queue of size 0
in mono core system.
2018-02-23 22:12:17 +01:00
Patrick Pelissier
d930c0a4ad
Fix memory leak in test suite
2018-02-23 22:00:15 +01:00
Patrick Pelissier
d0e7cc41bf
Add more assertions
2018-02-23 20:40:44 +01:00
Patrick Pelissier
8c610adee5
Update README
2018-02-23 20:39:37 +01:00
Patrick Pelissier
a1e791d1e9
Add queue SPSC
2018-02-23 20:38:51 +01:00
Patrick Pelissier
264249fb8b
Improve queue MPMC contract checking
2018-02-23 20:13:04 +01:00
Patrick Pelissier
e2b00d7c73
Split function definitions into separate macro
2018-02-21 22:16:55 +01:00
Patrick Pelissier
ff3964e2eb
Factorization of the mympz type
2018-02-21 22:06:45 +01:00
Patrick Pelissier
2ed95bfe16
Fix generic issue for deque
...
(was totaly broken before).
2018-02-21 22:05:51 +01:00
Patrick Pelissier
958936319f
Activate test
2018-02-21 21:51:54 +01:00
Patrick Pelissier
39fca33958
Reuse memory node in case of pop from the opposite side
...
if there is at least one free node in the opposite side.
This reduce the memory consumption ***a lot*** for FIFO queues
usage.
2018-02-21 21:50:40 +01:00
Patrick Pelissier
eb4cbe863e
Add some TODO
2018-02-20 23:10:47 +01:00
Patrick Pelissier
d146ea6a63
Add new test (disabled)
2018-02-20 22:57:58 +01:00
Patrick Pelissier
f4b2ba8322
Fix coverage
2018-02-20 22:12:09 +01:00
Patrick Pelissier
acb1aa8104
Add new restriction
2018-02-20 22:12:03 +01:00
Patrick Pelissier
03f7a75e54
Add more check
2018-02-20 22:01:26 +01:00
Patrick Pelissier
2dc71cc5fd
Fix bug
2018-02-20 22:01:19 +01:00
Patrick Pelissier
4a92419bbe
Add tests
2018-02-20 21:55:16 +01:00
Patrick Pelissier
92699501f6
Add more assertions
2018-02-19 23:41:29 +01:00
Patrick Pelissier
b49ed97be0
Update comment
2018-02-19 23:38:22 +01:00
Patrick Pelissier
aec661edea
Add shared ressource container
2018-02-19 23:37:10 +01:00
Patrick Pelissier
675fa2cf85
Add note to document
2018-02-19 23:36:36 +01:00
Patrick Pelissier
b442d72ef7
Add forgotten free + check for memory allocation
2018-02-19 23:14:16 +01:00
Patrick Pelissier
2ff197c670
Add function _size
2018-02-19 23:14:09 +01:00
Patrick Pelissier
5c9a610823
Fix data race issue
2018-02-19 22:49:05 +01:00
Patrick Pelissier
8d871256ed
Reformat
2018-02-19 22:48:46 +01:00
Patrick Pelissier
3d59fb0d9a
Fix a deadlock due to an ABA like bug.
2018-02-19 19:00:24 +01:00
Patrick Pelissier
057d783158
Add comment
2018-02-18 19:19:41 +01:00
Patrick Pelissier
ffb8a2a00a
Improve test suite
...
(Test fails randomly)
2018-02-18 19:18:40 +01:00
Patrick Pelissier
b32b93340c
Improve tests & fix bugs.
...
Still one bug remain.
2018-02-18 17:01:41 +01:00
Patrick Pelissier
35a3f7c02a
Improve test
2018-02-18 09:55:31 +01:00
Patrick Pelissier
6de4c4092f
Add MRMW snapshot
2018-02-18 08:27:10 +01:00
Patrick Pelissier
c5de5e07d8
Update comment
2018-02-18 08:00:14 +01:00
Patrick Pelissier
0176071011
Add proper test for MRSW snapshot
2018-02-18 07:58:48 +01:00
Patrick Pelissier
3f2a641cdf
Add contract
2018-02-17 20:25:40 +01:00
Patrick Pelissier
20be2d8850
Externalized currentWrite
2018-02-17 20:21:53 +01:00
Patrick Pelissier
b37cd7dba7
Rewrite / simplify code
2018-02-17 20:08:00 +01:00
Patrick Pelissier
e274a49ffd
Fix bug as we can't fail spuriously here.
2018-02-17 19:28:09 +01:00
Patrick Pelissier
cba37abfae
Reword
2018-02-17 19:24:16 +01:00
Patrick Pelissier
be198a7040
Add MRSW snapshots.
2018-02-17 19:19:51 +01:00
Patrick Pelissier
29d181c113
Add macro M_CTYPE_FROM_FIELD like M_TYPE_FROM_FIELD
...
but for const pointer.
2018-02-17 19:19:09 +01:00
Patrick Pelissier
3d5914f389
Fix issue in test
2018-02-17 18:50:03 +01:00
Patrick Pelissier
c78c75d89a
Add more test
2018-02-17 18:48:52 +01:00
Patrick Pelissier
a4753be5ae
Add test for int snapshot MRSW
2018-02-17 18:20:25 +01:00
Patrick Pelissier
3bda360196
Add first step of MRSW snapshot
2018-02-17 17:35:18 +01:00
Patrick Pelissier
2b4de98aee
Update comment
2018-02-17 17:35:07 +01:00
Patrick Pelissier
bbd887fd2c
Update comments
2018-02-17 14:21:54 +01:00
Patrick Pelissier
84a5add410
Recursive clean
2018-02-17 14:03:24 +01:00
Patrick Pelissier
c999563ecd
Fix spelling
2018-02-17 12:02:54 +01:00
Patrick Pelissier
80c7cdbdd2
Rename snapshot_def as snapshot_srsw_def
2018-02-17 12:00:45 +01:00
Patrick Pelissier
9c7b453732
Update doc
2018-02-17 11:56:04 +01:00
Patrick Pelissier
45982c4b01
Improve test suite
2018-02-17 11:06:28 +01:00
Patrick Pelissier
438704be37
Rewrite & fix int queue generator.
...
Limitation to 4096 max entries.
A classic queue may be way faster (too much sharing for thread) but will use much more memory...
To bench
2018-02-16 21:22:46 +01:00
Patrick Pelissier
1753ddc4d6
Improve bitset_at version by avoiding a redundant variable shift.
2018-02-16 20:42:42 +01:00
Patrick Pelissier
96178194b3
Update size to long long
2018-02-16 18:00:08 +01:00
Patrick Pelissier
57fb2192be
Add libdict
2018-02-16 07:40:20 +01:00
Patrick Pelissier
546a78be33
Fix spelling
2018-02-15 22:48:25 +01:00
Patrick Pelissier
29acb67566
Update example of snapshot to a better one.
2018-02-15 22:43:43 +01:00
Patrick Pelissier
0afad9a825
Update comments.
2018-02-15 22:34:36 +01:00
Patrick Pelissier
c99b3de902
Fix double minus which transformed into + !
2018-02-15 22:31:50 +01:00
Patrick Pelissier
e8cf1d6b9a
Update doc
2018-02-14 21:12:38 +01:00
Patrick Pelissier
a9aa1e13ee
Add relaxed shared pointer (thread unsafe with non-atomic counter).
2018-02-10 17:31:12 +01:00
Patrick Pelissier
f5857c8aab
Create an oplist for the counter and use it.
...
It will allow to use other oplist.
2018-02-10 17:22:51 +01:00
Patrick Pelissier
67856a98af
Avoid false sharing for snapshot by aligning properly the
...
data of the triple buffer to a cache boundary.
2018-02-10 08:29:34 +01:00
Patrick Pelissier
c71de15cb0
Update comment
2018-02-10 08:22:37 +01:00
Patrick Pelissier
73f15c1980
Update comment
2018-02-10 08:22:12 +01:00
Patrick Pelissier
646df4f34e
Move aligned cache line constant to commun header.
2018-02-10 08:20:37 +01:00
Patrick Pelissier
8489d0df97
Clarify algorithm
2018-02-09 20:56:28 +01:00
Patrick Pelissier
86dfad860e
Improve coverage
2018-02-05 22:28:35 +01:00
Patrick Pelissier
c97a68029b
Improve coverage
2018-02-05 22:18:56 +01:00
Patrick Pelissier
08a4dfbe4c
Improve coverage
2018-02-05 22:14:14 +01:00
Patrick Pelissier
adcacf3cf9
Improve coverage
2018-02-05 22:04:50 +01:00
Patrick Pelissier
7950b69136
Improve coverage
2018-02-05 21:47:22 +01:00
Patrick Pelissier
5d75416948
Improve coverage
2018-02-05 21:41:28 +01:00
Patrick Pelissier
2e96a00fde
Improve coverage.
2018-02-05 21:25:11 +01:00
Patrick Pelissier
1f08bcf0f8
Add clear callback for workers.
2018-01-29 22:08:21 +01:00
Patrick Pelissier
a3e2e75021
Use new macro.
2018-01-29 21:59:57 +01:00
Patrick Pelissier
603bdd2941
Add new macro M_DEFAULT_ARGS
2018-01-29 21:59:39 +01:00
Patrick Pelissier
6fb7a4f24b
Update doc
2018-01-29 21:21:54 +01:00
Patrick Pelissier
0c2d290835
Add missing copyright notice.
2018-01-29 20:29:54 +01:00
Patrick Pelissier
210e05f7fc
Update copyright to 2018
2018-01-29 20:28:30 +01:00
Patrick Pelissier
f4b443c33e
Finish documenting the string API.
2018-01-27 22:28:48 +01:00
Patrick Pelissier
52ffa09f73
Fix issue
2018-01-24 22:30:12 +01:00
Patrick Pelissier
52bb23bb6f
Update doc
2018-01-24 22:28:52 +01:00
Patrick Pelissier
2089af8fd3
Fix broken code due to previous commits.
2018-01-24 22:26:46 +01:00
Patrick Pelissier
778bc4072b
Rename parameter
2018-01-24 22:23:56 +01:00
Patrick Pelissier
2b2ebecae7
Improve comments.
2018-01-23 23:03:02 +01:00
Patrick Pelissier
69cbd61915
Document string API.
2018-01-23 22:53:37 +01:00
Patrick Pelissier
4d41774345
Rename STRING_CONTRACT into internal macro STRINGI_CONTRACT
2018-01-23 21:45:45 +01:00
Patrick Pelissier
ff6772aaa7
Ignore depend files
2018-01-13 13:55:36 +01:00
Patrick Pelissier
bbe9d43532
Move chapter ERRORS below
2018-01-13 00:14:52 +01:00
Patrick Pelissier
6549bea3e0
Fix issue for BSD
2018-01-12 20:11:11 +01:00
Patrick Pelissier
9d727589aa
Fix data race reported by thread sanitinizer
2018-01-12 18:58:27 +01:00
Patrick Pelissier
aede0547d3
Optimization: replace a division into a conditional move.
2018-01-12 18:56:01 +01:00
Patrick Pelissier
55332d61fd
Fix data race for buffer in POP_RELEASE mode.
2018-01-12 18:52:34 +01:00
Patrick Pelissier
83eeb5d6d0
Make the code more robust
2018-01-12 18:48:38 +01:00
Patrick Pelissier
5eaf796aab
Remove warnings
2018-01-12 18:46:26 +01:00
Patrick Pelissier
d46c40d3fa
Don't compute coverage of the float expansion.
2018-01-09 20:05:05 +01:00
Patrick Pelissier
2461afa573
Improve coverage suite.
2018-01-09 20:03:05 +01:00
Patrick Pelissier
6acacf5efe
Fix issue for hash computation.
2018-01-09 20:02:53 +01:00
Patrick Pelissier
075a74ea0c
Don't expand contract for coverage.
2018-01-09 18:52:18 +01:00
Patrick Pelissier
f9ddc43349
Add bench k-nucleotide as per
...
http://benchmarksgame.alioth.debian.org/u64q/knucleotide.html
2018-01-09 18:44:11 +01:00
Patrick Pelissier
1c9a232a9d
Add 'worker_flush' function.
...
Factorization of the exec function.
2018-01-07 22:15:58 +01:00
Patrick Pelissier
9c727a8d8c
Update doc
2018-01-07 21:57:23 +01:00
Patrick Pelissier
7c241c65de
Add new lib for smart pointers in Gnu C
2018-01-07 00:09:38 +01:00
Patrick Pelissier
4f3823bfeb
Add new function _blocking allowing to use
...
runtime behavior of the blocking characteristic of the
buffer regardless on how it has been configured.
2018-01-07 00:07:27 +01:00
Patrick Pelissier
3f7b16c736
If the size is constant (!= 0) when defining the buffer
...
then the array is embedded within the structure rather
than allocated when initialization of the structure
occurs.
2018-01-06 22:57:14 +01:00
Patrick Pelissier
362fbb39d4
Update comments
2018-01-06 21:58:30 +01:00
Patrick Pelissier
38fe24085f
Improve comments.
2018-01-05 23:26:27 +01:00
Patrick Pelissier
af3d5cb273
Proper semantic
2018-01-05 20:46:28 +01:00
Patrick Pelissier
9200b742c5
Add iterators for priority queue.
2018-01-04 22:09:20 +01:00
Patrick Pelissier
f39c8ebaba
Fix comment
2018-01-04 22:08:08 +01:00
Patrick Pelissier
bbb1831c5f
Add missing exit(0)
2017-12-31 11:42:56 +01:00
Patrick Pelissier
ecae3d0e1e
Update doc
2017-12-31 02:10:18 +01:00