Patrick Pelissier
1a5b428bfb
Fix proper support of no stdio
...
and add macro M_RAISE_FATAL to raise a fatal error
with the default is using stdio.
2022-10-01 09:50:09 +02:00
Patrick Pelissier
bd49e31f3b
Add definition macros for emplace/associative array container.
2022-09-29 23:48:46 +02:00
Patrick Pelissier
2dba83e3c5
Remove M_USE_STDLIB
...
(It wasn't working at all).
2022-09-28 22:16:04 +02:00
Patrick Pelissier
75e9766da9
Fix wrong generation for emplace / value
2022-09-26 23:43:39 +02:00
Patrick Pelissier
d2f8aa1c0d
Update documentation.
2022-09-25 22:15:44 +02:00
Patrick Pelissier
4aa4b7693f
Add M_C5_EMPTY macro
...
Add M_CROSS_MAP2 macro
Add emplace generation for associative array if both key & value are emplace types
Add test cases.
2022-09-25 22:13:51 +02:00
Patrick Pelissier
d50b450927
Update documentation.
2022-09-25 00:36:27 +02:00
Patrick Pelissier
5674cdbfc5
Add new macro M_CROSS_MAP
...
enabling to map a function to each pair
of arguments given two arglists.
2022-09-25 00:30:23 +02:00
Patrick Pelissier
3641829198
M_INC (resp. M_DEC) of M_UNDERFLOW (resp. M_OVERFLOW)
...
will keep the initial error.
2022-09-16 18:46:13 +02:00
Patrick Pelissier
10a759b09e
Add another function for generation
2022-09-15 23:25:42 +02:00
Patrick Pelissier
b5a3b36c1b
* Add M_C3_EMPTY function.
...
* Add WIP generator for emplace functions for associative array. What is missing is the hard part (even what is done cannot be said as easy!) Generation of both N x M functions. It probably needs a new MAP function for this.
2022-09-15 23:25:38 +02:00
Patrick Pelissier
b0c3839f2b
Add serial methods in documentation.
2022-09-15 21:39:17 +02:00
Patrick Pelissier
3aa3e95e4c
Remove constraint of calling string_end_p
...
before string_next or string_get_cref
This generates slighty more code but it is much saner
from user point of view.
2022-09-13 00:18:15 +02:00
Patrick Pelissier
87f1e53e13
Add more basic iteration code generation analysis
2022-09-13 00:03:40 +02:00
Patrick Pelissier
d7b45cc220
Fix issue in string_previous
2022-09-11 23:14:52 +02:00
Patrick Pelissier
d8142a9764
Add precision on documentation.
2022-09-10 16:38:27 +02:00
Patrick Pelissier
8780f58739
Fix description of string_unocde_t
2022-09-10 16:35:38 +02:00
Patrick Pelissier
e352104df8
Update documentation with new function.
2022-09-10 16:30:57 +02:00
Patrick Pelissier
cbb2b452bb
Add string_previous function
...
to iterate on the previous UTF8 code point.
2022-09-10 16:30:45 +02:00
Patrick Pelissier
6e947c6262
Add more corner cases.
2022-09-10 16:21:19 +02:00
Patrick Pelissier
18f04da4ec
Robustness/fix:
...
string_next won't advance if the end of string is reached.
2022-09-10 16:19:58 +02:00
Patrick Pelissier
3dad6ef65c
Update string API description.
2022-09-10 16:16:42 +02:00
Patrick Pelissier
41c4f5fe5c
Add string functions :
...
* string_it_get_pos to return the position in the steam
* string_it_pos to start iterating from a given position.
2022-09-10 16:16:13 +02:00
Patrick Pelissier
cfeedf19f8
Rework to be more compliant (as far as it is possible)
...
to real cases.
2022-09-10 15:56:36 +02:00
Patrick Pelissier
2ab410bd6a
Update comments to reflect that we work
...
on UTF8 code points and not Unicode characters.
2022-09-10 10:39:04 +02:00
Patrick Pelissier
aefbc5b2f5
Factorize the test of the start of an UTF8 code point
...
in a separate function
2022-09-10 10:34:54 +02:00
Patrick Pelissier
abec9c37fa
Clarify API
...
It iterates over UTF-8 code points, not Unicode characters
They can be different (!)
2022-09-10 10:32:34 +02:00
Patrick Pelissier
442b0e7cea
Reduce size of struct string_it_t on 64 bits
...
by storing an offset to the next character
instead of a pointer. An offset can be stored as a
BYTE instead of a PTR since UT-8 can use at most
4 characters per code point.
2022-09-10 09:59:06 +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
6b994c2928
Add m_core_ctz32 & m_core_ctz64 functions
...
(Count trailing zeros)
2022-08-29 19:30:09 +02:00
Patrick Pelissier
e6fe36d3cd
Revert "Perform coverage check by continuous integration tests."
...
as the numbers of lines generated by the generation macros
(which are included in the coverage measure)
through the C preprocessor depend on the exact version
of the C preprocessor.
There is no reliable way to get a measure on it,
except by always targeting the same compiler.
So, this measure of coverage (number of lines)
is not suitable for CIT. Ratio seems also not reliable enough.
This reverts commit f45ededf8b .
2022-08-22 23:53:10 +02:00
Patrick Pelissier
f45ededf8b
Perform coverage check by continuous integration tests.
2022-08-20 23:33:48 +02:00
Patrick Pelissier
ed27bedcb4
Make coverage perfoms a check that the computed coverage is at least
...
not lower than the reference coverage, ensuring no regression
on the coverage of the tests can occur.
NOTE: some tests (m-i-shared) perform some dynamic test cases
where the exact coverage depend on the exact dynamic behavior
of the test. And this behavior is not always reproducible
(for exact the calls to m_core_backoff_wait may not occur
if the threads are not trying to grab the resource at the
exact same time).
As such, the reference of such tests is taken from the worst
case of execution of the coverage (with the lowest number
of lines covered).
2022-08-20 23:29:02 +02:00
Patrick Pelissier
eb1a7a0435
Add more tests for tree
2022-08-19 23:16:42 +02:00
Patrick Pelissier
de00fdc5f7
Update documentation
2022-08-13 23:50:51 +02:00
Patrick Pelissier
8febe12c5c
Make stdlib an optional header
2022-08-09 00:20:32 +02:00
Patrick Pelissier
1368b201eb
Fix warnings in release mode.
2022-08-09 00:19:55 +02:00
Patrick Pelissier
4ca166b0b9
Update examples to remove warnings with assertion disabled.
2022-08-09 00:19:26 +02:00
Patrick Pelissier
c13533cf21
Fix naming
2022-08-08 01:22:05 +02:00
Patrick Pelissier
9fdf0f76e7
Add documentation of generic tree.
2022-08-08 01:20:30 +02:00
Patrick Pelissier
308f513edc
As the allocated array offers write access to the index -1
...
remove if conditions to always access the array even for -1
The term tab[-1] will be filled with no pertinent value, but
we don't care about it.
2022-08-02 23:21:39 +02:00
Patrick Pelissier
900bcc3819
The internal array of the tree always allocates one more term,
...
so that the index -1 in the array exists and can be written.
2022-08-02 23:02:59 +02:00
Patrick Pelissier
b6e0994dfc
Add test case for _init_set with empty tree.
2022-08-02 23:02:33 +02:00
Patrick Pelissier
121339d948
Add _move_* functions for generic tree.
2022-08-01 22:17:26 +02:00
Patrick Pelissier
c5bb84013a
Create _raw methods for insertions.
2022-08-01 22:13:41 +02:00
Patrick Pelissier
65b49268d3
Fix allow_realloc for tree
2022-07-30 16:14:03 +02:00
Patrick Pelissier
ecebd62f86
Update API compatibility documentation due to the _str to _cstr suffix change.
...
Note: the old (& still official) naming for the string functions
is still compatible since we have changed only the new namings (with m_ prefix).
See #99
2022-07-30 12:02:58 +02:00
Patrick Pelissier
6a8c9a703d
Rename string functions as per latests changes
2022-07-30 12:02:32 +02:00
Patrick Pelissier
ad05ae9aa5
Rename the string _suffix for Bounded Strings from _str to _cstr
...
See #99
2022-07-30 12:01:36 +02:00