Releases: foonathan/memory
Version 0.7-3
CMake improvements
- Increase the CMake minimum required version to 3.14 to reflect reality. (#147)
- Fixes to container node size generation using CMake on MacOS. (#138)
- Don't regenerate container node sizes when they already exist.
Bugfixes
- Workaround a compiler bug in MSVC. (#146)
- Fix broken multi-threading configuration. (#142)
- Check initial block size for
memory_pool_collection
properly. (#148) - Fix bug in
memory_block_stack::owns()
. (#151)
New Contributors
- @JonLiu1993 made their first contribution in #137
- @burnpanck made their first contribution in #146
- @richiware made their first contribution in #147
- @oberrich made their first contribution in #149
Full Changelog: v0.7-2...v0.7-3
Version 0.7-2
Version 0.7-1
Just bugfixes:
- CMake: automatically link libatomic on platforms where that is necessary (#95)
- catch small block sizes of
memory_pool
(#113) - fix buffer overflow in
memory_pool_collection
's array allocation (#99) - fix compatibility with Windows UWP (#102)
- fix computation of
memory_pool::min_block_size
(#110) - fix debug assertion in free lists (#111)
Version 0.7
BREAKING: Removed the use of the compatibility library to automatically generate macros and workaround for older compilers. The important compatibility workarounds like the __builtin_clz
extension are still used, but workarounds for missing C++11 library features have been removed. In particular, the library now requires compiler support for noexcept
, constexpr
, alignof
and thread_local
.This means that GCC 4.8 and Visual Studio version 12.0 (both released in 2013), are no longer supported.
Adapter
BREAKING: Remove Mutex
support from allocator_reference
and consequently from std_allocator
, allocator_deleter
, etc. Embedding the Mutex
with the reference was fundamentally broken and unusable to ensure thread safety. Use a reference to a thread_safe_allocator
instead, which actually guarantees thread safety.
Allocator
Add ability to query the minimal block size required by a memory_pool
or memory_stack
that should contain the given memory. Due to internal data structures and debug fences this is more than the naive memory request, so it can be computed now.
Bugfixes
Version 0.6-2
Various bug fixes, compiler warning workarounds and CMake improvements accumulated over past two years.
Most notable changes:
- cross compilation works now
fallback_allocator
is default constructible if stateless- add
unique_base_ptr
to support a unique ptr to a base class - add
allocate_unique
overloads that take a custom mutex - allocator deleters are default constructible
Version 0.6-1
- fix CMake configuration error
- fix double free error in
segregator
- add
static_assert()
when default constructing a statefulstd_allocator
- fix various compiler warnings
Version 0.6
See also: https://foonathan.github.io/blog/2016/11/21/memory-0.6.html
Tool
- better MSVC support
- improved compilation time
Core
- add literal operators for memory sizes (
4_KiB
) - more flexible
make_block_allocator
- composable allocator concept
Allocator
- improved
temporary_allocator
: explicit separation intotemporary_stack
, improved automatic creation - new
memory_stack_raii_unwind
for automatic unwinding - new
iteration_allocator
- make allocators composable
- add facilities for joint memory allocations
Adapter
- add
shared_ptr_node_size
- add
string
container typedef - add
fallback_allocator
- add
segregator
Bugfixes
- OSX support
- various warnings fixed
Version 0.5-3
Fixes a few minor bugs in memory_stack
also the next_capacity()
functions so that they return the exact results.
Array allocations in memory_pool_collection
are improved and now supported for pool types that do not support them natively (small_node_pool
) also add _left()
to pool_capacity()
and capacity()
like in the other arenas.
Version 0.5-2
Fixes a crash in memory_pool<array_pool>
that sometimes happens for array allocations.
Also fixes a non-critical performance bug in memory_pool<small_pool>
and a typo in Readme.
Version 0.5-1
Drop-in replacement for version 0.5 that massively improves the performance.
See also: https://t.co/uh59UnpVVi