Skip to content

Releases: MasonProtter/Bumper.jl

v0.7.0

22 Jul 11:38
Compare
Choose a tag to compare

Bumper v0.7.0

Diff since v0.6.0

Breaking changes

  • The type of array created by @alloc and alloc! has been changed from a StrideArraysCore.PtrArray to UnsafeArrays.UnsafeArray. This shouldn't matter for most purposes, but can break code that relies on a specific return type.

Merged pull requests:

Closed issues:

  • MethodErrors caused by StrideArrays.jl overrides (#34)
  • Massive slowdown when running with --check-bounds=no (#39)
  • Zero-dimensional arrays: (#41)

v0.6.0

16 Nov 08:36
9730e07
Compare
Choose a tag to compare

Bumper v0.6.0

Diff since v0.5.4

Breaking changes

  • Removed the package extension which was added in v0.5.1, because we're making Bumper.jl a direct dependancy of StaticTools.jl

Merged pull requests:

v0.5.4

15 Nov 13:05
515a4dd
Compare
Choose a tag to compare

Bumper v0.5.4

Diff since v0.5.3

  • Changed the default size heuristics for SlabBuffer, the default slab size is now 1 megabyte, and custom slabs
    are now created for allocations which are larger than half the slab size, rather than larger than the slab size.
  • Changed the default size heuristic for AllocBuffer. AllocBuffer() now creates a buffer of 1 megabyte capacity.

Merged pull requests:

v0.5.3

14 Nov 22:09
236d9f2
Compare
Choose a tag to compare

Bumper v0.5.3

Diff since v0.5.2

  • Added @alloc_ptr(n) which is like @alloc except it returns an n byte pointer directly instead of an array.

Merged pull requests:

v0.5.2

10 Nov 22:21
6afdcb3
Compare
Choose a tag to compare

Bumper v0.5.2

Diff since v0.5.1

Merged pull requests:

v0.5.1

09 Nov 16:27
05152b1
Compare
Choose a tag to compare

Bumper v0.5.1

Diff since v0.5.0

  • Added a package extension (only works on julia versions 1.9+) which lets the AllocBuffer work under
    StaticCompiler.jl, and defines methods like AllocBuffer(::Type{MallocVector}, n::Int) and free(AllocBuffer{<:MallocArray}) for convenience.

Merged pull requests:

v0.5.0

08 Nov 09:59
15261f6
Compare
Choose a tag to compare

Bumper v0.5.0

Diff since v0.4.1

  • The default allocator is now something known as a slab allocator SlabBuffer. This comes with a very slight performance hit relative to AllocBuffer, but the advantage is that it scales very well from handling small allocations all the way up to handling very large allocations. It will only run out of memory when your computer runs out of memory, but it also won't hog memory that's not in use. It is also be much faster to construct than the old default AllocBuffer.
  • AllocBuffer still exists, but now defaults to 128kb of storage instead of 1/8th of your computer's physical memory. This allocator is very slightly faster than the slab allocator, but will error if it runs out of memory. It also is more flexible in the kinds of types it can wrap to use as underlying storage.
  • There is now an API for hooking user-defined allocators into the @no_escape and @alloc machinery.
  • alloc(::Type{T}, buffer, dims...) is now alloc!(buffer, ::Type{T}, dims...)
  • alloc_nothrow and @alloc_nothrow have been removed. People who need this can instead create custom no-throw buffer types.

Merged pull requests:

Closed issues:

  • alloc_nothrow needs improvement, or eliminating (#3)
  • Add/use slab-bump allocator? (#9)

v0.4.1

23 Oct 11:10
Compare
Choose a tag to compare

Bumper v0.4.1

Diff since v0.4.0

v0.4.0

22 Oct 22:10
c964717
Compare
Choose a tag to compare

Bumper v0.4.0

Diff since v0.3.2

Merged pull requests:

v0.3.2

11 Oct 16:35
8126213
Compare
Choose a tag to compare

Bumper v0.3.2

Diff since v0.3.1

Merged pull requests: