Thu, 30 Oct 2025 19:27:18 +0100
fix typo bug in cxListDifference() - resolves #745
| 1140 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 1 | # Overview | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 2 | |
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 3 | Welcome to the UAP Common Extensions. | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 4 | |
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 5 | With this library we provide useful data structures and algorithms for common | 
| 1424 
563033aa998c
fixes tons of typos and grammar issues across the documentation - fixes #667
 Mike Becker <universe@uap-core.de> parents: 
1422diff
changeset | 6 | programmatic tasks in the C language. Using the build files, you can create | 
| 1140 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 7 | a static and a shared lib containing all units, but you may also use the UCX | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 8 | sources in your project and compile specific units by yourself. | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 9 | |
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 10 | If you want to use this library, you can [download and install](install.md) | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 11 | the recent version. | 
| 1227 
0bf1c1fdf1e3
fix outdated link to develop.uap-core.de and link to latest dist
 Mike Becker <universe@uap-core.de> parents: 
1194diff
changeset | 12 | The source code is also available as Mercurial repository [at our site](https://uap-core.de/hg/ucx/) and | 
| 1191 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 13 | on [Source Forge](https://sourceforge.net/p/ucx/code/). | 
| 1140 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 14 | |
| 1191 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 15 | ## Authors | 
| 1140 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 16 | |
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 17 | Mike Becker [<universe@uap-core.de>](mailto:universe@uap-core.de) | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 18 | |
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 19 | Olaf Wintermann | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 20 | [<olaf.wintermann@gmail.com>](mailto:olaf.wintermann@gmail.com) | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 21 | |
| 1191 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 22 | ## Other Resources | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 23 | |
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 24 | * [Doxygen Documentation](https://ucx.sourceforge.io/api/) | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 25 | * [Test Coverage Report](https://ucx.sourceforge.io/coverage/) | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 26 | |
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 27 | ## Changelog | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 28 | |
| 1280 
60123b3db06e
start development of UCX 3.2
 Mike Becker <universe@uap-core.de> parents: 
1227diff
changeset | 29 | ### Version 3.2 - preview {collapsible="true"} | 
| 
60123b3db06e
start development of UCX 3.2
 Mike Becker <universe@uap-core.de> parents: 
1227diff
changeset | 30 | |
| 1283 
89935fea4b7c
add cxMempoolTransferObject() - resolves #640
 Mike Becker <universe@uap-core.de> parents: 
1281diff
changeset | 31 | * adds cxMempoolTransfer() and cxMempoolTransferObject() | 
| 1325 
20caf6efaf07
improve mempool destructor support (3/3)
 Mike Becker <universe@uap-core.de> parents: 
1322diff
changeset | 32 | * adds support for different destruction strategies in CxMempool | 
| 1390 
ff077f793c5d
kv-list: add documentation
 Mike Becker <universe@uap-core.de> parents: 
1334diff
changeset | 33 | * adds new key-value-based list implementation | 
| 1401 
a76249f50237
add changelog entries for issue #720
 Mike Becker <universe@uap-core.de> parents: 
1390diff
changeset | 34 | * adds support for integer keys to CxHashKey | 
| 1426 
3a89b31f0724
clean up header files and adds support for comparing arbitrary strings with string.h functions
 Mike Becker <universe@uap-core.de> parents: 
1425diff
changeset | 35 | * adds support for comparing arbitrary strings without explicit call to cx_strcast() | 
| 1440 
0d1430668271
add documentation for cxMapClone() - resolves #743
 Mike Becker <universe@uap-core.de> parents: 
1436diff
changeset | 36 | * adds cxListClone() and cxMapClone() | 
| 1453 
b6fc5b1d5c5d
add implementation for cxListDifference() - issue #745
 Mike Becker <universe@uap-core.de> parents: 
1447diff
changeset | 37 | * adds cxListDifference(), cxMapDifference(), and cxMapListDifference() | 
| 1447 
aaf85b3e9601
add documentation for cxMapDifference() and cxMapListDifference()
 Mike Becker <universe@uap-core.de> parents: 
1440diff
changeset | 38 | * adds cxListContains() and cxMapContains() | 
| 1287 
3a3ffc27813f
adds cxListSet() - resolves #642
 Mike Becker <universe@uap-core.de> parents: 
1286diff
changeset | 39 | * adds cxListSet() | 
| 1315 
b4c3e0b4c3d5
add convenience functions for easy access to first/last element of a list
 Mike Becker <universe@uap-core.de> parents: 
1309diff
changeset | 40 | * adds cxListFirst() and cxListLast() | 
| 
b4c3e0b4c3d5
add convenience functions for easy access to first/last element of a list
 Mike Becker <universe@uap-core.de> parents: 
1309diff
changeset | 41 | * adds cxListRemoveAndGetFirst() and cxListRemoveAndGetLast(), | 
| 
b4c3e0b4c3d5
add convenience functions for easy access to first/last element of a list
 Mike Becker <universe@uap-core.de> parents: 
1309diff
changeset | 42 | and corresponding macro aliases cxListPopFront() and cxListPop() | 
| 1433 
81c301a59b7c
add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
 Mike Becker <universe@uap-core.de> parents: 
1429diff
changeset | 43 | * adds cxListEmplace(), cxListEmplaceAt(), cxListEmplaceArray(), cxListEmplaceArrayAt(), and cxMapEmplace() | 
| 1419 
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
 Mike Becker <universe@uap-core.de> parents: 
1401diff
changeset | 44 | * adds cxListInsertUnique() and cxListInsertUniqueArray() | 
| 
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
 Mike Becker <universe@uap-core.de> parents: 
1401diff
changeset | 45 | * adds cx_array_insert_unique() and various convenience macros | 
| 
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
 Mike Becker <universe@uap-core.de> parents: 
1401diff
changeset | 46 | * adds cx_linked_list_insert_unique() and cx_linked_list_insert_unique_chain() | 
| 1290 
4ac889e14211
adds cxBufferShrink() - resolves #626
 Mike Becker <universe@uap-core.de> parents: 
1288diff
changeset | 47 | * adds cxBufferShrink() | 
| 1295 
b00c6ae1441a
add cxTreeSize() - resolves #624
 Mike Becker <universe@uap-core.de> parents: 
1294diff
changeset | 48 | * adds cxTreeSize() | 
| 1297 
0811fb9a8dba
bring back CX_PRIstr and CX_SFMT macros - resolves #612
 Mike Becker <universe@uap-core.de> parents: 
1296diff
changeset | 49 | * adds CX_PRIstr and CX_SFMT macros for formatting UCX strings | 
| 1304 
57e062a4bb05
adds cx_strcpy() and cx_strcpy_a()
 Mike Becker <universe@uap-core.de> parents: 
1301diff
changeset | 50 | * adds cx_strcpy() and cx_strcpy_a() | 
| 1390 
ff077f793c5d
kv-list: add documentation
 Mike Becker <universe@uap-core.de> parents: 
1334diff
changeset | 51 | * adds cxJsonArrRemove() and cxJsonObjRemove() | 
| 1318 
12fa1d37fe48
allow changing the cxDefaultAllocator - resolves #669
 Mike Becker <universe@uap-core.de> parents: 
1316diff
changeset | 52 | * adds cxStdlibAllocator and allows changes of cxDefaultAllocator | 
| 1316 
c41538edfcef
add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
 Mike Becker <universe@uap-core.de> parents: 
1315diff
changeset | 53 | * improves performance of the CxList array list implementation | 
| 1426 
3a89b31f0724
clean up header files and adds support for comparing arbitrary strings with string.h functions
 Mike Becker <universe@uap-core.de> parents: 
1425diff
changeset | 54 | * changes over-aggressively declaring functions as static inline | 
| 1334 
7763892ed801
allow NULL for creating UCX strings - resolves #683
 Mike Becker <universe@uap-core.de> parents: 
1332diff
changeset | 55 | * changes cx_str() and cx_mutstr() to allow NULL strings | 
| 1332 
02946dc73e6a
add support for C-strings in cx_strcast() - resolves #549
 Mike Becker <universe@uap-core.de> parents: 
1328diff
changeset | 56 | * changes cx_strcast() to also accept C-strings as input | 
| 1300 
fcb149ee60ff
improve cx_strreplacen() - resolves #623
 Mike Becker <universe@uap-core.de> parents: 
1297diff
changeset | 57 | * changes grow strategy for the memory pool to reduce reallocations | 
| 1291 
5942859fd76c
new auto-extend strategy for CxBuffer - resolves #641
 Mike Becker <universe@uap-core.de> parents: 
1290diff
changeset | 58 | * changes grow strategy for CxBuffer, which does now take the page size into account | 
| 1300 
fcb149ee60ff
improve cx_strreplacen() - resolves #623
 Mike Becker <universe@uap-core.de> parents: 
1297diff
changeset | 59 | * changes the implementation of cx_strreplacen() for improved efficiency | 
| 1390 
ff077f793c5d
kv-list: add documentation
 Mike Becker <universe@uap-core.de> parents: 
1334diff
changeset | 60 | * changes all cxListIterator() and cxMapIterator() family of functions to also accept NULL as argument | 
| 1316 
c41538edfcef
add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
 Mike Becker <universe@uap-core.de> parents: 
1315diff
changeset | 61 | * changes insert_element member function of CxList to accept NULL source and return a pointer to the inserted element | 
| 1422 
8bfccb342895
changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
 Mike Becker <universe@uap-core.de> parents: 
1419diff
changeset | 62 | * changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers | 
| 1425 
83284b289430
remove unnecessary members from the array reallocator struct - fixes #621
 Mike Becker <universe@uap-core.de> parents: 
1424diff
changeset | 63 | * changes struct cx_array_reallocator_s by replacing the four generic data members with two specifically named members | 
| 1322 
7be10b57f658
fix critical memory overflow in the stack-based array reallocator
 Mike Becker <universe@uap-core.de> parents: 
1318diff
changeset | 64 | * fixes critical memory overflow in the stack-based array reallocator (this unfortunately breaks the function signature) | 
| 1419 
e46406fd1b3c
add functions to insert elements into lists/arrays without duplicates - resolves #557
 Mike Becker <universe@uap-core.de> parents: 
1401diff
changeset | 65 | * fixes critical bug in cx_array_insert_sorted() that caused an infinite loop when inserting duplicates | 
| 1328 
2cf66dee40b8
stabilizes mempool implementation
 Mike Becker <universe@uap-core.de> parents: 
1325diff
changeset | 66 | * fixes mempool implementation not supporting NULL as argument for realloc | 
| 
2cf66dee40b8
stabilizes mempool implementation
 Mike Becker <universe@uap-core.de> parents: 
1325diff
changeset | 67 | * fixes mempool implementation not supporting zero as size for realloc | 
| 1390 
ff077f793c5d
kv-list: add documentation
 Mike Becker <universe@uap-core.de> parents: 
1334diff
changeset | 68 | * fixes that the elem_count member of an iterator was not updated after removing an element flagged by cxIteratorFlagRemoval() | 
| 1309 
b240b73d2a10
fix that iteration continued with siblings for a subtree-root - fixes #656
 Mike Becker <universe@uap-core.de> parents: 
1305diff
changeset | 69 | * fixes that starting an iteration in a non-root node incorrectly continues iteration with the siblings of that node | 
| 1296 
2a2403c63439
fixes unnecessary allocations in cx_strcat() family of functions
 Mike Becker <universe@uap-core.de> parents: 
1295diff
changeset | 70 | * fixes unnecessary allocations in cx_strcat() family of functions | 
| 1288 
b41ad5d9bcbf
 fixes errno value after failing cxBufferSeek() to be consistently EINVAL
 Mike Becker <universe@uap-core.de> parents: 
1287diff
changeset | 71 | * fixes errno value after failing cxBufferSeek() to be consistently EINVAL | 
| 1284 
b2103354baed
fix implementation of cxBufferTerminate() - fixes #631
 Mike Becker <universe@uap-core.de> parents: 
1283diff
changeset | 72 | * fixes implementation of cxBufferTerminate() | 
| 1286 
5492e8ef05f4
fixes that cx_tree_search() did not investigate subtrees with equally good distance
 Mike Becker <universe@uap-core.de> parents: 
1285diff
changeset | 73 | * fixes allocator arguments for some printf.h functions not being const | 
| 
5492e8ef05f4
fixes that cx_tree_search() did not investigate subtrees with equally good distance
 Mike Becker <universe@uap-core.de> parents: 
1285diff
changeset | 74 | * fixes that cx_tree_search() did not investigate subtrees with equally good distance | 
| 1318 
12fa1d37fe48
allow changing the cxDefaultAllocator - resolves #669
 Mike Becker <universe@uap-core.de> parents: 
1316diff
changeset | 75 | * fixes that memory was freed by the wrong allocator in cx_vasprintf_a() when the underlying vsnprintf() failed | 
| 1429 
6e0c3a8a914a
remove the concept of "mutating iterators" - resolves #579
 Mike Becker <universe@uap-core.de> parents: 
1426diff
changeset | 76 | * removes all functions that create mutating iterators in favor of making all iterators possibly mutating | 
| 1301 
f81d8b4f40c4
fix code not compiling with GCC 15
 Mike Becker <universe@uap-core.de> parents: 
1300diff
changeset | 77 | * removes the use of C23 attributes because they don't mix well with GNU attributes in GCC 15 | 
| 1280 
60123b3db06e
start development of UCX 3.2
 Mike Becker <universe@uap-core.de> parents: 
1227diff
changeset | 78 | |
| 1191 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 79 | ### Version 3.1 - 2025-02-11 {collapsible="true"} | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 80 | |
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 81 | * adds properties.h | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 82 | * adds tree.h | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 83 | * adds json.h | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 84 | * adds locale-independent string to number conversion functions | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 85 | * adds reallocarray() like functions to allocator.h | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 86 | * adds cxIterator() to create iterators over raw C arrays | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 87 | * adds cxIteratorPtr() to create iterators over raw C pointer arrays | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 88 | * adds cx_array_reallocator() and cx_array_default_reallocator | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 89 | * adds several new array and list functions | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 90 | * adds cxBufferReset() | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 91 | * adds cxBufferAppend() | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 92 | * adds cxBufferEnableFlushing() and cxBufferFlush() | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 93 | * adds CX_BUFFER_COPY_ON_WRITE and CX_BUFFER_COPY_ON_EXTEND flags | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 94 | * adds cxBufferWriteFunc and cxBufferReadFunc function pointers (for convenience) | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 95 | * adds cx_cmp_ptr() | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 96 | * adds cx_vcmp_* family of functions | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 97 | * adds cx_sprintf() and several more variants | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 98 | * adds runtime constants to read out the actual SBO sizes | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 99 | * adds improved version of UCX 2 Test framework (now a self-contained header) | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 100 | * adds cx_nmemb() utility function to common.h | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 101 | * changes that CxMap returns own CxMapIterator to save memory in CxIterator | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 102 | * changes name of cxBasicMempoolCreate() to cxMempoolCreateSimple() | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 103 | * changes all functions, for which there is no dedicated xyz_a variant, | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 104 | to accept NULL as allocator argument (in which case a default allocator will be used) | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 105 | * changes the name of destroy functions that actually free the memory to better indicate their behavior | 
| 1194 | 106 | * changes cx_strcat variants to allow handling of ENOMEM | 
| 107 | * changes cx_strcast() to also accept cxstring (and doing nothing in that case) | |
| 108 | * changes the behavior of cxBufferSeek() to allow offset zero for SEEK_END | |
| 1191 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 109 | * moves cx_compare_func typedef to compare.h | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 110 | * moves cx_szmul() to common.h | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 111 | * moves stream copy functions to new streams.h | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 112 | * removes cx_strupper() and cx_strlower() because they only do the right thing in special cases | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 113 | * removes several *_m variants of functions in string.h in favor of automatic conversion | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 114 | * removes utils.h | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 115 | * removes flag_removal function from iterator | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 116 | * removes cxMapDetach() and makes cxMapRemoveAndGet() compatible with both map variants | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 117 | * removes the API for changing the store_pointer property of collections after their creation | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 118 | * removes CMake | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 119 | * removes GTest dependency | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 120 | * removes flags to disable SBO in tests | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 121 | * removes CX_LINKED_LIST_SWAP_SBO_SIZE (it's not really an optimization for linked lists) | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 122 | * fixes cx_strcmp() and cx_strcasecmp() not being useful for lexicographic ordering | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 123 | * fixes cx_hash_key_cxstr() evaluating the argument twice | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 124 | * fixes critical bug that produced wrong results when comparing lists of different type but same size | 
| 
11a0f6f0f30b
link doxygen and coverage reports on overview page
 Mike Becker <universe@uap-core.de> parents: 
1140diff
changeset | 125 | * ends UCX 2.1 long term support | 
| 1140 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 126 | |
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 127 | ### Version 3.0 - 2023-07-09 {collapsible="true"} | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 128 | |
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 129 | * complete redesign from scratch | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 130 | * collections can now store copies of objects and not just pointers | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 131 | * collections are now dynamically implemented | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 132 | * users of the library can specify own implementations of collections that work with the UCX API | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 133 | * low level API for custom lists that do not use the UCX structures | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 134 | * various fixes and improvements | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 135 | * drops some other, rarely used, features | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 136 | * removes testing implementation from the lib | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 137 | |
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 138 | ### Version 2.1 - 2019-12-30 {collapsible="true"} | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 139 | |
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 140 | * adds string replace functions | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 141 | * adds set operations for ` UcxList` and `UcxMap` | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 142 | * adds `sstrcaseprefix()` and `sstrcasesuffix()` | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 143 | * improves Doxygen documentation in ucx/string.h | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 144 | * adds `UcxArray` data type | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 145 | * adds support for CMake builds, but main build system is still autotools | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 146 | |
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 147 | ### Version 2.0 - 2018-12-28 {collapsible="true"} | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 148 | |
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 149 | * some uncritical bug fixes | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 150 | * overflow of `sstrnlen` now returns `SIZE_MAX` instead of zero | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 151 | * adds `scstr_t` - a `const char*` variant for sstr_t | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 152 | * renames utility compare functions | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 153 | |
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 154 | ### Version 1.1 - 2018-05-14 {collapsible="true"} | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 155 | |
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 156 | * adds missing 32 bit support to integer overflow checks | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 157 | * adds `ucx_buffer_to_sstr()` macro | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 158 | * adds `ucx_avl_free_content()` | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 159 | * adds some more compare and distance functions in utils.h | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 160 | * adds `SFMT()` and `PRIsstr` convenience macros | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 161 | * destructor functions for `*_free_content()` functions are now optional | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 162 | |
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 163 | ### Version 1.0.1 - 2018-01-21 {collapsible="true"} | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 164 | |
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 165 | * some bug fixes | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 166 | * adds integer overflow checks | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 167 | |
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 168 | ### Version 1.0 - 2017-10-28 {collapsible="true"} | 
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 169 | |
| 
88a9ee79c102
start overhauling the entire web documentation
 Mike Becker <universe@uap-core.de> parents: diff
changeset | 170 | * first stable version of UCX released |