| 17  * changes the name of destroy functions that actually free the memory to better indicate their behavior | 18  * changes the name of destroy functions that actually free the memory to better indicate their behavior | 
| 18  * moves cx_compare_func typedef to compare.h | 19  * moves cx_compare_func typedef to compare.h | 
| 19  * moves cx_szmul() to common.h | 20  * moves cx_szmul() to common.h | 
| 20  * moves stream copy functions to new streams.h | 21  * moves stream copy functions to new streams.h | 
| 21  * removes utils.h | 22  * removes utils.h | 
| 22  * removes flag_removal function from iterator (unfortunately breaks binary compatibility) | 23  * removes flag_removal function from iterator | 
|  | 24  * removes cxMapDetach() and makes cxMapRemoveAndGet() compatible with both map variants | 
| 23  * removes CMake | 25  * removes CMake | 
| 24  * removes GTest dependency | 26  * removes GTest dependency | 
| 25  * removes flags to disable SBO in tests | 27  * removes flags to disable SBO in tests | 
| 26  * fixes wrong link from UCX 2 documentation to UCX 3 documentation | 28  * fixes wrong link from UCX 2 documentation to UCX 3 documentation | 
| 27  * fixes critical bug that produced wrong results when comparing lists of different type but same size | 29  * fixes critical bug that produced wrong results when comparing lists of different type but same size | 
| 28 | 30 | 
| 29 Version 3.0 - 2023-07-09 | 31 Version 3.0 - 2023-07-09 | 
| 30 ------------------------ | 32 ------------------------ | 
|  | 33 | 
| 31  * complete redesign from scratch | 34  * complete redesign from scratch | 
| 32  * collections can now store copies of objects and not just pointers | 35  * collections can now store copies of objects and not just pointers | 
| 33  * collections are now dynamically implemented | 36  * collections are now dynamically implemented | 
| 34  * users of the library can specify own implementations of collections that work with the UCX API | 37  * users of the library can specify own implementations of collections that work with the UCX API | 
| 35  * low level API for custom lists that do not use the UCX structures | 38  * low level API for custom lists that do not use the UCX structures |