Commit Graph
644 Commits
Author SHA1 Message Date
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 ab75397e21 TCC now supports m-generic 2025-05-07 21:02:24 +02:00
Patrick Pelissier daadf693f7 Update doc 2025-05-07 21:02:24 +02:00
Patrick Pelissier 01f5228a36 Port to new memory model:
Communication thread buffer needs to use the global pool,
and not a local pool, since the allocation is done accross
several threads.
Therefore the non thread fixed queue & stack interfaces are moved into
a dedicated header (m-queue)
and remove support for non thread stack & queue into m-buffer
Remove also deprecated policy too.
2025-05-07 21:02:24 +02:00
Patrick Pelissier a7294abe0c Update documentation and error message 2025-05-07 21:02:24 +02:00
Patrick Pelissier b4c29d5423 Update spec 2025-05-07 21:02:23 +02:00
Patrick Pelissier 450d2c9000 Update spec of M_MEMORY_FULL 2025-05-07 21:02:23 +02:00
Patrick Pelissier 5b4c9cd618 Update spec of memory functions 2025-05-07 21:02:23 +02:00
Patrick Pelissier 73da9a4316 Update obsolete header section 2025-04-18 21:58:15 +02:00
Patrick Pelissier 6d621703eb Copyright go to 2025 year 2025-03-01 11:03:38 +01:00
Patrick Pelissier e1a4d359a2 Update doc 2025-02-02 10:50:41 +01:00
Patrick Pelissier 4ab2615a1c Clarify constraint on _splice 2024-12-25 20:48:34 +01:00
Patrick Pelissier 9136a4a972 Update 2024-12-08 19:34:15 +01:00
Patrick Pelissier 55dcf0e438 Fix example 2024-11-30 13:04:45 +01:00
Patrick Pelissier dd509f2b7e Update documentation of new shared pointer interface. 2024-11-30 10:25:15 +01:00
Patrick Pelissier 60280087c7 Fix default of FULL_P 2024-10-27 20:37:57 +01:00
Patrick Pelissier eeaf74d24f Add FULL_P operator
Add M_EMPLACE_LIST_TYPE_VAR_ALTER which doesn't put a comma before.
2024-10-26 16:56:54 +02:00
Patrick Pelissier edcf8ee37a Final update of the byte string 2024-10-05 11:40:23 +02:00
Patrick Pelissier 2995b119b7 Add precision 2024-10-05 10:21:19 +02:00
Patrick Pelissier 45b11fb49b Fix #129:
Support of incomplete type in m-shared.
2024-09-21 12:39:29 +02:00
Patrick Pelissier 82ea4341de Fix documentation (#128) 2024-08-19 22:02:56 +02:00
Patrick Pelissier 02828a0109 Fix interface of Intrusive List
(Reported by Brian Sipos):
* incorrect clear operator usage
* useless prototype of _insert, inconsistent with the policy of other functions
* syntax error in _insert
2024-07-11 21:41:14 +02:00
Patrick Pelissier 0f7d5bf366 Update doc 2024-06-15 09:51:51 +02:00
Patrick Pelissier 1277c75ea3 Update doc 2024-06-15 09:47:10 +02:00
Patrick Pelissier 47a51ee5c4 Update doc 2024-06-15 09:45:13 +02:00
Patrick Pelissier 2d4fc9dc97 Allow generation of EMPLACE_TYPE
for variant if all oplists defined a FIELD operator.
2024-06-01 10:16:39 +02:00
Patrick Pelissier 000dba1da5 Correct API documentation 2024-05-11 09:43:20 +02:00
Patrick Pelissier 567473869b Update documentation 2024-05-03 16:42:51 +02:00
Patrick Pelissier b0cc17ea86 Update documentation with newest dictionary properties 2024-05-01 22:56:14 +02:00
Patrick Pelissier 6cba7ad8ba Update 2024-04-06 19:12:35 +02:00
Patrick Pelissier 955c8bfb81 Adding new example of generic 2024-04-04 22:35:08 +02:00
Patrick Pelissier cfab3cf0cf Add m_mutex_trylock function 2024-03-26 22:41:04 +01:00
Patrick Pelissier a523a97a0e Update doc 2024-03-18 22:44:53 +01:00
Patrick Pelissier 6f75bb938b Update doc 2024-03-18 22:32:16 +01:00
Patrick Pelissier a22046bc2a Update doc 2024-03-15 14:40:47 +01:00
Patrick Pelissier fd6a8f1361 Update doc 2024-03-14 23:27:23 +01:00
DerSkythe db08e62f1a Fix incorrect word-wrap of defines 2024-02-08 15:31:52 +04:00
DerSkythe 3be653d55a Improve README.md formatting and clarifications
Corrections were made according PR #115
2024-02-08 11:48:40 +04:00
DerSkythe e351730ad0 Refine explanations and improve formatting in README.md
Several corrections and readability enhancements were applied to the README.md file. This includes fixing typos, changing the format of code examples, refining links to sections, and adjusting the indenting of API documentation listings for better readability. General explanations and instructions about the API usage and the constructor and destructor behavior were also improved.
2024-02-07 00:58:25 +04:00
Patrick Pelissier d7a232364f Update infrastructure to the fact that the bench directory has been deleted 2024-01-19 22:27:33 +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 127530abaa Fix format 2023-12-30 16:27:25 +01:00
Patrick Pelissier ed0f538fb7 Add documentation of generic interface 2023-12-30 16:23:02 +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 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 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 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 32b00eb433 Add new operator GENTYPE 2023-10-21 19:05:08 +02:00