changelog
    
    
    - Thu, 30 Oct 2025 19:27:18 +0100
- by Mike Becker <universe@uap-core.de> [Thu, 30 Oct 2025 19:27:18 +0100] rev 1463
- fix typo bug in cxListDifference() - resolves #745
    - Thu, 30 Oct 2025 19:26:47 +0100
- by Mike Becker <universe@uap-core.de> [Thu, 30 Oct 2025 19:26:47 +0100] rev 1462
- add tests for cxListDifference() - resolves #751
    - Tue, 28 Oct 2025 22:09:55 +0100
- by Mike Becker <universe@uap-core.de> [Tue, 28 Oct 2025 22:09:55 +0100] rev 1461
- remove mingw support (we have MSVC support) + fix regression on macos platform
    - Tue, 28 Oct 2025 21:46:37 +0100
- by Mike Becker <universe@uap-core.de> [Tue, 28 Oct 2025 21:46:37 +0100] rev 1460
- add support for multiple parallel versions of ucx
    - Tue, 28 Oct 2025 21:33:24 +0100
- by Mike Becker <universe@uap-core.de> [Tue, 28 Oct 2025 21:33:24 +0100] rev 1459
- remove *.pc attribute that might cause compatibility issues
    - Tue, 28 Oct 2025 21:24:49 +0100
- by Mike Becker <universe@uap-core.de> [Tue, 28 Oct 2025 21:24:49 +0100] rev 1458
- protect against possible spaces in the paths
    - Tue, 28 Oct 2025 21:22:06 +0100
- by Mike Becker <universe@uap-core.de> [Tue, 28 Oct 2025 21:22:06 +0100] rev 1457
- add pkgconf support
    - Tue, 28 Oct 2025 19:22:56 +0100
- by Mike Becker <universe@uap-core.de> [Tue, 28 Oct 2025 19:22:56 +0100] rev 1456
- ucx 3.2 is not binary compatible - increase the LIBVERSION
    - Tue, 28 Oct 2025 19:19:17 +0100
- by Mike Becker <universe@uap-core.de> [Tue, 28 Oct 2025 19:19:17 +0100] rev 1455
- fix that the symlinks for the libraries are not relative
    - Sun, 26 Oct 2025 16:23:36 +0100
- by Mike Becker <universe@uap-core.de> [Sun, 26 Oct 2025 16:23:36 +0100] rev 1454
- cxListDifference() sets the sorted flag if it can guarantee that
 
 relates to #745
    - Sun, 26 Oct 2025 16:16:43 +0100
- by Mike Becker <universe@uap-core.de> [Sun, 26 Oct 2025 16:16:43 +0100] rev 1453
- add implementation for cxListDifference() - issue #745
    - Sun, 26 Oct 2025 15:51:49 +0100
- by Mike Becker <universe@uap-core.de> [Sun, 26 Oct 2025 15:51:49 +0100] rev 1452
- continue to fix warnings on certain compilers due to implicit cast from fptr to bool
    - Sun, 26 Oct 2025 15:46:55 +0100
- by Mike Becker <universe@uap-core.de> [Sun, 26 Oct 2025 15:46:55 +0100] rev 1451
- fix warnings on certain compilers due to implicit cast from fptr to bool
    - Sun, 26 Oct 2025 13:08:42 +0100
- by Mike Becker <universe@uap-core.de> [Sun, 26 Oct 2025 13:08:42 +0100] rev 1450
- add more test coverage for new map functions and fixes some issues
 
 the "what if dst already contains a key" part did not really work
 plus the cxMapListDifference() did not fallback to a default allocator
 
 really resolves #746
    - Sun, 26 Oct 2025 12:50:43 +0100
- by Mike Becker <universe@uap-core.de> [Sun, 26 Oct 2025 12:50:43 +0100] rev 1449
- simplify clone implementations
    - Sun, 26 Oct 2025 12:44:33 +0100
- by Mike Becker <universe@uap-core.de> [Sun, 26 Oct 2025 12:44:33 +0100] rev 1448
- add tests for cxMapDifference() and cxMapListDifference()
 
 resolves #746
    - Sun, 26 Oct 2025 12:01:28 +0100
- by Mike Becker <universe@uap-core.de> [Sun, 26 Oct 2025 12:01:28 +0100] rev 1447
- add documentation for cxMapDifference() and cxMapListDifference()
 
 relates to #746
    - Sun, 26 Oct 2025 11:50:33 +0100
