Commit Graph
100 Commits
Author SHA1 Message Date
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