Patrick Pelissier
3721129da1
Update prototype of memory functions
...
to always get the memory context parameter
(even if it is not needed) to provide a cleaner
and simpler user interface
(instead of requesting the user to use directly m_context).
2025-05-07 21:02:24 +02:00
Patrick Pelissier
a1a5ae749d
Fix oplist of bitset
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
3a39ce5a4a
Reformat
2025-05-07 21:02:24 +02:00
Patrick Pelissier
0d0747dea9
Update oplists
2025-05-07 21:02:24 +02:00
Patrick Pelissier
1cf7c4fa4d
Port to new memory model: M_MEMORY_FULL cannot return anymore
2025-05-07 21:02:23 +02:00
Patrick Pelissier
bf617ab6ab
Port to new memory interface (WIP)
2025-05-07 21:02:23 +02:00
Patrick Pelissier
1e196fe22a
Port to new spec M_MEMORY_FULL
2025-05-07 21:02:23 +02:00
Patrick Pelissier
1f2584ccea
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
8109c094db
Update comments
2024-04-29 22:43:46 +02:00
Patrick Pelissier
26cec1591a
* Remove some obsolete macros
...
* Fix spelling
* A little bit of refactoring
2024-01-19 21:37:47 +01:00
Patrick Pelissier
52b58c5a51
Happy new year 2024
2024-01-19 21:37:47 +01: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
7534aa0d61
Add internal M_UNLIKELY_NOMEM to help coverage computation
2023-04-03 00:05:29 +02:00
Patrick Pelissier
93b69d0f8b
Fix call of memcpy with size=0 and src=NULL
2023-02-25 12:17:18 +01:00
Patrick Pelissier
a2ae209992
Happy new year
2023-01-02 12:57:41 +01:00
Patrick Pelissier
93229c61f2
Update comments
2022-10-12 23:26:33 +02:00
Patrick Pelissier
0b853c6d52
Fix bug on bitset_resize function in case of increase of size:
...
the first limb may not be cleared properly in some cases.
(Reported by David M. Lary)
2022-09-04 19:27:38 +02:00
Patrick Pelissier
cc7fc66899
Add bitset_ctz function
2022-08-29 19:31:19 +02: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
fc26e472ab
Move bitset functions to M* namespace
2022-03-23 22:39:18 +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
e4955e6851
Move internal types to the internal namespace
2022-03-19 16:43:55 +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
e10c3586a3
Rename BITSET & CONCURRENT _clean in _reset to avoid confusing _clean & _clear functions. See #97
2021-10-28 18:13:00 +02:00
Patrick Pelissier
8ce59c2e9d
Maintenance:
...
* update comments
* simplify code.
2021-08-07 00:34:18 +02:00
Patrick Pelissier
0edb6165b5
Fix buffer overflow if size=64*N
2021-03-13 23:39:26 +01:00
Patrick Pelissier
7b2e242c94
Add function bitset_popcount
2021-02-22 12:06:46 +01:00
Patrick Pelissier
a82f2ba065
* Fix an issue in _pop_at. * Optimize code by ensuring that the last limbs is always properly masked (simplify algorithm)
2021-02-22 11:31:49 +01:00
Patrick Pelissier
709168652a
Reformat and specify clz for bitset size = 0
2021-02-21 21:41:51 +01:00
Patrick Pelissier
517da1b999
Rename generated internal functions
...
to avoid "poluting" userspace naming.
2021-02-13 11:45:05 +01:00
Patrick Pelissier
25fe26deaa
Happy new year
2021-01-13 20:18:01 +01:00
Patrick Pelissier
1b4c608087
Rename operator TEST_EMPTY into EMPTY_P to be compliant with iterator operator
2021-01-07 22:13:10 +01:00
Patrick Pelissier
ad16b310e1
Fix overflow issue in bitset_last_p (see #81 )
2020-12-21 15:08:19 +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
201cc45fd8
Use of M_ASSERT_INDEX for bitset.
2020-10-23 21:37:44 +02:00
Patrick Pelissier
54d4b80368
Reformat macro to 80 characters
2020-10-21 23:23:40 +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
ab98577deb
Fix warning
2020-07-04 12:50:34 +02:00
Patrick Pelissier
f2a06ede62
Add mechanism to disable temporary compiler warnings in a sequence of code.
2020-07-01 11:47:55 +02:00
Patrick Pelissier
279b46b4e2
Fix -Wsign-conversion warnings.
2020-06-13 19:43:38 +02:00
Patrick Pelissier
294e45c7e1
Add comments
2020-05-31 00:15:46 +02:00
Patrick Pelissier
4f7b0b9455
Happy new year 2020
2020-01-04 15:41:06 +01:00
Patrick Pelissier
b9aebf875e
Update comments.
2019-03-31 22:36:52 +02:00
Patrick Pelissier
8b3a4a802c
Happy new year!
2019-01-02 18:12:07 +01:00
Patrick Pelissier
a8620c3aff
Export method _size for operator GET_SIZE
2018-11-25 18:00:47 +01:00
Patrick Pelissier
02d4bf0e09
Export method _empty_p for operator TEST_EMPTY for all containers.
2018-10-29 11:06:54 +01:00