Patrick Pelissier
6d621703eb
Copyright go to 2025 year
2025-03-01 11:03:38 +01:00
Patrick Pelissier
67e9c8ff06
New internal string format:
...
* maximum size of a string is 2^32-1 now by default on a 64 bits system (can be increased using M_USE_STRING_LARGE_INDEX if needed).
* This reduce consumption of a string_t from 24 bytes to 16 bytes.
* Change the stack representation of a string, so that it lets 15 allocated bytes for the user even in 64 bytes mode. For 32 bits system, it increases to 15 allocated byte for stack representation.
* synthetic performance benchmark shows a little bit of decrease of performance. But performance in real application shows a significant increase (probably due to the reduced size of the type).
*Augment test suite to be sure to test all corner cases of the new representaiton.
2024-05-28 23:05:54 +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
52b58c5a51
Happy new year 2024
2024-01-19 21:37:47 +01:00
Patrick Pelissier
a0cbec4329
Support of output failure for serialization of strings
2023-08-02 23:20: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
2feda4059f
Fix issue in case of invalid IO
2023-04-21 22:44:23 +02:00
Patrick Pelissier
fbab093d52
Avoid warnings about variables never read.
2023-02-24 19:56:26 +01:00
Patrick Pelissier
a2ae209992
Happy new year
2023-01-02 12:57:41 +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
f3376b6f0e
Move internal functions to internal namespace
2022-03-20 11:50:05 +01:00
Patrick Pelissier
19b01b404d
Migrate to 2022
2022-03-12 20:25:45 +01:00
Patrick Pelissier
0e960ec23f
Force use of INIT_WITH within M_LET.
2021-07-01 22:12:15 +02:00
Patrick Pelissier
052989a5a2
Update m_serial_ll_ct to have more basic types.
2021-03-28 11:09:59 +02:00
Patrick Pelissier
7d262f2450
Fix formatting
2021-03-13 23:08:04 +01:00
Patrick Pelissier
2dcda90c7b
Add JSON serial over string
2021-03-09 22:12:16 +01:00
Patrick Pelissier
b7d79c0a83
Fix issue for wrong formatted JSON (error not properly reported)
2021-03-09 20:56:13 +01:00
Patrick Pelissier
165ec09061
Rename user customizable macros
...
to be compliant with other
and clearer that they can be customized.
2021-02-20 00:10:26 +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
d169a06f79
Rename STRING_ASSERT_SLOW into M_ASERT_SLOW
2020-10-31 17:30:14 +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
22ce001f03
Remove incorrect use of M_ASSUME by assert
2020-10-24 23:14:14 +02:00
Patrick Pelissier
54d4b80368
Reformat macro to 80 characters
2020-10-21 23:23:40 +02:00
Patrick Pelissier
439bc06423
Fix unused value warning
2020-07-12 00:32:09 +02:00
Patrick Pelissier
e495b92ae5
Workaround warnings about unused return value
2020-07-11 20:29:55 +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
4f4605befb
Use of Annex K for MSVS to reduce warnings.
2020-06-21 23:36:34 +02:00
Patrick Pelissier
a7749e944f
Fix strange warning with gcc
2020-06-14 00:48:58 +02:00
Patrick Pelissier
18bf06ff5f
Add m_core_serial_fail for make debugging easier for serialization
...
Fix issue in saving size_t for 32 bits system
2020-06-14 00:40:11 +02:00
Patrick Pelissier
cb4b43e2e8
* Add length param for seralization write_string
...
to increase a little bit the performance for big strings.
* Change the format of storing strings for serial-bin.
2020-06-13 17:26:07 +02:00
Patrick Pelissier
f4c24f07af
Update comment description of macros and functions
2020-05-20 22:36:36 +02:00
Patrick Pelissier
6f10d7deb9
Add synonym of serialisater with specialized oplists to be used in RAII
2020-05-08 17:49:44 +02:00
Patrick Pelissier
4f7b0b9455
Happy new year 2020
2020-01-04 15:41:06 +01:00
Patrick Pelissier
90f248fbe8
Rename interface field of serial object into m_interface (WINDOWS compatibility as it defines a macro called interface)
2019-12-06 21:13:37 +01:00
Patrick Pelissier
0a99814ce2
Fix comments
2019-08-06 20:47:24 +02:00
Patrick Pelissier
ec2281c29a
Use of proper cast
2019-06-02 09:25:19 +02:00
Patrick Pelissier
594aebd903
Fix comment
2019-05-28 22:50:06 +02:00
Patrick Pelissier
c02ec4f94c
Update comments
2019-05-19 10:27:23 +02:00
Patrick Pelissier
a34deb2f3b
Workaround warning.
2019-05-18 11:17:15 +02:00
Patrick Pelissier
05a68157bc
Add local argument to serial interface to enable serial interface to create local parameters if needed (for example for serial binary)
2019-05-18 11:17:14 +02:00
Patrick Pelissier
b6d5b5462b
Update interface needed for serial
2019-05-18 11:17:14 +02:00
Patrick Pelissier
1c77082a29
Update comments
2019-05-18 11:17:14 +02:00
Patrick Pelissier
448072555f
Update comments
2019-05-18 11:17:14 +02:00
Patrick Pelissier
4701d5919b
Fix serial import/export for variant
2019-05-18 11:17:14 +02:00
Patrick Pelissier
0997f59665
Update for variant
2019-05-18 11:17:14 +02:00
Patrick Pelissier
f2fffb9219
Factor comment
2019-05-18 11:17:14 +02:00
Patrick Pelissier
3f03615ed2
Simplify code by factoring fscanf calls
2019-05-18 11:17:14 +02:00
Patrick Pelissier
aeebe42bfb
Fix issues for EOF & parsing arrays
2019-05-18 11:17:14 +02:00
Patrick Pelissier
5c4c93b62f
Add missing export/import JSON interface
2019-05-18 11:17:14 +02:00