Patrick Pelissier
0de3c622e3
Port algo to new memory format
2025-05-07 21:02:24 +02:00
Patrick Pelissier
93a1be616d
Rename parameter pool to context
2025-05-07 21:02:24 +02:00
Patrick Pelissier
692c0487af
Update oplist for new memory model
2025-05-07 21:02:24 +02:00
Patrick Pelissier
256ff916a2
Port serial to new memory format
2025-05-07 21:02:24 +02:00
Patrick Pelissier
d08aeb32fe
Port to new memory model
2025-05-07 21:02:23 +02:00
Patrick Pelissier
6d621703eb
Copyright go to 2025 year
2025-03-01 11:03:38 +01:00
Patrick Pelissier
52b58c5a51
Happy new year 2024
2024-01-19 21:37:47 +01:00
Patrick Pelissier
422f3c2c04
Add GENTYPE operator to all oplists
2023-12-30 16:23:02 +01:00
Patrick Pelissier
9dc582c6bc
Add emplace set functions for tuple
2023-11-25 13:30:08 +01:00
Patrick Pelissier
07dce84e51
Tuple init: handle case of exception
...
during construction of tuple
2023-10-14 20:15:14 +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
302c5eb300
Remove export passthrough of NEW/DEL/REALLOC/FREE interface
...
from the container oplist.
It has no real practical purpose.
NEW/DEL/REALLOC/FREE shall be a property of the container
to be defined, and not a property for an already defined container.
2023-04-29 10:50:04 +02:00
Patrick Pelissier
219c62ff5d
Provide a way to alter the standard naming convention for the functions
...
Close #72
2023-04-22 09:33:08 +02:00
Patrick Pelissier
c35aa9c891
Replace the M_ASSERT(0) by M_ASSUME(0) since they are not reachable (in order to inform the compiler of this fact)
2023-03-05 00:50:40 +01:00
Patrick Pelissier
2f76652f2b
Maintenance
2023-03-03 22:50:14 +01:00
Patrick Pelissier
a2ae209992
Happy new year
2023-01-02 12:57:41 +01:00
Patrick Pelissier
abffe201e5
Change the suffix of the functions dealing with C-String to _cstr
...
instead of _str.
See #99 for details.
2022-07-30 12:00:55 +02:00
Patrick Pelissier
d04270ae3f
Proper use of API transformation for CMP operator in tuples
2022-06-13 23:21:06 +02:00
Patrick Pelissier
47e32ab2b3
Add support for EMPLACE_TYPE in TUPLE generations.
...
As a consequence, the oplist arguments for TUPLE_OPLIST
are much more rigorous. It shall really be the real oplists
of the types used to create the tuple, otherwise a compilation
error may be generated.
2022-06-04 23:41:18 +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
e1abf0528c
Rename M_DEFAULT_OPLIST in M_BASIC_OPLIST (cleaner name)
2022-04-08 22:54:29 +02:00
Patrick Pelissier
b8cd679679
Move generating macro into the m_ namespace and create a wrapper using historical names for compatibility with existing code
2022-03-24 20:46:49 +01:00
Patrick Pelissier
5e57338928
Rename string_ into m_string_ in header files (Test files still test classic API)
2022-03-20 18:30:32 +01:00
Patrick Pelissier
19b01b404d
Migrate to 2022
2022-03-12 20:25:45 +01:00
Patrick Pelissier
1a1339da6b
Remove deprecated features
2021-11-20 13:05:50 +01:00
Patrick Pelissier
6b064870f5
Rename CLEAN operator in RESET operator
2021-10-30 23:26:27 +02:00
Patrick Pelissier
510cd062ba
Rename DICT, TUPLE & VARIANT _clean in _reset to avoid confusing _clean & _clear functions. See #97
2021-10-28 17:51:17 +02:00
Patrick Pelissier
3e36363d28
Fix format
2021-10-09 10:08:13 +02:00
Patrick Pelissier
1e00a102e8
TUPLE: Defined HASH/CMP/EQUAL methods if at least ONE methods is defined in the fields. Fields that don't have or have disabled method are supposed to be secondary fields that are not pertinent for comparing the objects.
2021-09-23 23:03:30 +02:00
Patrick Pelissier
353daecbd1
Comment new code.
2021-07-01 22:12:15 +02:00
Patrick Pelissier
57441b2fc1
Add first draft of recursive
...
INIT_WITH macro for tuples.
2021-07-01 22:12:15 +02:00
Patrick Pelissier
b225600238
Add internal functions for tuple
...
that are needed for future INIT_WITH support.
2021-07-01 22:12:15 +02:00
Patrick Pelissier
a950e15625
Adding method for NAME operator for basic containers
2021-06-12 11:11:30 +02:00
Patrick Pelissier
c4d339cb62
Rename internal interface.
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
07eb5697ab
Remove limitation of M_AS_STR to be called within a M_APPLY
2021-02-06 22:22:50 +01:00
Patrick Pelissier
25fe26deaa
Happy new year
2021-01-13 20:18:01 +01:00
Patrick Pelissier
eabc867c2a
Rename used namespace for C++ to m_lib
2021-01-10 08:48:46 +01:00
Patrick Pelissier
26eb882a30
Rename tuple function :
...
* _init_set2 in _init_emplace
* _set2 in _emplace
due to better & clearer naming.
(API break)
2020-12-05 12:29:20 +01:00
Patrick Pelissier
a29682ca29
Create M_ASSERT macro to encapsulate assert within M*LIB
...
The goal is to enable the user to override this macro if needed so that it can enable or disable the M*LIB witout impacting its own assertions.
2020-10-29 22:46:17 +01:00
Patrick Pelissier
0818d0ac7c
Fix macro formatting.
2020-10-23 21:46:34 +02:00
Patrick Pelissier
54d4b80368
Reformat macro to 80 characters
2020-10-21 23:23:40 +02:00
Patrick Pelissier
5b89196cd7
Add macro TUPLE_DEF2_AS
2020-10-03 14:07:14 +02:00
Patrick Pelissier
feb8b30048
Factorization of M_C(name, _t)
2020-10-03 14:07:14 +02:00
Patrick Pelissier
b3a1a75f6f
Rename internal types:
...
a suffix ending with _ct means confidential type
ans is reserved for M*LIB internal usage.
OPLIST doesn't use the external types
but rather the internal types.
It enables to be independent of the real names
of the external types.
Such external names are planned to be fully customizable
(i.e. the user may define a name that suits its coding style)
2020-10-03 14:07:14 +02:00
Patrick Pelissier
f4cd8eaff9
Rename internal macro to TUPLEI_
2020-07-25 18:01:34 +02:00
Patrick Pelissier
2cd5258f89
Add comments
...
Replace TAB by SPACE.
2020-07-25 17:54:01 +02:00
Patrick Pelissier
8a36b5ff15
Workaround to avoid CLANG unused function warnings
2020-07-09 22:14:00 +02:00
Patrick Pelissier
ef74f8eb55
Fix other warnings about conversion but in C++
2020-06-14 01:10:37 +02:00