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
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