- by Mike Becker <universe@uap-core.de> [Sun, 26 Oct 2025 11:50:33 +0100] rev 1446
- default NULL allocator to cxDefaultAllocator
    - Sat, 25 Oct 2025 21:33:56 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 25 Oct 2025 21:33:56 +0200] rev 1445
- add implementations for map difference
 
 relates to #746
    - Sat, 25 Oct 2025 21:12:59 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 25 Oct 2025 21:12:59 +0200] rev 1444
- make clone functions return int instead of size_t
 
 relates to #743
 relates to #744
    - Fri, 24 Oct 2025 21:15:14 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 24 Oct 2025 21:15:14 +0200] rev 1443
- add test coverage for allocation failures in clone-function
    - Fri, 24 Oct 2025 20:52:10 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 24 Oct 2025 20:52:10 +0200] rev 1442
- fix hash map not being able to deal with 64-bit hashes
    - Thu, 23 Oct 2025 17:54:17 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 23 Oct 2025 17:54:17 +0200] rev 1441
- add documentation for cxListClone() - relates to #744
    - Thu, 23 Oct 2025 17:50:28 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 23 Oct 2025 17:50:28 +0200] rev 1440
- add documentation for cxMapClone() - resolves #743
    - Thu, 23 Oct 2025 17:38:44 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 23 Oct 2025 17:38:44 +0200] rev 1439
- add tests for cxMapClone() - relates to #743
    - Wed, 22 Oct 2025 23:32:20 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 22 Oct 2025 23:32:20 +0200] rev 1438
- add destruction of uninitialized entries on allocation failure to cxMapClone() - relates to #743
    - Wed, 22 Oct 2025 23:28:07 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 22 Oct 2025 23:28:07 +0200] rev 1437
- untested draft of cxMapClone() - relates to #743
    - Tue, 21 Oct 2025 17:06:17 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 21 Oct 2025 17:06:17 +0200] rev 1436
- add cxListClone() - resolves #744 except for test coverage
    - Mon, 20 Oct 2025 20:38:02 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 20 Oct 2025 20:38:02 +0200] rev 1435
- fix accidental additions of unnecessary unistd.h includes
    - Mon, 20 Oct 2025 20:37:45 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 20 Oct 2025 20:37:45 +0200] rev 1434
- fix overlooked renaming of cx_attr_export to CX_EXPORT
    - Mon, 20 Oct 2025 20:10:36 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 20 Oct 2025 20:10:36 +0200] rev 1433
- add cxListEmplaceArray() and cxListEmplaceArrayAt() as preparation for the clone implementation
    - Mon, 20 Oct 2025 19:44:18 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 20 Oct 2025 19:44:18 +0200] rev 1432
- add possibility to wrap valid function of an iterator (just for the sake of completeness)
    - Sun, 19 Oct 2025 21:18:17 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 19 Oct 2025 21:18:17 +0200] rev 1431
- define the function pointer for clone functions
 
 relates to #743 and issue #744
    - Fri, 17 Oct 2025 21:03:11 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 17 Oct 2025 21:03:11 +0200] rev 1430
- minor wording improvements in buffer documentation
    - Fri, 17 Oct 2025 16:53:24 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 17 Oct 2025 16:53:24 +0200] rev 1429
- remove the concept of "mutating iterators" - resolves #579
    - Fri, 17 Oct 2025 15:04:56 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 17 Oct 2025 15:04:56 +0200] rev 1428
- add support for non-sorted lists in cxListInsertUnique() and cxListInsertUniqueArray()
 
 relates to #557
    - Fri, 17 Oct 2025 14:14:21 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 17 Oct 2025 14:14:21 +0200] rev 1427
- make cxCollectionSorted() always return true for empty collections regardless of the sorted flag
    - Thu, 16 Oct 2025 19:57:47 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 16 Oct 2025 19:57:47 +0200] rev 1426
- clean up header files and adds support for comparing arbitrary strings with string.h functions
    - Wed, 15 Oct 2025 22:45:21 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 15 Oct 2025 22:45:21 +0200] rev 1425
- remove unnecessary members from the array reallocator struct - fixes #621
    - Sun, 12 Oct 2025 20:21:56 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 12 Oct 2025 20:21:56 +0200] rev 1424
- fixes tons of typos and grammar issues across the documentation - fixes #667
    - Sat, 11 Oct 2025 15:42:48 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 11 Oct 2025 15:42:48 +0200] rev 1423
- fixes various bugs related to skipping duplicates in insert_unique - relates to #557
    - Sat, 11 Oct 2025 11:55:46 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 11 Oct 2025 11:55:46 +0200] rev 1422
