Skip to content

Latest commit

 

History

History
65 lines (48 loc) · 2.62 KB

CHANGELOG.md

File metadata and controls

65 lines (48 loc) · 2.62 KB

Changelog

1.4.0

  • Added width and height methods to VolGrid2d.

1.3.0

  • New: VolGrid2d<T,R,W, WIDTH, HEIGHT> works like video memory (accessed with (x,y))
  • New VolGrid2dStrided<T,R,W, WIDTH, HEIGHT, FRAMES, BYTE_STRIDE> has many "frames" of VolGrid2d, each offset by the given stride in bytes. The stride can be larger, equal to, or smaller than the number of bytes per frame.
  • New: VolRegion<T,R,W> is a 1d span with a dynamic size, like a slice.
  • Removed: the "experimental" cargo features were removed from Cargo.toml. If you had opted-in to using them you will have to adjust your [dependencies] entry.

1.2.3

  • Fixed up unclear documentation.

1.2.2

  • Soundness: Previous versions of the iterators in this crate (since 0.4) had a math error in the nth method, causing them to potentially go out of bounds.

1.2

  • The Safe and Unsafe types now also derive Default, Clone, and Copy. This doesn't do too much since they're already ZSTs with a public constructor, but it doesn't hurt.
  • VolAddress: Added const fn as_ptr and as_mut_ptr.
  • VolBlock: Added const fn as_usize, as_ptr, as_mut_ptr, and non-const fn as_slice_ptr and as_slice_mut_ptr.
  • It turns out that getting the pointer to a VolBlock by indexing to the 0th element and then turning that into a usize and then turning that into a pointer was enough layers to confuse LLVM. Specifically, all volatile accesses have an "aligned and non-null" debug check, which wasn't getting optimized out of debug builds with build-std, even with opt-level=3. Providing these more direct conversion methods does seem to help LLVM eliminate that non-null check more often.
  • Added core::fmt::Pointer impls. While Debug formats the address along with extra metadata, Pointer just formats the address.

1.1

  • Added VolAddress::as_volblock for (unsafely) converting from a VolAddress to an array into a VolBlock. This is totally fine in any case I've ever seen, but the general policy of the crate is that any creation of a VolBlock be an unsafe action, and so this is unsafe for consistency.

  • Also adds the experimental_volmatrix cargo feature, which adds another opt-in type for people to experiment with.

1.0.2

  • Temporarily adds the experimental_volregion feature, allowing a person to experimentally opt-in to the VolRegion type. This type will be part of a 1.1 release of the crate at some point. This feature is not part of the crate's SemVer, and it will go away entirely once VolRegion becomes a stable part of the crate.

1.0.0

  • Initial stable release.