Skip to content

Releases: BioJulia/MemoryViews.jl

v0.4.1

12 Apr 12:27
9a467f6

Choose a tag to compare

Only bugfixes, improved tests and optimizations, and one added method

Fix: Correct types to ccall
Perf: @nospecialize for methods where specializations give nothing
Fix: Add missing GC.@preserves
Fix: Improve static VERSION checks
Improve test coverage
Add 5-arg copyto! method

v0.4.0

20 Feb 12:49

Choose a tag to compare

Breaking changes

  • Removed the Unsafe trait type.
    Instead of MutableMemoryView(::Unsafe, ::MemoryView), use
    unsafe_from_parts(::MemoryRef, ::Int)
    Using the inner constructor MemoryView{T, M}(::Unsafe, ::MemoryRef{T}, ::Int)
    was never documented API and is now removed.

  • Matrix and other Array types with a different dimensionality than 1 is now
    NotMemory, since it is not equal to its own memory view, due to shape mismatch.
    The fact that it was previously IsMemory was a bug.

  • Out of bounds access now throws a LightBoundsError from the LightBoundsErrors
    package, instead of Base.BoundsError.
    This improves codegen slightly, as it enables escape analysis of the array,
    and outlines error paths slightly more.

  • MemoryView(::SubArray) now accepts fewer subarray types. However, it is unlikely
    that any instance that is now no longer accepted worked previously, so it is
    unlikely to be breaking in practice.

Other

  • parentindices now works correctly for zero-sized structs.
  • Base.memoryref(::MemoryView) obtains the MemoryRef in a MemoryView.

v0.3.7

09 Feb 18:55

Choose a tag to compare

Various internal bugfixes

v0.3.6

09 Feb 18:53
cefb989

Choose a tag to compare

  • Allow indexing with UInt range (#29)
  • Add optimised fill!(::MutableMemoryView{UInt8}, ::UInt8) (#30)

v0.3.5

08 Oct 11:54
5831d46

Choose a tag to compare

0.3.5

  • Add method MemoryKind{::Type{<:MemoryView}}
  • Add package extension for LibDeflate.jl

v0.3.4

15 Sep 12:20
f1e33d4

Choose a tag to compare

Add new function unsafe_from_parts to construct a memory view from a MemoryRef.

v0.3.3

09 Sep 08:07
c898b17

Choose a tag to compare

New features

  • Add a new split_each function, which iterates over memory views delimited
    by a single element delimiter.

Other changes

  • Add some more fast methods for Memory/Vector/MemoryView interop
  • Add a fast method for Base.readbytes! reading into a memory view

v0.3.2

12 Jun 07:35
5684e8d

Choose a tag to compare

New features

  • FixedSizeArrays.jl is now supported through an extension

Other changes

  • Various small bugfixes and optimisations

v0.3.1

06 Mar 16:11

Choose a tag to compare

Various bugfixes.

v0.3.0

06 Mar 16:10
efad7bc

Choose a tag to compare

Breaking changes

  • Change the bounds checking behaviour of the find* functions to match those of
    Vector. In particular, previously, findnext(pred, mem, -5) would be
    equivalent to searching from index 1, and similarly, findprev(pred, mem, lastindex(mem) + 10) would be equialent to searching from lastindex(mem).
    Now, searching from an index before the first valid index throws a BoundsError.
    Findfirst searching from i > lastindex(mem), and findlast searching from
    i < 1 will still simply return nothing, just like searching vectors.

Other changes

  • Add optimised versions of findprev and findlast, searching bytes
  • Add optimised version of find*(iszero, bytes) methods
  • Add optimised generic find* methods
  • Add functions split_first, split_last, split_at and split_unaligned
  • Add a more correct implementation of Base.mightalias for memory views and
    some types of arrays