- changes the compare function wrapper for pointer lists so that it no longer invokes the actual compare function for NULL pointers
    - Fri, 10 Oct 2025 19:40:24 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 10 Oct 2025 19:40:24 +0200] rev 1421
- fix missing documentation if insert_unique member - relates to #557
    - Fri, 10 Oct 2025 19:35:25 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 10 Oct 2025 19:35:25 +0200] rev 1420
- fix various typos in the web documentation
    - Fri, 10 Oct 2025 17:24:19 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 10 Oct 2025 17:24:19 +0200] rev 1419
- add functions to insert elements into lists/arrays without duplicates - resolves #557
    - Fri, 10 Oct 2025 12:26:43 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 10 Oct 2025 12:26:43 +0200] rev 1418
- assert instead of assume sorted property in debug builds
    - Wed, 08 Oct 2025 20:20:54 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 08 Oct 2025 20:20:54 +0200] rev 1417
- replace all remaining generics with cx_strcast() - resolves #700
    - Wed, 08 Oct 2025 20:09:32 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 08 Oct 2025 20:09:32 +0200] rev 1416
- add unsigned char strings to cx_strcast() and changes documentation
 
 also relates to #700
    - Fri, 03 Oct 2025 18:58:44 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 03 Oct 2025 18:58:44 +0200] rev 1415
- go back to ctype.h, but this time try to avoid crashes in Microsoft's implementation
    - Thu, 02 Oct 2025 21:31:52 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 02 Oct 2025 21:31:52 +0200] rev 1414
- missing custom CFLAGS when testing for memrchr availability
    - Thu, 02 Oct 2025 21:21:45 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 02 Oct 2025 21:21:45 +0200] rev 1413
- improve feature test for memrchr() making it also available on BSD
    - Thu, 02 Oct 2025 17:58:43 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 02 Oct 2025 17:58:43 +0200] rev 1412
- use memrchr() to implement cx_strrchr() when it is available
    - Wed, 01 Oct 2025 22:45:48 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 01 Oct 2025 22:45:48 +0200] rev 1411
- fixes regression: missing closing brace in map.h in c++ builds
 
 relates to #731
    - Wed, 01 Oct 2025 22:43:48 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 01 Oct 2025 22:43:48 +0200] rev 1410
- resolve TODO: test C23 base-2 literals
    - Tue, 30 Sep 2025 22:35:24 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 30 Sep 2025 22:35:24 +0200] rev 1409
- finalize the documentation on the new hash key features
 
 resolves #731
    - Tue, 30 Sep 2025 22:29:54 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 30 Sep 2025 22:29:54 +0200] rev 1408
- change map.h to use new CX_HASH_KEY macro
 
 relates to #731
    - Tue, 30 Sep 2025 22:21:41 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 30 Sep 2025 22:21:41 +0200] rev 1407
- add missing docstrings
    - Tue, 30 Sep 2025 20:29:55 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 30 Sep 2025 20:29:55 +0200] rev 1406
- change kv-list to use new CX_HASH_KEY macro
 
 relates to #731
    - Mon, 29 Sep 2025 23:31:59 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 29 Sep 2025 23:31:59 +0200] rev 1405
- fix using empty initializer, which is a C23 extension
    - Mon, 29 Sep 2025 23:28:46 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 29 Sep 2025 23:28:46 +0200] rev 1404
- fix cxKvListSetKey() and cxKvListRemoveKey() accidentally not declared for C++
 
 relates to #461
    - Mon, 29 Sep 2025 23:25:31 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 29 Sep 2025 23:25:31 +0200] rev 1403
- add C++ implementation of CX_HASH_KEY()
 
 relates to #731
    - Sun, 28 Sep 2025 22:32:42 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 28 Sep 2025 22:32:42 +0200] rev 1402
- add generic CX_HASH_KEY() macro
 
 relates to #731
    - Sat, 27 Sep 2025 17:53:41 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 27 Sep 2025 17:53:41 +0200] rev 1401
- add changelog entries for issue #720
    - Sat, 27 Sep 2025 17:49:13 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 27 Sep 2025 17:49:13 +0200] rev 1400
- add support for integer keys - resolves #720
    - Sat, 27 Sep 2025 17:47:10 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 27 Sep 2025 17:47:10 +0200] rev 1399
- add size_t compare functions
    - Sat, 27 Sep 2025 17:03:35 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 27 Sep 2025 17:03:35 +0200] rev 1398
- simplify hash map iterator - resolves #727
    - Fri, 26 Sep 2025 22:43:17 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 26 Sep 2025 22:43:17 +0200] rev 1397
