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