Releases: SkeletOSS/ccc
Releases · SkeletOSS/ccc
v0.60.0
Release Notes:
- Breaking change for initialization order. Memory pointer now comes last.
v0.51.0
Release Notes:
- Add new initializers.
_with_compound_literalandwith_context_compound_literalmake initializing fixed size containers without allocation permission much simpler.
v0.50.0
Release Notes:
- Rename all
removefunctions for associative containers toremove_key_value. Avoids name collision when name shortening withstdio.h'sremovefunction.
v0.40.0
Release Notes:
- Holistic review of API naming and style.
- Add
CCC_prefix to all user facing headers. Per header name shortening available. - Types get
Leading_snake_case -> CCC_Flat_hash_map -> Flat_hash_map. - Constants get
UPPER_CASE -> CCC_BITSET_BLOCK_BITS. - Functions get
snake_case -> CCC_flat_hash_map_entry(...) - Abbreviations banned in user facing headers
ccc_fpq_push(...) -> CCC_flat_priority_queue_push(...). - Contributing document updated with naming conventions and style rationale.
- All containers given a
*_fromconstructor, similar to Rust's from trait. Uses C99 compound literal arrays to infer types and initialize. - All containers with contiguous storage as underlying representations in memory given
*_with_capacityconstructor, similar to Rust'swith_capacitytrait. - Bitset given consistent range input arguments API to leading and trailing bit functions.
- Ordered maps given more concise informative names:
Tree_map,Array_tree_map,Adaptive_map,Array_adaptive_map. Struct of array design documented more thoroughly. - Tests of all containers improved.
- Containers no longer have self referential fields or sentinel node based implementations. This means the core metadata struct of every container can be safely and trivially copied and returned from stack frames. Users can now organize code how they wish and wrap container initializers in their own constructor functions. Shallow copies can be done at the user's own risk, but are well defined by the container implementations as no self referential fields exist.
v0.39.0
Release Notes:
- Eliminate
ccc_key_eqtypes and comparison functions. - Hash maps or any other containers that rely on equality will use internal logic to complete this check allowing the user to always provide one consistent three way comparison function.
- API is narrowed down and less confusing.
v0.38.3
v0.38.2
Release Notes:
- Flat hash map now uses aligned loads internally whenever possible for faster iteration.
v0.38.1
v0.37.1
Release Notes:
- Guarantee space for swap slot during heap sort.
v0.37.0
Release Notes:
- Add new destructive heap sort to
ccc_flat_priority_queueinterface that destroys the heap returning its underlyingccc_bufferas a sorted array.O(N * log(N))strict runtime.O(1)space.- No copies or movement of underlying data (in-place).
- No recursion.