Patrick Pelissier
46759b5f2c
Rename _push_raw method to _push_back_raw method (Cleaner semantic)
2025-07-26 10:35:48 +02:00
Patrick Pelissier
8c8a1e2822
Fix bug reported by florommel on dict's reserve
2025-07-18 20:11:13 +02:00
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
d548117538
Make M*LIB stricter for INIT_MOVE operator:
...
* either the default INIT_MOVE operator works ('=')
* either an INIT_MOVE method is defined
* or it is disabled.
As a consequence, fix usage of testobj_t and mpz_t in the repository
The emulation layer of INIT_MOVE using INIT_SET+CLEAR is removed:
it wasn't working correctly with the local memory context
(INIT_MOVE doesn't need any local memory context to work,
whereas INIT_SET/CLEAR does)
Remove macro M_DO_INIT_MOVE as it is now useless and uses M_CALL_INIT_MOVE.
The INIT_MOVE default method no longer sets the old 'src' to '0':
it was useless (it doesn't catch any error) and complicates compiler parsing.
Fix POD & A1 & CSTR & classic oplists definition (missing INIT_MOVE operators).
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
1cf7c4fa4d
Port to new memory model: M_MEMORY_FULL cannot return anymore
2025-05-07 21:02:23 +02:00
Patrick Pelissier
e959c001aa
Port to new memory model
2025-05-07 21:02:23 +02:00
Patrick Pelissier
50e8d1f469
Fix old size parameter for memory allocation
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
b60553165d
Fix usage of M_USE_SMALL_NAME (Reported by Brian Sipos)
2025-02-03 22:33:07 +01:00
Patrick Pelissier
4ab2615a1c
Clarify constraint on _splice
2024-12-25 20:48:34 +01:00
Patrick Pelissier
4ba55dc3ca
Rename new USE directive to be uniform with string one.
2024-06-08 00:08:27 +02:00
Patrick Pelissier
2c0db40158
Simplify logic for set_at of both dict,
...
(after analyzing which condition is likely)
which should help code size & performance
a little bit.
2024-06-01 23:49:08 +02:00
Patrick Pelissier
f3ebc8c7eb
Update comments
2024-06-01 10:16:47 +02:00
Patrick Pelissier
5589105f5c
Update comments
2024-05-27 00:34:24 +02:00
Patrick Pelissier
8cbd27e629
Fix overflow
2024-05-12 22:59:58 +02:00
Patrick Pelissier
ea5c993ff0
Add bulk_update for DICT OA
2024-05-09 19:28:46 +02:00
Patrick Pelissier
22d62f94bb
Add WIP bulk functions for DICT/OA
2024-05-09 14:10:22 +02:00
Patrick Pelissier
8fd79f07d5
Mark the functions to be optimized
...
those that shall not be.
2024-05-07 10:05:49 +02:00
Patrick Pelissier
4f9db5eba6
Remove unused header
2024-05-07 08:20:59 +02:00
Patrick Pelissier
db5990de03
DICT:
...
* Reduce memory allocation usage
2024-05-05 19:26:07 +02:00
Patrick Pelissier
d4383ef854
DICT:
...
* Reduce memory allocation usage
* Add more assertions
2024-05-05 11:32:28 +02:00
Patrick Pelissier
d10c8c1b41
Fix comment
2024-05-05 10:18:26 +02:00
Patrick Pelissier
ec11230b5e
Fix shrink_to_fit for dict
2024-05-03 19:16:51 +02:00
Patrick Pelissier
0b6733fdcb
Ass _reserve method for standard dict
2024-05-03 16:40:35 +02:00
Patrick Pelissier
82cbe9e282
Reformat
2024-05-02 17:12:48 +02:00
Patrick Pelissier
93429c8bf3
Simplify GET OA_DICT code
2024-05-02 16:25:03 +02:00
Patrick Pelissier
150bef4d4d
Add more assertion and control for new dict.
2024-05-02 14:05:00 +02:00
Patrick Pelissier
5513a9df1b
Fix issue in new dict for case of erase all / reset scenario
2024-05-02 01:15:15 +02:00
Patrick Pelissier
6fd2610eec
Fix valgrind warning
2024-05-01 23:39:49 +02:00
Patrick Pelissier
11bf5e4691
Fix C++ compatibility and compound literals...
2024-05-01 23:08:29 +02:00
Patrick Pelissier
04d4bf6866
Complete new version of normal dictionary :
...
* limits: max elements is 0.75*2^32
* much faster
* use less memory
2024-05-01 22:39:36 +02:00
Patrick Pelissier
d22e75d7a0
Make I/O functions exception aware.
...
Simplify their logic
Fix other bugs.
2024-03-08 00:15:08 +01: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
422f3c2c04
Add GENTYPE operator to all oplists
2023-12-30 16:23:02 +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
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
a27b0b4014
Fix wrong parsing of malformed dict.
2023-04-10 23:08:51 +02:00
Patrick Pelissier
28faf815d7
Improve robustness against broken I/O file
2023-04-03 14:09:34 +02:00
Patrick Pelissier
669a3297c7
Fix issue in ispace usage and allow more space in formating (to be more uniform. The allowed spaces before were in strange place only)
2023-04-03 13:18:10 +02:00
Patrick Pelissier
7534aa0d61
Add internal M_UNLIKELY_NOMEM to help coverage computation
2023-04-03 00:05:29 +02:00
Patrick Pelissier
f69cec6820
Fix warning with clang+const char * type
2023-03-24 21:53:23 +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