- fix cx_kvl_map_put() returning the wrong pointer
 
 relates to #461
    - Thu, 25 Sep 2025 14:49:48 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 25 Sep 2025 14:49:48 +0200] rev 1396
- add kv-list files to MSVC project files
 
 resolves #461 for MSVC
    - Thu, 25 Sep 2025 14:49:26 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 25 Sep 2025 14:49:26 +0200] rev 1395
- fix initialization of cxDefaultAllocator for MSVC
    - Thu, 25 Sep 2025 14:30:28 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 25 Sep 2025 14:30:28 +0200] rev 1394
- add cxKvListGetKey()
 
 resolves #461
    - Wed, 24 Sep 2025 23:52:36 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 24 Sep 2025 23:52:36 +0200] rev 1393
- fix that cxKvListInsert() did not lose the sorted property
 
 relates to #461
    - Wed, 24 Sep 2025 23:51:04 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 24 Sep 2025 23:51:04 +0200] rev 1392
- remove unused old cx_kv_list_remove_key() prototype
    - Wed, 24 Sep 2025 23:50:41 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 24 Sep 2025 23:50:41 +0200] rev 1391
- fix typo in CHANGELOG
    - Wed, 24 Sep 2025 23:50:15 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 24 Sep 2025 23:50:15 +0200] rev 1390
- kv-list: add documentation
 
 relates to #461
    - Tue, 23 Sep 2025 20:31:50 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 23 Sep 2025 20:31:50 +0200] rev 1389
- kv-list: completes test coverage
 
 relates to #461
    - Tue, 23 Sep 2025 20:19:31 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 23 Sep 2025 20:19:31 +0200] rev 1388
- add tests for creating iterators with NULL lists or maps
    - Mon, 22 Sep 2025 19:22:23 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 22 Sep 2025 19:22:23 +0200] rev 1387
- the elem_count member of an iterator was not updated after removing an element flagged by cxIteratorFlagRemoval() - fixes #728
    - Sun, 21 Sep 2025 19:31:30 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 21 Sep 2025 19:31:30 +0200] rev 1386
- kv-list: implement mutating iterator support
 
 relates to #461
    - Sun, 21 Sep 2025 18:42:18 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 21 Sep 2025 18:42:18 +0200] rev 1385
- add changelog entry
 
 relates to #461
    - Sat, 20 Sep 2025 18:34:15 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 20 Sep 2025 18:34:15 +0200] rev 1384
- implement non-mutating iterator
 
 relates to #461
    - Sat, 20 Sep 2025 12:30:07 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 20 Sep 2025 12:30:07 +0200] rev 1383
- allow setting the key again on the same node
 
 relates to #461
    - Sat, 20 Sep 2025 12:27:36 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 20 Sep 2025 12:27:36 +0200] rev 1382
- disallow setting a key that already exists
 
 relates to #461
    - Sat, 20 Sep 2025 12:19:49 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 20 Sep 2025 12:19:49 +0200] rev 1381
- consider the edge case that either list or map operation fails when adding an element
 
 relates to #461
    - Fri, 19 Sep 2025 16:05:41 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 19 Sep 2025 16:05:41 +0200] rev 1380
- increase test coverage for kv-list
 
 relates to #461
    - Thu, 18 Sep 2025 00:40:27 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 18 Sep 2025 00:40:27 +0200] rev 1379
- improve cx_kv_list_insert() by using low level access to the list method
 
 relates to #461
    - Thu, 18 Sep 2025 00:36:42 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 18 Sep 2025 00:36:42 +0200] rev 1378
- implement cx_kv_list_insert()
 
 relates to #461
    - Wed, 17 Sep 2025 22:45:00 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 17 Sep 2025 22:45:00 +0200] rev 1377
- implement cxKvListRemoveKey()
 
 relates to #461
    - Tue, 16 Sep 2025 22:32:23 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 16 Sep 2025 22:32:23 +0200] rev 1376
- add error handling to cx_kv_list_set_key()
 
 relates to #461
    - Sat, 13 Sep 2025 20:57:59 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 13 Sep 2025 20:57:59 +0200] rev 1375
- implement cx_kvl_find_remove()
 
 relates to #461
    - Sat, 13 Sep 2025 20:55:56 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 13 Sep 2025 20:55:56 +0200] rev 1374
- fix documentation of return value of cx_linked_list_find()
    - Fri, 12 Sep 2025 16:56:04 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 12 Sep 2025 16:56:04 +0200] rev 1373
