Skip to content

Releases: agl-alexglopez/ccc

v0.31.0

18 May 22:10
Compare
Choose a tag to compare

Release Notes:

  • T is made available as the named reference in the closure_over_T for the priority queue and flat priority queue update, increase, and decrease functionality.
  • Priority queue now returns a reference to the updated element for update, increase, and decrease. Old return was boolean.
  • Priority queue and flat priority queue now takes a reference to the user type in the queue for the update_w, decrease_w, and increase_w macro versions of the update functions. void * will be rejected by the compiler at compile time enforcing the user providing a reference to the type.

v0.30.2

16 May 19:09
Compare
Choose a tag to compare

Release Notes:

  • Flat hash map initialization is cleaned up and simplified to eliminate dangling references for fixed size maps.
  • Memory for a flat hash map can now come from the following sources.
    • Data Segment (anonymous compound literal possible).
    • Stack (anonymous compound literal possible).
    • Heap (possible, but preferable to use the map reserve interface).
  • When declaring fixed size map types, static asserts will warn the user if the capacity is not a power of two or below the minimum required.
  • Helper macro provided so the user only needs to provide the capacity integer constant once then can retrieve it again with the macro (less error prone).

Initialization syntax is now as follows:

#define CCC_FLAT_HASH_MAP_USING_NAMESPACE_CCC
struct val
{
    int key;
    int val;
};
fhm_declare_fixed_map(fixed_map, struct val, 2048);
static flat_hash_map static_fh = fhm_init(
    &(static fixed_map){},
    struct val,
    key,
    fhmap_int_to_u64,
    fhmap_id_eq,
    NULL,
    NULL,
    fhm_fixed_capacity(fixed_map)
);

The above gives the advantage of the map owning the anonymous compound literal. This prevents other code from accessing the memory by mistake outside of the map interface functions.

v0.30.1

16 May 19:08
Compare
Choose a tag to compare

Release Notes:

v0.30.0

16 May 19:07
a2a2a3f
Compare
Choose a tag to compare

Release Notes:

v0.29.1

20 Apr 21:42
Compare
Choose a tag to compare

Release Notes:

  • Cleaner internal preprocessor checks for flat hash map.
  • Better static asserts.

v0.29.0

20 Apr 19:15
Compare
Choose a tag to compare

Release Notes:

  • Config Fix - Refactoring eliminated underscores in preprocessor directives causing the portable flat hash implementation to be default.
    • x86 now correctly detects SIMD implementation.
    • ARM NEON fixes constant that fixes build error for mac.
  • Github Actions now correctly builds and tests ARM NEON flat hash map implementation on macos-latest

v0.28.1

20 Apr 00:57
Compare
Choose a tag to compare

Release Notes:

  • Internal refactor and bug fixes for bit set.

v0.28.0

19 Apr 04:06
Compare
Choose a tag to compare

Release Notes:

  • Breaking Renaming: Internal type fields renamed in preparation for version 1.0. Naming changes approaching final schemes.
  • Because all user facing container types are complete naming changes require an update even if interface use does not change.

v0.27.3

18 Apr 16:04
Compare
Choose a tag to compare

Release Notes:

  • Internal singly linked list tidy up.

v0.27.2

17 Apr 21:39
Compare
Choose a tag to compare

Release Notes:

  • Internal fixes improve list sorting robustness.