7 a static and a shared lib containing all units, but you may also use the UCX |
7 a static and a shared lib containing all units, but you may also use the UCX |
8 sources in your project and compile specific units by yourself. |
8 sources in your project and compile specific units by yourself. |
9 |
9 |
10 If you want to use this library, you can [download and install](install.md) |
10 If you want to use this library, you can [download and install](install.md) |
11 the recent version. |
11 the recent version. |
12 The source code is also available as Mercurial repository [at our site][1] and |
12 The source code is also available as Mercurial repository [at our site](https://develop.uap-core.de/hg/ucx/) and |
13 on [Source Forge][2]. |
13 on [Source Forge](https://sourceforge.net/p/ucx/code/). |
14 |
14 |
15 [1]: https://develop.uap-core.de/hg/ucx/ |
15 ## Authors |
16 [2]: https://sourceforge.net/p/ucx/code/ |
|
17 |
|
18 ### Authors |
|
19 |
16 |
20 Mike Becker [<universe@uap-core.de>](mailto:universe@uap-core.de) |
17 Mike Becker [<universe@uap-core.de>](mailto:universe@uap-core.de) |
21 |
18 |
22 Olaf Wintermann |
19 Olaf Wintermann |
23 [<olaf.wintermann@gmail.com>](mailto:olaf.wintermann@gmail.com) |
20 [<olaf.wintermann@gmail.com>](mailto:olaf.wintermann@gmail.com) |
24 |
21 |
25 Changelog |
22 ## Other Resources |
26 --------- |
23 |
|
24 * [Doxygen Documentation](https://ucx.sourceforge.io/api/) |
|
25 * [Test Coverage Report](https://ucx.sourceforge.io/coverage/) |
|
26 |
|
27 ## Changelog |
|
28 |
|
29 ### Version 3.1 - 2025-02-11 {collapsible="true"} |
|
30 |
|
31 * adds properties.h |
|
32 * adds tree.h |
|
33 * adds json.h |
|
34 * adds locale-independent string to number conversion functions |
|
35 * adds reallocarray() like functions to allocator.h |
|
36 * adds cxIterator() to create iterators over raw C arrays |
|
37 * adds cxIteratorPtr() to create iterators over raw C pointer arrays |
|
38 * adds cx_array_reallocator() and cx_array_default_reallocator |
|
39 * adds several new array and list functions |
|
40 * adds cxBufferReset() |
|
41 * adds cxBufferAppend() |
|
42 * adds cxBufferEnableFlushing() and cxBufferFlush() |
|
43 * adds CX_BUFFER_COPY_ON_WRITE and CX_BUFFER_COPY_ON_EXTEND flags |
|
44 * adds cxBufferWriteFunc and cxBufferReadFunc function pointers (for convenience) |
|
45 * adds cx_cmp_ptr() |
|
46 * adds cx_vcmp_* family of functions |
|
47 * adds cx_sprintf() and several more variants |
|
48 * adds runtime constants to read out the actual SBO sizes |
|
49 * adds improved version of UCX 2 Test framework (now a self-contained header) |
|
50 * adds cx_nmemb() utility function to common.h |
|
51 * changes that CxMap returns own CxMapIterator to save memory in CxIterator |
|
52 * changes name of cxBasicMempoolCreate() to cxMempoolCreateSimple() |
|
53 * changes all functions, for which there is no dedicated xyz_a variant, |
|
54 to accept NULL as allocator argument (in which case a default allocator will be used) |
|
55 * changes the name of destroy functions that actually free the memory to better indicate their behavior |
|
56 * change cx_strcat variants to allow handling of ENOMEM |
|
57 * change cx_strcast() to also accept cxstring (and doing nothing in that case) |
|
58 * change the behavior of cxBufferSeek() to allow offset zero for SEEK_END |
|
59 * moves cx_compare_func typedef to compare.h |
|
60 * moves cx_szmul() to common.h |
|
61 * moves stream copy functions to new streams.h |
|
62 * removes cx_strupper() and cx_strlower() because they only do the right thing in special cases |
|
63 * removes several *_m variants of functions in string.h in favor of automatic conversion |
|
64 * removes utils.h |
|
65 * removes flag_removal function from iterator |
|
66 * removes cxMapDetach() and makes cxMapRemoveAndGet() compatible with both map variants |
|
67 * removes the API for changing the store_pointer property of collections after their creation |
|
68 * removes CMake |
|
69 * removes GTest dependency |
|
70 * removes flags to disable SBO in tests |
|
71 * removes CX_LINKED_LIST_SWAP_SBO_SIZE (it's not really an optimization for linked lists) |
|
72 * fixes cx_strcmp() and cx_strcasecmp() not being useful for lexicographic ordering |
|
73 * fixes cx_hash_key_cxstr() evaluating the argument twice |
|
74 * fixes critical bug that produced wrong results when comparing lists of different type but same size |
|
75 * ends UCX 2.1 long term support |
27 |
76 |
28 ### Version 3.0 - 2023-07-09 {collapsible="true"} |
77 ### Version 3.0 - 2023-07-09 {collapsible="true"} |
29 |
78 |
30 * complete redesign from scratch |
79 * complete redesign from scratch |
31 * collections can now store copies of objects and not just pointers |
80 * collections can now store copies of objects and not just pointers |