Patrick Pelissier
4a96845fac
Improve error messages by the compiler
...
if the number of arguments doesn't match what is expected.
2023-11-01 11:14:27 +01:00
Patrick Pelissier
b742881ebc
WIP interface
2023-11-01 11:14:27 +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