- make cx_kvl_remove() also remove the keys from the map
 
 relates to #461
    - Thu, 11 Sep 2025 20:17:43 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 11 Sep 2025 20:17:43 +0200] rev 1372
- kv-list: remove obsolete TODOs and add a test case to prove it
 
 relates to #461
    - Thu, 11 Sep 2025 20:10:12 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 11 Sep 2025 20:10:12 +0200] rev 1371
- kv-list: fix a possible source of UB when allocation fails during list creation
 
 relates to #461
    - Thu, 11 Sep 2025 20:09:33 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 11 Sep 2025 20:09:33 +0200] rev 1370
- kv-list: fix support for CX_STORE_POINTERS when using the map interface
 
 relates to #461
    - Thu, 11 Sep 2025 19:59:49 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 11 Sep 2025 19:59:49 +0200] rev 1369
- remove now unused destructor wrapper
 
 relates to #461
    - Wed, 10 Sep 2025 19:15:58 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 10 Sep 2025 19:15:58 +0200] rev 1368
- change kv-list destructor strategy to only use the list destructors
 
 relates to #461
    - Tue, 09 Sep 2025 22:30:18 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 09 Sep 2025 22:30:18 +0200] rev 1367
- change linked_list.c to allow custom data in nodes + implement cx_kv_list_set_key()
 
 relates to #461
    - Mon, 08 Sep 2025 22:48:48 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 08 Sep 2025 22:48:48 +0200] rev 1366
- add failing test case test_kv_list_set_key()
 
 relates to #461
    - Sun, 07 Sep 2025 17:08:26 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 07 Sep 2025 17:08:26 +0200] rev 1365
- implement a patch function that results in (almost) always calling the correct destructors
 
 relates to #461
    - Sat, 06 Sep 2025 11:57:17 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 06 Sep 2025 11:57:17 +0200] rev 1364
- fix that the fallthrough attributes were not abstracted by the cx_attr macros
    - Wed, 03 Sep 2025 23:10:36 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 03 Sep 2025 23:10:36 +0200] rev 1363
- add failing tests for when clear/remove are called with destructors in the "opposite" aspect of a kv-list
 
 relates to #461
    - Wed, 03 Sep 2025 22:59:09 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 03 Sep 2025 22:59:09 +0200] rev 1362
- add several fixme and todo comments regarding invoking destructors
 
 relates to #461
    - Wed, 03 Sep 2025 22:52:20 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 03 Sep 2025 22:52:20 +0200] rev 1361
- implement support for registering destructors to a kv-list using its map aspect
 
 relates to #461
    - Tue, 02 Sep 2025 21:12:51 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 02 Sep 2025 21:12:51 +0200] rev 1360
- implement cx_kvl_map_remove()
 
 relates to #461
    - Tue, 02 Sep 2025 20:26:10 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 02 Sep 2025 20:26:10 +0200] rev 1359
- add test_kv_list_map_remove()
 
 relates to #461
    - Mon, 01 Sep 2025 20:20:12 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 01 Sep 2025 20:20:12 +0200] rev 1358
- make test_kv_list_map_put() pass
 
 relates to #461
    - Sun, 31 Aug 2025 13:37:00 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 31 Aug 2025 13:37:00 +0200] rev 1357
- add failing test case for inserting into kv-list via map
 
 relates to #461
    - Sat, 30 Aug 2025 13:37:00 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 30 Aug 2025 13:37:00 +0200] rev 1356
- add missing attributes to generic implementations
 
 relates to #461
    - Fri, 29 Aug 2025 13:37:00 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 29 Aug 2025 13:37:00 +0200] rev 1355
- fix broken C++ build
 
 relates to #461
    - Thu, 28 Aug 2025 13:37:00 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 28 Aug 2025 13:37:00 +0200] rev 1354
- fix wrong position of cstr argument in attribute
 
 relates to #461
    - Wed, 27 Aug 2025 23:24:11 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 27 Aug 2025 23:24:11 +0200] rev 1353
- fix that the wrong vtable is patched when CX_STORE_POINTERS is used
 
 relates to #461
    - Wed, 27 Aug 2025 23:13:53 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 27 Aug 2025 23:13:53 +0200] rev 1352
- make comparisons between kv_list and linked_list optimizable
 
 relates to #461
    - Wed, 27 Aug 2025 23:07:39 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 27 Aug 2025 23:07:39 +0200] rev 1351
- fix some grammar and wording issues
    - Tue, 26 Aug 2025 21:55:19 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 26 Aug 2025 21:55:19 +0200] rev 1350
