Skip to content

1.3.0

Latest
Compare
Choose a tag to compare
@okready okready released this 22 Jul 05:26
· 9 commits to master since this release
49e8c59

Added

  • Stable toolchain alloc crate support for no_std code via the alloc
    feature. This requires Rust 1.36 or later.
  • ByteData support for std::mem::MaybeUninit types that wrap other
    ByteData types (e.g. MaybeUninit<usize>) when using Rust 1.36 or later
    or when the unstable feature is enabled.

Changed

  • Add local_inner_macros modifier to utility macro declarations
    (array_type_for_bytes!, cache_aligned_zeroed_for_markers!, etc.),
    allowing them to be imported individually via use statements in Rust 2018
    code without needing to import any other macros that they may call.
  • Update example and test code to use std::mem::MaybeUninit as appropriate
    when working with uninitialized memory. The now-deprecated
    std::mem::uninitialized() function is only used for tests on legacy
    systems and is not included in any generated documentation.
  • Include recommendations to use arrays and slices of std::mem::MaybeUninit
    elements if possible for uninitialized memory storage to the documentation
    for Scratchpad::static_new(), Scratchpad::static_new_in_place(),
    uninitialized_boxed_slice(), uninitialized_boxed_slice_for_bytes(), and
    uninitialized_boxed_slice_for_markers(), as well as a note in the "Known
    Issues" section of the crate-level documentation.
  • Add #[repr(C)] attribute to CacheAligned in order to guarantee
    consistent data layout. CacheAligned is correctly sized and aligned in
    practice with the default Rust repr, but the Rust repr technically
    doesn't guarantee any specific data layout; specifying the C repr helps
    us avoid any edge cases that may arise. Existing code should still behave as
    normal.
  • Updated Travis CI configuration to use clippy and rustfmt from the
    stable toolchain, and updated the code accordingly (based on the 1.36.0
    toolchain versions).
  • Various minor API documentation improvements.