tag:github.com,2008:https://github.com/spaskalev/buddy_alloc/releases Release notes from buddy_alloc 2025-02-21T13:21:21Z tag:github.com,2008:Repository/334767584/v1.2.3 2025-02-24T12:10:35Z v1.2.3 <p>Guard a static function so that it is only available when the experimental change tracking feature is enabled. This is to avoid failing strict compile time warnings downstream when the feature is disabled.</p> <p>There are no functional differences to v1.2.2</p> spaskalev tag:github.com,2008:Repository/334767584/v1.2.2 2025-02-18T19:21:09Z v1.2.2 <ul> <li>Fixed a bug in arena downsizing that could lead to duplicate allocations.</li> </ul> spaskalev tag:github.com,2008:Repository/334767584/v1.2.1 2024-12-21T17:53:49Z v1.2.1 <ul> <li>Fixed a bug affecting the <code>buddy_can_shrink</code> function, added more tests for up-resizing an arena in normal and embedded mode.</li> </ul> spaskalev tag:github.com,2008:Repository/334767584/v1.2.0 2024-09-23T07:03:17Z v1.2.0 <ul> <li>Add a new <code>buddy_get_embed_at</code> function to get a handle to the allocator when having a pointer to the arena.</li> <li>Add a new <code>enum buddy_safe_free_status</code> that is returned from the <code>buddy_safe_free</code> function. It can be used to detect invalid free calls and fail early.</li> <li>Document the allocator metadata size based on some common arena and smallest allocation block sizes.</li> </ul> spaskalev tag:github.com,2008:Repository/334767584/v1.1.1 2024-06-15T00:01:11Z v1.1.1 <ul> <li>Support compiling with Pelles C</li> <li>Add a cmake target for the benchmark</li> <li>Fixed a few harmless compile warnings</li> </ul> spaskalev tag:github.com,2008:Repository/334767584/v1.1.0 2023-11-22T22:13:22Z v1.1.0 <ul> <li>Add a parameter to <code>buddy_realloc</code> that allows it to ignore data. Useful for resizing buffers when there is no longer any interest in their content.</li> <li>Minor style and repo changes.</li> </ul> spaskalev tag:github.com,2008:Repository/334767584/v1.0.0 2023-10-09T13:01:30Z v1.0.0 <p>External changes:</p> <ul> <li><code>buddy_walk</code> callback is now invoked for free slots in addition to allocated ones and has an extra parameter to distinguish between free and allocated.</li> <li><code>buddy_fragmentation</code> return type is now an <code>unsigned char</code> that ranges between 0 and 255 and no <code>float</code> types are used. This way fragmentation can be reported when used in environments that don't support the <code>float</code> type.</li> </ul> <p>Internal changes:</p> <ul> <li>A static inline <code>two_to_the_power_of</code> helper function that returns <code>size_t</code> is used in place of manual power of two calculations.</li> <li>The fast square root algorithm used in the fragmentation formula has been replaced with an integer square root algorithm by Martin Guy, 1985.</li> </ul> <p>Misc:</p> <p>Two years and nine months have passed since this project started and it has now reached the <code>1.0.0</code> milestone. Thanks to all contributors and users for their interest in it.</p> spaskalev tag:github.com,2008:Repository/334767584/v0.9 2023-08-22T19:41:10Z v0.9 <ul> <li>Remove FAMs and <code>{0}</code> initializers to facilitate interop with strict C++ compilers <ul> <li>Clang generates identical code with FAMs and without FAMs</li> <li>GCC generates almost-identical code</li> </ul> </li> <li>Make the debug functions non-static so that they can be used by code in other units</li> <li>Include <code>stdio.h</code> only when <code>BUDDY_PRINTF</code> is not defined</li> <li>Add a macro for C++ name mangling</li> </ul> spaskalev tag:github.com,2008:Repository/334767584/v0.8 2023-06-13T05:52:47Z v0.8 <ul> <li>The allocator is now easier to use within a linux kernel/module. <ul> <li>Conforms to the c90-style variable declarations in functions</li> <li>New defines <code>BUDDY_PRINTF</code>, <code>BUDDY_HEADER</code> and <code>BUDDY_FRAG_OPTIONAL</code> added to allow conditional inclusion of functionality and setting a suitable printf-like function for the debug functions.</li> </ul> </li> <li>Fixed some issues with explicit alignment init functions</li> <li>Fixed UB on invalid free calls</li> </ul> spaskalev tag:github.com,2008:Repository/334767584/v0.7.2 2023-06-10T18:34:00Z v0.7.2 <ul> <li>Additional performance improvements</li> <li>Stricter compile-time checks</li> <li>Fixed code coverage reporting and got coverage back to 100%.</li> </ul> spaskalev