- implement kv-list to a point where it correctly behaves like a list
 
 that means no lookup-map aspects are implemented just yet
 
 relates to #461
    - Tue, 26 Aug 2025 21:14:17 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 26 Aug 2025 21:14:17 +0200] rev 1349
- remove overlooked unnecessary attribute
    - Mon, 25 Aug 2025 21:47:45 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 25 Aug 2025 21:47:45 +0200] rev 1348
- roll out the function stubs for the kv-list
 
 relates to #461
    - Sun, 24 Aug 2025 17:11:53 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 24 Aug 2025 17:11:53 +0200] rev 1347
- create a header file for the new key-value-lists
 
 kick-off for issue #461
    - Mon, 18 Aug 2025 23:10:26 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 18 Aug 2025 23:10:26 +0200] rev 1346
- remove obsolete attributes
    - Mon, 18 Aug 2025 23:08:56 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 18 Aug 2025 23:08:56 +0200] rev 1345
- fix that the support for NULL when creating mutating iterators was  broken
    - Mon, 18 Aug 2025 23:06:27 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 18 Aug 2025 23:06:27 +0200] rev 1344
- add support for NULL in map iterators
    - Mon, 18 Aug 2025 23:00:55 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 18 Aug 2025 23:00:55 +0200] rev 1343
- also support NULL in index-based iterator generating functions
    - Sun, 17 Aug 2025 23:10:25 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 17 Aug 2025 23:10:25 +0200] rev 1342
- fix the documentation regarding member function that now support emplace-mechanics
    - Sun, 17 Aug 2025 23:05:16 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 17 Aug 2025 23:05:16 +0200] rev 1341
- add cxMapEmplace()
    - Fri, 15 Aug 2025 17:46:47 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 15 Aug 2025 17:46:47 +0200] rev 1340
- prepare index comparison for potential changes to binary search results
    - Fri, 15 Aug 2025 17:44:19 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 15 Aug 2025 17:44:19 +0200] rev 1339
- add documentation for cxJsonArrRemove() and cxJsonObjRemove()
 
 resolves #627
    - Fri, 15 Aug 2025 17:42:01 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 15 Aug 2025 17:42:01 +0200] rev 1338
- add cxJsonObjRemove() #627
    - Thu, 14 Aug 2025 23:03:01 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 14 Aug 2025 23:03:01 +0200] rev 1337
- add cxJsonArrayRemove()
 
 first part of issue #627
    - Sat, 19 Jul 2025 21:09:07 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 19 Jul 2025 21:09:07 +0200] rev 1336
- fix incorrect memcpy() in cxMempoolTransfer()
    - Sun, 15 Jun 2025 18:40:31 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 15 Jun 2025 18:40:31 +0200] rev 1335
- update uwproj - adds libdir detection w/o config.site
    - Sun, 01 Jun 2025 16:00:16 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 01 Jun 2025 16:00:16 +0200] rev 1334
- allow NULL for creating UCX strings - resolves #683
    - Tue, 27 May 2025 22:31:06 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 27 May 2025 22:31:06 +0200] rev 1333
- merge remote tracking changes
    - Tue, 27 May 2025 22:23:33 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 27 May 2025 22:23:33 +0200] rev 1332
- add support for C-strings in cx_strcast() - resolves #549
    - Tue, 27 May 2025 22:23:06 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 27 May 2025 22:23:06 +0200] rev 1331
- apply latest uwproj fixes
    - Sat, 24 May 2025 00:04:11 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 24 May 2025 00:04:11 +0200] rev 1330
- implement zalloc() - resolves #679
    - Fri, 23 May 2025 14:00:24 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 23 May 2025 14:00:24 +0200] rev 1329
- add base allocator to mempool
 
 otherwise, mempools could not be used as
 new default allocators
    - Fri, 23 May 2025 13:36:11 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 23 May 2025 13:36:11 +0200] rev 1328
- stabilizes mempool implementation
 
 resolves #676
 fixes #677
 fixes #678
    - Fri, 23 May 2025 12:44:24 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 23 May 2025 12:44:24 +0200] rev 1327
- 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
    - Fri, 23 May 2025 11:44:44 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 23 May 2025 11:44:44 +0200] rev 1326
- fix test coverage for cxStdlibAllocator
    - Thu, 22 May 2025 22:22:14 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 22 May 2025 22:22:14 +0200] rev 1325
- improve mempool destructor support (3/3)
 
 documentation and final fixes
 
 resolves #655
    - Thu, 22 May 2025 21:00:33 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 22 May 2025 21:00:33 +0200] rev 1324
