Commit Graph
94 Commits
Author SHA1 Message Date
Patrick Pelissier 12709cc81b Add new default oplist : M_A1_OPLIST 2017-12-24 14:05:38 +01:00
Patrick Pelissier df3508bc0c Add M_POD_OPLIST for plain old data oplist 2017-12-01 23:11:30 +01:00
Patrick Pelissier 453b54856e Move CLZ from genint to core 2017-11-12 09:41:10 +01:00
Patrick Pelissier 7b3445ee99 Remove TODO 2017-10-25 22:08:26 +02:00
Patrick Pelissier 325d118260 Clean up 2017-10-25 22:01:30 +02:00
Patrick Pelissier ca9f36b66c Fix issue detected by undefined sanitizer:
shift of signed integers is undefined.
2017-09-27 23:09:52 +02:00
Patrick Pelissier a89db9ea56 Rewrite M_MAP like the others.
Increase limit to 52.
2017-09-22 22:16:28 +02:00
Patrick Pelissier 618c57d622 Fix naming convention 2017-09-22 22:11:47 +02:00
Patrick Pelissier 5b569e4811 Simplify M_MAP2 as it can reuse partially what has been done for M_MAP2B 2017-09-22 22:09:29 +02:00
Patrick Pelissier 021b70b83e Rewrite M_REDUCE2
(to be like the others)
2017-09-22 22:06:09 +02:00
Patrick Pelissier 89e02239de Add M_MAP_C & M_MAP2_C 2017-09-22 21:53:13 +02:00
Patrick Pelissier 9a1a0ebec3 Increase M_INC & M_DEC & M_NOTEQUAL & M_RET_ARGn to 52
Add M_SKIP, M_KEEP & M_MID macros.
Define M_RET_ARG

Rewrite M_SEQ using M_MID

Rewrite M_ADD & M_SUB avoiding recursivity (much faster).
2017-09-21 22:19:05 +02:00
Patrick Pelissier c79626225b Rewrite M_REDUCE to be much faster.
Rewrite M_SEQ to be much faster.
Change interface of M_SEQ as we can easily apply M_MAP / M_MAP2 to further apply macro.
2017-09-20 23:40:22 +02:00
Patrick Pelissier 793f834a56 Rewrite M_MAP2B using another trick which is MUCH faster for compiler.
Reduce compilation time of bench-mlib from 5s to 1s!
2017-09-18 23:03:42 +02:00
Patrick Pelissier 7e19d1863c Add note 2017-09-16 19:01:06 +02:00
Patrick Pelissier 0b44a55b6a Replace method EXPECTED_SIZE by INC_ALLOC so that all the way of increasing
the size in case of reallocation can be configured and not only the minimum
size.
2017-09-16 18:46:22 +02:00
Patrick Pelissier 2e564088b0 Simplify the inclusion of headers. 2017-09-16 10:14:45 +02:00
Patrick Pelissier 1930bdeac1 _DEF macros checks if a global oplist is register if there is no one
given in the macro call. If it founds one, it will be it instead
of M_DEFAULT_OPLIST.
2017-09-16 08:31:22 +02:00
Patrick Pelissier 977e857ae9 Remove SAFE_C 2017-09-13 23:50:29 +02:00
Patrick Pelissier 914661602c Increase compilation time (from 12s to 4.5s) 2017-09-10 21:28:01 +02:00
Patrick Pelissier d7c4ca1de5 Add support for global oplist.
Global oplists are global macro defined as M_OPL_##type

Add support of global oplist for macro M_EACH & M_LET.
Partial fix #9
2017-09-10 10:04:39 +02:00
Patrick Pelissier 4d9405d564 Improve M_OPLIST_P computation. 2017-09-09 23:36:01 +02:00
Patrick Pelissier 18ae085701 Expand DO_INIT_MOVE to use MOVE_DEFAULT if the INIT_MOVE method
was not disabled.
2017-09-06 22:52:57 +02:00
Patrick Pelissier df1a9e9c88 Add M_TEST_DISABLED_METHOD_P 2017-09-06 21:56:45 +02:00
Patrick Pelissier 0c03d42b98 Add 64 bits variant of core_hash (nearly twice faster). 2017-08-23 08:22:59 +02:00
Patrick Pelissier d97741b6a9 Update to use FNVHASH for internal hash calculation for object.
(Not for memory layout).
2017-08-17 20:45:46 +02:00
Patrick Pelissier 60c7388bd6 Fix a hash function. 2017-08-17 20:35:16 +02:00
Patrick Pelissier ffc383884d Add macro M_HASH_FINAL 2017-08-17 20:22:01 +02:00
Patrick Pelissier e6db45b64e New helper macro for defining function with default value. 2017-08-16 08:16:35 +02:00
Patrick Pelissier 22add10011 Add new macro: M_IF_METHOD2 2017-08-14 20:34:35 +02:00
Patrick Pelissier 05a5a285de Add method IT_INSERT 2017-08-14 20:12:12 +02:00
Patrick Pelissier 879e6da1d3 Update TODO 2017-08-09 23:39:40 +02:00
Patrick Pelissier d71f5cbc4a Update TODO 2017-08-09 22:39:15 +02:00
Patrick Pelissier 9f55764009 Add new function to round to the next power of 2. 2017-07-15 23:27:29 +02:00
Patrick Pelissier f88f9f2ea9 In case of memory error, give a little bit more information. 2017-07-15 22:24:16 +02:00
Patrick Pelissier 8f2f5013aa Lisibility 2017-07-11 22:35:45 +02:00
Patrick Pelissier 273247a4bb Add ALIGN method 2017-07-11 10:21:59 +02:00
Patrick Pelissier 7441d422e1 Update TODO 2017-07-11 10:02:06 +02:00
Patrick Pelissier 75d8928da1 Remove TODO 2017-07-02 19:42:43 +02:00
Patrick Pelissier 8cfbe56945 Fix issue with M_PARENTHESIS_P
Add M_OPLIST_P
2017-06-04 23:43:05 +02:00
Patrick Pelissier eaa8277f10 Add macro M_CONST_CAST 2017-05-26 12:40:37 +02:00
Patrick Pelissier 66f9d726f4 Add IT_REMOVE operator 2017-05-22 19:25:09 +02:00
Patrick Pelissier b12701c381 Separate ALLOC & REALLOC macros
so that we can overload one, without the other.
2017-05-21 21:16:08 +02:00
Patrick Pelissier 85d72c3c75 Move macro into its proper section. 2017-05-12 23:55:46 +02:00
Patrick Pelissier 77cf72f8d1 Update comment. 2017-05-08 12:41:26 +02:00
Patrick Pelissier 32989ef17e Add M_DO_MOVE macro 2017-05-01 17:42:51 +02:00
Patrick Pelissier 27fd810259 Rename M_OPLIST_CAT into M_OPCAT, M_OPLIST_FLAT into M_OPFLAT
Add M_OPLIST_EXTEND
Use it instead of M_OPLIST_CAT.
2017-05-01 17:24:22 +02:00
Patrick Pelissier 8ce7db4033 Fix some issues in Open Addressing dict. 2017-04-24 09:49:34 +02:00
Patrick Pelissier fc3d3901ee Add OOR_OPLIST operator for dict / Open Addressing. 2017-04-24 09:01:43 +02:00
Patrick Pelissier d19e1a5b41 Add M_EMPTY_DEFAULT which is like M_NOTHING_DEFAULT except that it doesn't
evaluate its arguments.
2017-04-23 23:36:08 +02:00