1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178
|
# Upcoming Changes
# 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)
# 0.7-2
Deprecate `virtual_memory_page_size`; use `get_virtual_memory_page_size()` instead. (#132)
CMake improvements:
* Generate container node sizes using CMake, which makes cross-compiling easier (#129)
* Set `CMAKE_RUNTIME_OUTPUT_DIRECTORY` properly to support shared libraries (#132)
# 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)
# 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 now longer supported.
## Adapter
BREAKING: Remove `Mutex` support from `allocator_reference` and consequently from `std_allocator`, `allocator_deleter`, ...
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
* more CMake improvements for cross-compiling, among others
* bugfixes to support UWP (#80), VxWorks (#81) and QNX (#85, #88, among others)
* better support missing container node size (#59, #72, among others)
* fix alignment issues in debug mode
* fix tracking for allocators without block allocators
---
# 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
---
# 0.6-1
* fix CMake configuration error
* fix double free error in `segregator`
* add `static_assert()` when default constructing a stateful `std_allocator`
* fix various compiler warnings
# 0.6
## 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 into `temporary_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
---
# 0.5
* improved CMake build system, now supports cmake installation and `find_package()`
* improved low-level allocators and added `malloc_allocator`
* add virtual memory interface and allocators
* add allocators using a fixed-sized storage block
* introduced `BlockAllocator` concept and various implementations
* new class template `memory_arena` that is used inside the higher level allocators, allows more control over the internal allocations
* add wrappers/adapters for the polymorphic memory resource TS
* improved tracking classes
* other improvements like concept checks and more exception classes
* internal changes
---
# 0.4
* polished up the interface, many breaking changes in the form of renaming and new header files
* added unified error handling facilities and handler functions in case exceptions are not supported
* improved old allocator adapters by introducing allocator_storage template
* improved allocator_traits making them more powerful and able to handle Allcoator types directly
* added type-erased allocator storage
* added node-size debugger that obtains information about the container node sizes
* most parts now work on a freestanding implementation
* used foonathan/compatibility for CMake compatibility checks
* added miscellaneous tiny features all over the place
* many internal changes and bugfixes
---
# 0.3
* added debugging options such as memory filling and deallocation and leak check
* improved performance of pool allocators
* changed complete project structure and CMake
* many internal changes and bugfixes and automated testing
---
# 0.2
* added temporary_allocator as portable alloca
* added small_node_pool type optimized for low-overhead small object allocations
* added various allocator adapters including a thread_safe_allocator for locking
* better compiler support
* many internal changes and bugfixes
---
# 0.1-1
* critical bugfix in memory_stack
* added smart pointer example
---
# 0.1
* first beta version
|