- improve mempool destructor support (2/3)
 
 implement new behavior
 
 issue #655
    - Thu, 22 May 2025 16:25:32 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 22 May 2025 16:25:32 +0200] rev 1323
- improve mempool destructor support (1/3)
 
 refactoring while keeping old behavior
 
 issue #655
    - Thu, 22 May 2025 16:23:55 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 22 May 2025 16:23:55 +0200] rev 1322
- fix critical memory overflow in the stack-based array reallocator
    - Thu, 22 May 2025 16:03:20 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 22 May 2025 16:03:20 +0200] rev 1321
- fix stack buffer overflow in arl_swap_no_sbo test
    - Thu, 22 May 2025 15:48:00 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 22 May 2025 15:48:00 +0200] rev 1320
- add an option to enable address sanitizer
    - Thu, 15 May 2025 16:12:09 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 15 May 2025 16:12:09 +0200] rev 1319
- add convenience macros for using the default allocator - relates to #669
    - Thu, 15 May 2025 16:02:54 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 15 May 2025 16:02:54 +0200] rev 1318
- allow changing the cxDefaultAllocator - resolves #669
    - Thu, 15 May 2025 15:43:30 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 15 May 2025 15:43:30 +0200] rev 1317
- fix that testing allocator is counting free(NULL)
    - Sun, 04 May 2025 17:22:30 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 04 May 2025 17:22:30 +0200] rev 1316
- add cxListEmplace() and cxListEmplaceAt() plus some improvements to the array list implementation
 
 resolves #665
    - Sun, 04 May 2025 12:15:03 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 04 May 2025 12:15:03 +0200] rev 1315
- add convenience functions for easy access to first/last element of a list
 
 resolves #666
    - Sun, 04 May 2025 11:46:13 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 04 May 2025 11:46:13 +0200] rev 1314
- critical: fixes uninitialized memory in tree iterator
 
 regression relates to #632
    - Sun, 04 May 2025 11:30:10 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 04 May 2025 11:30:10 +0200] rev 1313
- fix copy/paste documentation
    - Sun, 04 May 2025 11:29:46 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 04 May 2025 11:29:46 +0200] rev 1312
- remove unused file
    - Sat, 03 May 2025 13:29:22 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 03 May 2025 13:29:22 +0200] rev 1311
- fix wrong flags in toolchain.mk files after updating uwproj
    - Fri, 02 May 2025 19:26:47 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 02 May 2025 19:26:47 +0200] rev 1310
- update uwproj
    - Sun, 27 Apr 2025 12:56:05 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 27 Apr 2025 12:56:05 +0200] rev 1309
- fix that iteration continued with siblings for a subtree-root - fixes #656
    - Sun, 27 Apr 2025 12:54:16 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 27 Apr 2025 12:54:16 +0200] rev 1308
- add explanation of depth to the iterator/visitor field
    - Sun, 27 Apr 2025 12:37:29 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 27 Apr 2025 12:37:29 +0200] rev 1307
- add a test case that proves that visitors are not affected by issue #656
    - Sat, 26 Apr 2025 19:37:24 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 26 Apr 2025 19:37:24 +0200] rev 1306
- add test case that shows issue #656
    - Sun, 20 Apr 2025 10:41:25 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 20 Apr 2025 10:41:25 +0200] rev 1305
- some cxListIterator() variants now also allow NULL lists
    - Sat, 19 Apr 2025 14:43:16 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 19 Apr 2025 14:43:16 +0200] rev 1304
- adds cx_strcpy() and cx_strcpy_a()
    - Sat, 19 Apr 2025 11:36:53 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 19 Apr 2025 11:36:53 +0200] rev 1303
- C23 is not a preview any longer
    - Sat, 19 Apr 2025 11:35:56 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 19 Apr 2025 11:35:56 +0200] rev 1302
- fix unnecessary explicit zero-terminator
    - Sat, 19 Apr 2025 11:33:15 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 19 Apr 2025 11:33:15 +0200] rev 1301
- fix code not compiling with GCC 15
    - Thu, 17 Apr 2025 21:45:01 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 17 Apr 2025 21:45:01 +0200] rev 1300
- improve cx_strreplacen() - resolves #623
    - Thu, 17 Apr 2025 20:48:29 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 17 Apr 2025 20:48:29 +0200] rev 1299
- fix theoretical (but not actual) use-after-free
    - Thu, 17 Apr 2025 20:47:43 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 17 Apr 2025 20:47:43 +0200] rev 1298
- use new string formatting macros in documentation
    - Wed, 16 Apr 2025 20:35:34 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 16 Apr 2025 20:35:34 +0200] rev 1297
