261 lines
9.0 KiB
Plaintext
261 lines
9.0 KiB
Plaintext
# RELEASE.MAJOR.MINOR
|
|
|
|
0.26.0
|
|
Complete refactor of the library, using a different approach to code generation
|
|
|
|
0.25.0
|
|
New Project Architecture - Files are no longer separated in folders, but rather prefixed by their sub-library
|
|
Added sac_list.h
|
|
|
|
0.24.0
|
|
A lot of breaking changes, with the library more modular now
|
|
Comeback of PUBLIC and PRIVATE for the CMC sub-library
|
|
Callbacks are now optional and can be turned off by defining CMC_NO_CALLBACKS
|
|
Added EXT library
|
|
New macro CMC_CAMEL_CASE can change the library's style where the default is snake case
|
|
Added:
|
|
./cor/alloc.h
|
|
./cor/callbacks.h
|
|
./cor/heap.h
|
|
Complete rework of tests and code coverage using autogen.py
|
|
Removed cmc_flags, where now every flag is an enum (CMC_FLAGS_OK, CMC_FLAGS_ERROR, etc)
|
|
Different include guards
|
|
New way to generate code using PARAM
|
|
Code now completely changed by using the CMC_ macro to concatenate tokens
|
|
Token concatenation with SNAME now uses special macros that allow customization of the suffixes
|
|
|
|
0.23.1
|
|
Added ./cor/bitset.h
|
|
Added foreach tests
|
|
Updating foreach macros with the new iterators API
|
|
Bug fixes for ./cmc/hashmultiset.h
|
|
|
|
0.23.0
|
|
Added ./cmc/bitset.h
|
|
Added ./cor/flags.h
|
|
Added ./utl/futils.h
|
|
Added ./utl/mutex.h
|
|
Added ./utl/thread.h
|
|
Added cmc_flags_to_str
|
|
Added autogen.py for automated code generation for code coverage
|
|
Changed the iterator API
|
|
Merged ./tests/codecov and ./tests/main
|
|
Renamed ftab_key to fkey and ftab_val to fval
|
|
Renamed collections
|
|
- bidimap -> hashbidimap
|
|
- multimap -> hashmultimap
|
|
- multiset -> hashmultiset
|
|
|
|
-- Versioning restarted for compatibility with SemVer (https://semver.org/)
|
|
|
|
1.8.0 (0.22.0)
|
|
Added Function Tables
|
|
Added Error Codes
|
|
Added Callback Functions
|
|
Added custom allocation functions support
|
|
Added .clang-format
|
|
Added makefile in root folder for automated code formatting
|
|
Created into core folder for implementation of common data structures:
|
|
- ./cor/core.h
|
|
- ./cor/hashtable.h
|
|
Documentation changed to mdbook
|
|
Removed ./utl/cmc_string.h
|
|
Replaced CMC_FOR_EACH and CMC_FOR_EACH_REV by CMC_FOREACH and CMC_FOREACH_REV
|
|
|
|
1.7.3 (0.21.0)
|
|
Breaking changes:
|
|
- ext collections merged to cmc
|
|
- No more typedefs in code generated
|
|
Fast forwarded codecov
|
|
|
|
1.7.2 (0.20.0)
|
|
Added resize function to array based collections
|
|
Added the following functions to hashtable based collections:
|
|
- load
|
|
- full
|
|
Added more assert macros utility
|
|
Added plenty more tests
|
|
Substituted impl_default_value / key by compound literals
|
|
Removed unnecessary conditional input and output functions
|
|
Minor fixes throughout the library
|
|
|
|
1.7.1 (0.19.0)
|
|
Added new assert macro cmc_assert_sorted
|
|
Fixed some include guards for hashtables
|
|
Moved the cmc string format to each file
|
|
Renamed some list functions (sequence input/output)
|
|
Renamed list and linkedlist functions push and pop to push_at and pop_at
|
|
|
|
1.7.0 (0.18.0)
|
|
Removed FMOD (function modifier)
|
|
Added CMC prefix to all macros defined within the library
|
|
|
|
1.6.3 (0.17.0)
|
|
Added iterator functions to all collections:
|
|
- iter_advance
|
|
- iter_rewind
|
|
- iter_go_to
|
|
Added cmc prefix to the logging utility
|
|
Integrated the assert utility with the test utility. Now any assertion that fails inside the unit test will trigger failure and is no longer needed to manually pass or fail tests.
|
|
|
|
1.6.2 (0.16.0)
|
|
Added new functions to all collections:
|
|
- copy_of
|
|
- equals
|
|
Added the new collections to the tests
|
|
Fixed some collections and some improvements to the hashtables
|
|
Unified the functions set and update from the map implementations
|
|
|
|
1.6.1 (0.15.0)
|
|
Removed ./ext/linkedqueue.h
|
|
Added a deallocator parameter to all _free and _clear functions
|
|
|
|
1.6.0 (0.14.0)
|
|
Added ./ext/intervalheap.h
|
|
Added ./ext/multimap.h
|
|
Added ./ext/multiset.h
|
|
Added to_string function to most collections
|
|
Added the cmc prefix to the enum entry_state used by hashtables and to the enum heap_type used by the heap
|
|
Fixed return type on some functions from ./cmc/hashset.h and ./cmc/treeset.h
|
|
Fixed hashtables integer overflow when the capacity is divided by the load factor
|
|
Changed timer.h struct name from timer_t to cmc_timer to prevent name collisions on linux
|
|
|
|
1.5.3 (0.13.0)
|
|
Tests completely reorganized and now with full code coverage
|
|
Some fixes where there was a missing return statement
|
|
Expanded ./utl/assert.h
|
|
|
|
1.5.2 (0.12.0)
|
|
Added ./utl/test.h
|
|
Added ./utl/assert.h
|
|
Added ./tests/list.c - UnitTest for LIST
|
|
Small fixes on ./utl/foreach.h, ./utl/test.h and redone ./utl/timer.h
|
|
Removed ./utl/log.h functions that were unnecessary
|
|
Added the CMC namespace to CONCATC and CONCATH at macro_collections.h
|
|
|
|
1.5.1 (0.11.0)
|
|
New queue benchmark
|
|
Added ./sac/queue.h
|
|
Added ./utl/timer.h
|
|
Fixing descriptions and other minor fixes
|
|
|
|
1.5.0 (0.10.0)
|
|
Changed tests compilation and execution to a single Makefile
|
|
Changed project structure
|
|
./src/
|
|
./cmc/ - Main C Macro Collections Library
|
|
./dev/ - A copy of ./cmc/ used for development (logging utility)
|
|
./ext/ - Extra collections
|
|
./sac/ - Stack Allocated Collections
|
|
./utl/ - Utility like ForEach, logging, etc
|
|
Added ./utl/log.h a logging utility
|
|
Added ./dev/deque.h - A mirror of ./cmc/deque.h but with logging utility
|
|
Added ./ext/linkedqueue.h - A singly-linked list based queue
|
|
Added ./sac/stack.h - A Stack purely allocated on the stack
|
|
|
|
1.4.3 (0.9.0)
|
|
Fixed some functions names
|
|
Added set functions for both Tree and Hash Set
|
|
- is_subset
|
|
- is_proper_subset
|
|
- is_superset
|
|
- is_proper_subset
|
|
- is_disjointset
|
|
|
|
1.4.2 (0.8.0)
|
|
Adapted code so that plain struct type is accepted
|
|
Changed TreeSet max and min to be compatible with the TreeMap and the hash collections
|
|
Changed function modifier of all implementation detail to static
|
|
Fixed some implementation detail functions that were not prefixed with impl
|
|
Added types.c to test if it is possible to compile all the collections' generated code accepting all C data types
|
|
Removed pointertype.c (replaced by types.c)
|
|
|
|
1.4.1 (0.7.0)
|
|
Removed PUBLIC and PRIVATE from the main macro
|
|
Corrected examples and benchmark
|
|
Added new test consisting of compiling the header and source separately
|
|
|
|
1.4.0 (0.6.0)
|
|
New way on how iterators work to all collections
|
|
Added iter_init to work with stack allocated iterators
|
|
Added iter_new and iter_free to work with heap allocated iterators
|
|
Added two pointers to functions (it_start and it_end) that allow you to access iterators to both start and end of the target collection easily
|
|
iter_next and iter_prev now only move the iterator
|
|
To access the key, value and index, use a separate function
|
|
Removed FOR_EACH_MAP as it is no longer necessary since FOR_EACH also works to associative containers now
|
|
Updated benchmark, examples and tests to work on these new iterators
|
|
Changed pointertype test to be a pointer to struct instead of pointer to char
|
|
Added CHANGELOG and TODO
|
|
|
|
1.3.0 (0.5.0)
|
|
Changed how the linkedlist functions relative to nodes work
|
|
Removed reference to owner list on each node
|
|
Renamed some functions for consistency
|
|
|
|
1.2.4 (0.4.1)
|
|
Fixing some declarations in hashset and hashmap where a pointer type would cause problems
|
|
Added a test to make sure all collections support pointer type
|
|
Tests:
|
|
- pointertype
|
|
|
|
1.2.3 (0.4.0)
|
|
Added get_ref functions to all collections that support it (only included in hashmap, linkedlist, list and treemap)
|
|
|
|
1.2.2 (0.3.2)
|
|
Removed unnecessary modulo operation in hashtable functions
|
|
|
|
1.2.1 (0.3.1)
|
|
Optimized list - now using 'string.h' functions to shift elements around instead of for-loops:
|
|
- memset
|
|
- memcpy
|
|
- memmove
|
|
|
|
1.2.0 (0.3.0)
|
|
'contains' functions added to all collections
|
|
'contains' tests and benchmark
|
|
Unified Benchmark
|
|
Updated examples
|
|
|
|
1.1.3 (0.2.3)
|
|
Renamed deque's 'rear' struct member to 'back' to be more consistent with other collections
|
|
Better benchmark and foreach tests are alphabetically ordered
|
|
|
|
1.1.2 (0.2.2)
|
|
Fixing iterators for when they are initialized with an empty target
|
|
Better iterator tests
|
|
More examples
|
|
|
|
1.1.1 (0.2.1)
|
|
Reordering functions (implementation details are now at the end of each file)
|
|
|
|
1.1.0 (0.2.0)
|
|
Added new list functions:
|
|
- new_from
|
|
- prepend
|
|
- insert
|
|
- append
|
|
- remove
|
|
- fits
|
|
|
|
1.0.1 (0.1.1)
|
|
Fixed hashset logic in robin-hood hashing
|
|
|
|
1.0.0 (0.1.0)
|
|
First stable version
|
|
Includes the following collections:
|
|
- deque
|
|
- hashmap
|
|
- hashset
|
|
- heap
|
|
- linkedlist
|
|
- list
|
|
- queue
|
|
- stack
|
|
- treemap
|
|
- treeset
|
|
Two-way iterators
|
|
Benchmarks
|
|
Tests:
|
|
- foreach
|
|
- iterator
|