- Add
alloc_str
, which is similar toalloc_slice_*
methods, but works on string slices.
Released 2019-08-19.
- Implement
Send
forBump
.
Released 2019-07-01.
- Add
alloc_slice_copy
andalloc_slice_clone
methods that allocate space for slices and either copy (with boundT: Copy
) or clone (with boundT: Clone
) the provided slice's data into the newly allocated space.
Released 2019-05-20.
- Fixed a bug where chunks were always deallocated with the default chunk layout, not the layout that the chunk was actually allocated with (i.e. if we started growing largers chunks with larger layouts, we would deallocate those chunks with an incorrect layout).
Released 2019-05-17.
- Added an implementation
Default
forBump
. - Made it so that if bump allocation within a chunk overflows, we still try to allocate a new chunk to bump out of for the requested allocation. This can avoid some OOMs in scenarios where the chunk we are currently allocating out of is very near the high end of the address space, and there is still available address space lower down for new chunks.
Released 2019-04-19.
- Added readme metadata to Cargo.toml so it shows up on crates.io
Released 2019-04-19.
- Added support for
realloc
ing in-place when the pointer beingrealloc
ed is the last allocation made from the bump arena. This should speed up variousString
,Vec
, andformat!
operations in many cases.
Released 2019-03-26.
- Add the
alloc_with
method, that (usually) avoids stack-allocating the allocated value and then moving it into the bump arena. This avoids potential stack overflows in release mode when allocating very large objects, and also somememcpy
calls. This is similar to thecopyless
crate. Read thealloc_with
doc comments and the original issue proposing this API for more.
Released 2019-03-18.
- Fix a regression from 2.2.1 where chunks were not always aligned to the chunk footer's alignment.
Released 2019-03-18.
- Fix a regression in 2.2.0 where newly allocated bump chunks could fail to have capacity for a large requested bump allocation in some corner cases.
Released 2019-03-15.
- Chunks in an arena now start out small, and double in size as more chunks are requested.
Released 2019-02-12.
- Added the
into_bump_slice
method onbumpalo::collections::Vec<T>
.
Released 2019-02-11.
- Removed the
BumpAllocSafe
trait. - Correctly detect overflows from large allocations and panic.
Released 2019-01-15.
- Fixed an overly-aggressive
debug_assert!
that had false positives. - Ported to Rust 2018 edition.
Released 2018-11-28.
- Added the
collections
module, which contains ports ofstd
's collection types that are compatible with backing their storage inBump
arenas. - Lifted the limits on size and alignment of allocations.