- bring back CX_PRIstr and CX_SFMT macros - resolves #612
    - Tue, 15 Apr 2025 22:16:05 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 15 Apr 2025 22:16:05 +0200] rev 1296
- fixes unnecessary allocations in cx_strcat() family of functions
 
 fixes #604
    - Mon, 14 Apr 2025 19:53:20 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 14 Apr 2025 19:53:20 +0200] rev 1295
- add cxTreeSize() - resolves #624
    - Mon, 14 Apr 2025 19:36:43 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 14 Apr 2025 19:36:43 +0200] rev 1294
- add test and documentation for cxListContains() - fixes #643
    - Sun, 13 Apr 2025 18:01:29 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 13 Apr 2025 18:01:29 +0200] rev 1293
- adds cxListContains() implementation (still needs test and docu)
    - Sun, 13 Apr 2025 14:56:05 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 13 Apr 2025 14:56:05 +0200] rev 1292
- add windows support for new buffer auto-extend strategy - relates to #641
    - Sun, 13 Apr 2025 14:30:51 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 13 Apr 2025 14:30:51 +0200] rev 1291
- new auto-extend strategy for CxBuffer - resolves #641
    - Sun, 13 Apr 2025 13:02:54 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 13 Apr 2025 13:02:54 +0200] rev 1290
- adds cxBufferShrink() - resolves #626
    - Sun, 13 Apr 2025 12:30:18 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 13 Apr 2025 12:30:18 +0200] rev 1289
- fixes missing cx_attr_export - relates to #642
    - Sun, 13 Apr 2025 11:54:10 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 13 Apr 2025 11:54:10 +0200] rev 1288
- fixes errno value after failing cxBufferSeek() to be consistently EINVAL
 
 fixes #628
    - Sun, 13 Apr 2025 11:09:05 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 13 Apr 2025 11:09:05 +0200] rev 1287
- adds cxListSet() - resolves #642
    - Sat, 12 Apr 2025 21:32:31 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 12 Apr 2025 21:32:31 +0200] rev 1286
- fixes that cx_tree_search() did not investigate subtrees with equally good distance
 
 fixes #632
    - Fri, 11 Apr 2025 16:48:58 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 11 Apr 2025 16:48:58 +0200] rev 1285
- fix allocator of some printf.h functions not being const - fixes #611
    - Fri, 11 Apr 2025 16:45:20 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 11 Apr 2025 16:45:20 +0200] rev 1284
- fix implementation of cxBufferTerminate() - fixes #631
    - Fri, 11 Apr 2025 15:12:20 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 11 Apr 2025 15:12:20 +0200] rev 1283
- add cxMempoolTransferObject() - resolves #640
    - Fri, 11 Apr 2025 14:49:23 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 11 Apr 2025 14:49:23 +0200] rev 1282
- remove warning regarding destruction order, because it is actually not a problem
 
 relates to #640
    - Fri, 11 Apr 2025 13:20:07 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 11 Apr 2025 13:20:07 +0200] rev 1281
- add cxMempoolTransfer() - partially resolves #640
    - Fri, 11 Apr 2025 09:15:21 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 11 Apr 2025 09:15:21 +0200] rev 1280
- start development of UCX 3.2
    - Fri, 11 Apr 2025 09:11:02 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 11 Apr 2025 09:11:02 +0200] rev 1279
- Added tag v3.1 for changeset 18a1a499f065
    - Fri, 11 Apr 2025 09:10:51 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 11 Apr 2025 09:10:51 +0200] rev 1278
- Removed tag v3.1
    - Sun, 06 Apr 2025 13:21:17 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 06 Apr 2025 13:21:17 +0200] rev 1277
- fixes some docs compiler complaints
    - Sun, 06 Apr 2025 13:13:52 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 06 Apr 2025 13:13:52 +0200] rev 1276
- add buffer example
 
 this fucking completes issue #451
    - Sun, 06 Apr 2025 12:38:40 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 06 Apr 2025 12:38:40 +0200] rev 1275
- complete tree documentation
 
 relates to #451
    - Sat, 05 Apr 2025 14:18:37 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 05 Apr 2025 14:18:37 +0200] rev 1274
- add example for implementing own map
 
 relates to #451
    - Fri, 04 Apr 2025 18:02:35 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 04 Apr 2025 18:02:35 +0200] rev 1273
- document tree search functions
 
 relates to #451
    - Fri, 04 Apr 2025 00:10:08 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 04 Apr 2025 00:10:08 +0200] rev 1272
- refine parts of the tree documentation
 
 relates to #451