--- a/docs/Writerside/topics/about.md Tue Feb 11 20:10:29 2025 +0100 +++ b/docs/Writerside/topics/about.md Tue Feb 11 21:04:47 2025 +0100 @@ -9,21 +9,70 @@ If you want to use this library, you can [download and install](install.md) the recent version. -The source code is also available as Mercurial repository [at our site][1] and -on [Source Forge][2]. +The source code is also available as Mercurial repository [at our site](https://develop.uap-core.de/hg/ucx/) and +on [Source Forge](https://sourceforge.net/p/ucx/code/). -[1]: https://develop.uap-core.de/hg/ucx/ -[2]: https://sourceforge.net/p/ucx/code/ - -### Authors +## Authors Mike Becker [<universe@uap-core.de>](mailto:universe@uap-core.de) Olaf Wintermann [<olaf.wintermann@gmail.com>](mailto:olaf.wintermann@gmail.com) -Changelog ---------- +## Other Resources + +* [Doxygen Documentation](https://ucx.sourceforge.io/api/) +* [Test Coverage Report](https://ucx.sourceforge.io/coverage/) + +## Changelog + +### Version 3.1 - 2025-02-11 {collapsible="true"} + +* adds properties.h +* adds tree.h +* adds json.h +* adds locale-independent string to number conversion functions +* adds reallocarray() like functions to allocator.h +* adds cxIterator() to create iterators over raw C arrays +* adds cxIteratorPtr() to create iterators over raw C pointer arrays +* adds cx_array_reallocator() and cx_array_default_reallocator +* adds several new array and list functions +* adds cxBufferReset() +* adds cxBufferAppend() +* adds cxBufferEnableFlushing() and cxBufferFlush() +* adds CX_BUFFER_COPY_ON_WRITE and CX_BUFFER_COPY_ON_EXTEND flags +* adds cxBufferWriteFunc and cxBufferReadFunc function pointers (for convenience) +* adds cx_cmp_ptr() +* adds cx_vcmp_* family of functions +* adds cx_sprintf() and several more variants +* adds runtime constants to read out the actual SBO sizes +* adds improved version of UCX 2 Test framework (now a self-contained header) +* adds cx_nmemb() utility function to common.h +* changes that CxMap returns own CxMapIterator to save memory in CxIterator +* changes name of cxBasicMempoolCreate() to cxMempoolCreateSimple() +* changes all functions, for which there is no dedicated xyz_a variant, + to accept NULL as allocator argument (in which case a default allocator will be used) +* changes the name of destroy functions that actually free the memory to better indicate their behavior +* change cx_strcat variants to allow handling of ENOMEM +* change cx_strcast() to also accept cxstring (and doing nothing in that case) +* change the behavior of cxBufferSeek() to allow offset zero for SEEK_END +* moves cx_compare_func typedef to compare.h +* moves cx_szmul() to common.h +* moves stream copy functions to new streams.h +* removes cx_strupper() and cx_strlower() because they only do the right thing in special cases +* removes several *_m variants of functions in string.h in favor of automatic conversion +* removes utils.h +* removes flag_removal function from iterator +* removes cxMapDetach() and makes cxMapRemoveAndGet() compatible with both map variants +* removes the API for changing the store_pointer property of collections after their creation +* removes CMake +* removes GTest dependency +* removes flags to disable SBO in tests +* removes CX_LINKED_LIST_SWAP_SBO_SIZE (it's not really an optimization for linked lists) +* fixes cx_strcmp() and cx_strcasecmp() not being useful for lexicographic ordering +* fixes cx_hash_key_cxstr() evaluating the argument twice +* fixes critical bug that produced wrong results when comparing lists of different type but same size +* ends UCX 2.1 long term support ### Version 3.0 - 2023-07-09 {collapsible="true"}