CHANGELOG

Fri, 23 May 2025 12:44:24 +0200

author
Mike Becker <universe@uap-core.de>
date
Fri, 23 May 2025 12:44:24 +0200
changeset 1327
ed75dc1db503
parent 1325
20caf6efaf07
child 1328
2cf66dee40b8
permissions
-rw-r--r--

make test-compile depend on both static and shared

the shared lib is not needed for the tests,
but when run with coverage, gcov will be confused
when outdated line information is available from
a previous shared build

1280
60123b3db06e start development of UCX 3.2
Mike Becker <universe@uap-core.de>
parents: 1194
diff changeset
1 Version 3.2 - tbd
60123b3db06e start development of UCX 3.2
Mike Becker <universe@uap-core.de>
parents: 1194
diff changeset
2 ------------------------
60123b3db06e start development of UCX 3.2
Mike Becker <universe@uap-core.de>
parents: 1194
diff changeset
3
1283
89935fea4b7c add cxMempoolTransferObject() - resolves #640
Mike Becker <universe@uap-core.de>
parents: 1281
diff changeset
4 * adds cxMempoolTransfer() and cxMempoolTransferObject()
1325
20caf6efaf07 improve mempool destructor support (3/3)
Mike Becker <universe@uap-core.de>
parents: 1322
diff changeset
5 * adds support for different destruction strategies in CxMempool
1287
3a3ffc27813f adds cxListSet() - resolves #642
Mike Becker <universe@uap-core.de>
parents: 1286
diff changeset
6 * adds cxListSet()
1294
30d7ae76c76a add test and documentation for cxListContains() - fixes #643
Mike Becker <universe@uap-core.de>
parents: 1291
diff changeset
7 * adds cxListContains()
1315
b4c3e0b4c3d5 add convenience functions for easy access to first/last element of a list
Mike Becker <universe@uap-core.de>
parents: 1309
diff changeset
8 * 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: 1309
diff changeset
9 * 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: 1309
diff changeset
10 and corresponding macro aliases cxListPopFront() and cxListPop()
1316
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
11 * adds cxListEmplace() and cxListEmplaceAt()
1290
4ac889e14211 adds cxBufferShrink() - resolves #626
Mike Becker <universe@uap-core.de>
parents: 1288
diff changeset
12 * adds cxBufferShrink()
1295
b00c6ae1441a add cxTreeSize() - resolves #624
Mike Becker <universe@uap-core.de>
parents: 1294
diff changeset
13 * adds cxTreeSize()
1297
0811fb9a8dba bring back CX_PRIstr and CX_SFMT macros - resolves #612
Mike Becker <universe@uap-core.de>
parents: 1296
diff changeset
14 * 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: 1301
diff changeset
15 * adds cx_strcpy() and cx_strcpy_a()
1318
12fa1d37fe48 allow changing the cxDefaultAllocator - resolves #669
Mike Becker <universe@uap-core.de>
parents: 1316
diff changeset
16 * 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: 1315
diff changeset
17 * improves performance of the CxList array list implementation
1281
45746a08c59e add cxMempoolTransfer() - partially resolves #640
Mike Becker <universe@uap-core.de>
parents: 1280
diff changeset
18 * changes grow strategy for the mempory pool to reduce reallocations
1291
5942859fd76c new auto-extend strategy for CxBuffer - resolves #641
Mike Becker <universe@uap-core.de>
parents: 1290
diff changeset
19 * 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: 1297
diff changeset
20 * changes the implementation of cx_strreplacen() for improved efficiency
1305
c34a72d8e104 some cxListIterator() variants now also allow NULL lists
Mike Becker <universe@uap-core.de>
parents: 1304
diff changeset
21 * changes all cxListIterator() without index to also accept NULL as list argument
1316
c41538edfcef add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
Mike Becker <universe@uap-core.de>
parents: 1315
diff changeset
22 * changes insert_element member function of CxList to accept NULL source and return a pointer to the inserted element
1322
7be10b57f658 fix critical memory overflow in the stack-based array reallocator
Mike Becker <universe@uap-core.de>
parents: 1318
diff changeset
23 * fixes critical memory overflow in the stack-based array reallocator (this unfortunately breaks the function signature)
1309
b240b73d2a10 fix that iteration continued with siblings for a subtree-root - fixes #656
Mike Becker <universe@uap-core.de>
parents: 1305
diff changeset
24 * 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: 1295
diff changeset
25 * 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: 1287
diff changeset
26 * 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: 1283
diff changeset
27 * fixes implementation of cxBufferTerminate()
1285
7acbaa74fbd0 fix allocator of some printf.h functions not being const - fixes #611
Mike Becker <universe@uap-core.de>
parents: 1284
diff changeset
28 * fixes allocator arguments for some printf.h functions not being const
1286
5492e8ef05f4 fixes that cx_tree_search() did not investigate subtrees with equally good distance
Mike Becker <universe@uap-core.de>
parents: 1285
diff changeset
29 * 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: 1316
diff changeset
30 * fixes that memory was freed by the wrong allocator in cx_vasprintf_a() when the underlying vsnprintf() failed
1301
f81d8b4f40c4 fix code not compiling with GCC 15
Mike Becker <universe@uap-core.de>
parents: 1300
diff changeset
31 * 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: 1194
diff changeset
32
1187
0f70bb04f7ba finalize CHANGELOG
Mike Becker <universe@uap-core.de>
parents: 1178
diff changeset
33 Version 3.1 - 2025-02-11
758
6cd62ce7e353 fix #318 - incorrect link to ucx 3 docs
Mike Becker <universe@uap-core.de>
parents: 750
diff changeset
34 ------------------------
994
3603bdf4a78b remove map detach function - fixes #487
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
35
928
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 920
diff changeset
36 * adds properties.h
817
949908c97474 add cx_array_default_reallocator
Mike Becker <universe@uap-core.de>
parents: 810
diff changeset
37 * adds tree.h
1027
b1373253e202 add CHANGELOG entry for issue #431
Mike Becker <universe@uap-core.de>
parents: 1025
diff changeset
38 * adds json.h
1061
c7d23892eab5 implement string to integer conversions
Mike Becker <universe@uap-core.de>
parents: 1050
diff changeset
39 * adds locale-independent string to number conversion functions
963
2f601274bbac add reallocarray() like functions - resolves #468
Mike Becker <universe@uap-core.de>
parents: 953
diff changeset
40 * adds reallocarray() like functions to allocator.h
850
b2bc48c2b251 add iterator over raw C arrays - closes #389
Mike Becker <universe@uap-core.de>
parents: 834
diff changeset
41 * adds cxIterator() to create iterators over raw C arrays
1070
0a5a356a4486 add array iterator over pointer arrays
Mike Becker <universe@uap-core.de>
parents: 1062
diff changeset
42 * adds cxIteratorPtr() to create iterators over raw C pointer arrays
953
581ad4fd01e9 add function to create array reallocator that can move arrays from stack to heap
Mike Becker <universe@uap-core.de>
parents: 945
diff changeset
43 * adds cx_array_reallocator() and cx_array_default_reallocator
920
02adaa52d0c4 update CHANGELOG
Mike Becker <universe@uap-core.de>
parents: 854
diff changeset
44 * adds several new array and list functions
761
61d5197d612b add cxBufferReset() - resolves #338
Mike Becker <universe@uap-core.de>
parents: 760
diff changeset
45 * adds cxBufferReset()
1030
06091e067bee add cxBufferAppend() - fixes #534
Mike Becker <universe@uap-core.de>
parents: 1028
diff changeset
46 * adds cxBufferAppend()
1110
a0e9be7ed131 re-implement flushing
Mike Becker <universe@uap-core.de>
parents: 1071
diff changeset
47 * adds cxBufferEnableFlushing() and cxBufferFlush()
1028
3e4905241838 add copy-on-extend feature to UCX buffer - fixes #533
Mike Becker <universe@uap-core.de>
parents: 1027
diff changeset
48 * adds CX_BUFFER_COPY_ON_WRITE and CX_BUFFER_COPY_ON_EXTEND flags
1112
22dc2163fffd add convenience macros to avoid a fptr cast for cxBufferRead and cxBufferWrite
Mike Becker <universe@uap-core.de>
parents: 1111
diff changeset
49 * adds cxBufferWriteFunc and cxBufferReadFunc function pointers (for convenience)
762
4523f6d42512 add cx_cmp_ptr() - fix #340
Mike Becker <universe@uap-core.de>
parents: 761
diff changeset
50 * adds cx_cmp_ptr()
1062
8baed9b38bc6 add cx_vcmp_* family of functions
Mike Becker <universe@uap-core.de>
parents: 1061
diff changeset
51 * adds cx_vcmp_* family of functions
810
85859399a0cc add cx_sprintf() variants - fixes #353
Mike Becker <universe@uap-core.de>
parents: 808
diff changeset
52 * adds cx_sprintf() and several more variants
808
f7f193893894 add missing CHANGELOG entries
Mike Becker <universe@uap-core.de>
parents: 786
diff changeset
53 * adds runtime constants to read out the actual SBO sizes
770
ed710122af44 migrates self-test for testing allocator - relates to #342
Mike Becker <universe@uap-core.de>
parents: 764
diff changeset
54 * adds improved version of UCX 2 Test framework (now a self-contained header)
945
84a5fab8a47c add cx_nmemb() utility
Mike Becker <universe@uap-core.de>
parents: 928
diff changeset
55 * adds cx_nmemb() utility function to common.h
1115
6db21dee4929 create specialized map iterators - fixes #550
Mike Becker <universe@uap-core.de>
parents: 1113
diff changeset
56 * changes that CxMap returns own CxMapIterator to save memory in CxIterator
1178
9998cfb4a65b change name of cxBasicMempoolCreate() to cxMempoolCreateSimple() - fixes #590
Mike Becker <universe@uap-core.de>
parents: 1176
diff changeset
57 * changes name of cxBasicMempoolCreate() to cxMempoolCreateSimple()
989
8aa57a7fecc4 improve consistency for allocator arguments - fixes #485
Mike Becker <universe@uap-core.de>
parents: 971
diff changeset
58 * changes all functions, for which there is no dedicated xyz_a variant,
8aa57a7fecc4 improve consistency for allocator arguments - fixes #485
Mike Becker <universe@uap-core.de>
parents: 971
diff changeset
59 to accept NULL as allocator argument (in which case a default allocator will be used)
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 989
diff changeset
60 * changes the name of destroy functions that actually free the memory to better indicate their behavior
1194
b9654414c087 fix typos in CHANGELOG
Mike Becker <universe@uap-core.de>
parents: 1187
diff changeset
61 * changes cx_strcat variants to allow handling of ENOMEM
b9654414c087 fix typos in CHANGELOG
Mike Becker <universe@uap-core.de>
parents: 1187
diff changeset
62 * changes cx_strcast() to also accept cxstring (and doing nothing in that case)
b9654414c087 fix typos in CHANGELOG
Mike Becker <universe@uap-core.de>
parents: 1187
diff changeset
63 * changes the behavior of cxBufferSeek() to allow offset zero for SEEK_END
971
cc204fc56c9c rename utils.h to streams.h
Mike Becker <universe@uap-core.de>
parents: 970
diff changeset
64 * moves cx_compare_func typedef to compare.h
cc204fc56c9c rename utils.h to streams.h
Mike Becker <universe@uap-core.de>
parents: 970
diff changeset
65 * moves cx_szmul() to common.h
cc204fc56c9c rename utils.h to streams.h
Mike Becker <universe@uap-core.de>
parents: 970
diff changeset
66 * moves stream copy functions to new streams.h
1176
247db6e629ad remove cx_strupper() and cx_strlower() - fixes #591
Mike Becker <universe@uap-core.de>
parents: 1127
diff changeset
67 * removes cx_strupper() and cx_strlower() because they only do the right thing in special cases
1127
1fd31909a3f8 removes some unnecessary string functions - fixes #561
Mike Becker <universe@uap-core.de>
parents: 1115
diff changeset
68 * removes several *_m variants of functions in string.h in favor of automatic conversion
971
cc204fc56c9c rename utils.h to streams.h
Mike Becker <universe@uap-core.de>
parents: 970
diff changeset
69 * removes utils.h
994
3603bdf4a78b remove map detach function - fixes #487
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
70 * removes flag_removal function from iterator
3603bdf4a78b remove map detach function - fixes #487
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
71 * removes cxMapDetach() and makes cxMapRemoveAndGet() compatible with both map variants
1111
78eeeb950883 remove API for changing the store_pointer property after list creation
Mike Becker <universe@uap-core.de>
parents: 1110
diff changeset
72 * removes the API for changing the store_pointer property of collections after their creation
770
ed710122af44 migrates self-test for testing allocator - relates to #342
Mike Becker <universe@uap-core.de>
parents: 764
diff changeset
73 * removes CMake
ed710122af44 migrates self-test for testing allocator - relates to #342
Mike Becker <universe@uap-core.de>
parents: 764
diff changeset
74 * removes GTest dependency
808
f7f193893894 add missing CHANGELOG entries
Mike Becker <universe@uap-core.de>
parents: 786
diff changeset
75 * removes flags to disable SBO in tests
1113
dce04550fbef remove CX_LINKED_LIST_SWAP_SBO_SIZE - fixes #551
Mike Becker <universe@uap-core.de>
parents: 1112
diff changeset
76 * removes CX_LINKED_LIST_SWAP_SBO_SIZE (it's not really an optimization for linked lists)
1071
028cb6d22197 fix cx_strcmp() and cx_strcasecmp() - fixes #546
Mike Becker <universe@uap-core.de>
parents: 1070
diff changeset
77 * fixes cx_strcmp() and cx_strcasecmp() not being useful for lexicographic ordering
1050
3df63e95921a make cx_strcast() also support cxstring
Mike Becker <universe@uap-core.de>
parents: 1049
diff changeset
78 * fixes cx_hash_key_cxstr() evaluating the argument twice
971
cc204fc56c9c rename utils.h to streams.h
Mike Becker <universe@uap-core.de>
parents: 970
diff changeset
79 * fixes critical bug that produced wrong results when comparing lists of different type but same size
1187
0f70bb04f7ba finalize CHANGELOG
Mike Becker <universe@uap-core.de>
parents: 1178
diff changeset
80 * ends UCX 2.1 long term support
758
6cd62ce7e353 fix #318 - incorrect link to ucx 3 docs
Mike Becker <universe@uap-core.de>
parents: 750
diff changeset
81
750
8a3336743c4e update CHANGELOG, COPYING, and README
Mike Becker <universe@uap-core.de>
parents: 390
diff changeset
82 Version 3.0 - 2023-07-09
8a3336743c4e update CHANGELOG, COPYING, and README
Mike Becker <universe@uap-core.de>
parents: 390
diff changeset
83 ------------------------
994
3603bdf4a78b remove map detach function - fixes #487
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
84
750
8a3336743c4e update CHANGELOG, COPYING, and README
Mike Becker <universe@uap-core.de>
parents: 390
diff changeset
85 * complete redesign from scratch
8a3336743c4e update CHANGELOG, COPYING, and README
Mike Becker <universe@uap-core.de>
parents: 390
diff changeset
86 * collections can now store copies of objects and not just pointers
8a3336743c4e update CHANGELOG, COPYING, and README
Mike Becker <universe@uap-core.de>
parents: 390
diff changeset
87 * collections are now dynamically implemented
8a3336743c4e update CHANGELOG, COPYING, and README
Mike Becker <universe@uap-core.de>
parents: 390
diff changeset
88 * users of the library can specify own implementations of collections that work with the UCX API
8a3336743c4e update CHANGELOG, COPYING, and README
Mike Becker <universe@uap-core.de>
parents: 390
diff changeset
89 * low level API for custom lists that do not use the UCX structures
8a3336743c4e update CHANGELOG, COPYING, and README
Mike Becker <universe@uap-core.de>
parents: 390
diff changeset
90 * various fixes and improvements
8a3336743c4e update CHANGELOG, COPYING, and README
Mike Becker <universe@uap-core.de>
parents: 390
diff changeset
91 * drops some other, rarely used, features
8a3336743c4e update CHANGELOG, COPYING, and README
Mike Becker <universe@uap-core.de>
parents: 390
diff changeset
92 * removes testing implementation from the lib
390
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents: 381
diff changeset
93
d345541018fa starts ucx 3.0 development
Mike Becker <universe@uap-core.de>
parents: 381
diff changeset
94
381
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
95 Version 2.1 - 2019-12-30
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
96 ------------------------
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
97
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
98 * adds string replace functions
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
99 * adds set operations for UcxList and UcxMap
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
100 * adds sstrcaseprefix() and sstrcasesuffix()
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
101 * improves Doxygen documentation in ucx/string.h
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
102 * adds UcxArray data type
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
103 * adds support for CMake builds, but main build system is still autotools
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
104
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
105 Version 2.0 - 2018-12-28
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
106 ------------------------
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
107
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
108 * some uncritical bug fixes
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
109 * overflow of sstrnlen now returns SIZE_MAX instead of zero
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
110 * adds scstr_t - a const char* variant for sstr_t
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
111 * renames utility compare functions
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
112
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
113 Version 1.1 - 2018-05-14
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
114 ------------------------
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
115
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
116 * adds missing 32 bit support to integer overflow checks
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
117 * adds ucx_buffer_to_sstr() macro
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
118 * adds ucx_avl_free_content()
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
119 * adds some more compare and distance functions in utils.h
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
120 * adds SFMT() and PRIsstr convenience macros
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
121 * destructor functions for *_free_content() functions are now optional
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
122
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
123 Version 1.0.1 - 2018-01-21
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
124 --------------------------
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
125
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
126 * some bug fixes
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
127 * adds integer overflow checks
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
128
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
129 Version 1.0 - 2017-10-28
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
130 ------------------------
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
131
f5421bb2c8d1 adds CHANGELOG
Mike Becker <universe@uap-core.de>
parents:
diff changeset
132 * first stable version of UCX released

mercurial