Skip to content

0.10.3 release

Latest
Compare
Choose a tag to compare
@rodrimati1992 rodrimati1992 released this 29 Oct 07:14
· 693 commits to master since this release
dae5ba3

Fixed failed compilation in recent nightly(which required bumping the MSRV to 1.46.0, due to internal compiler errors in previous versions), includes a variety of additions, and a few deprecations.

Changelog

0.10.3

Bumped Minimum Supported Rust Version to 1.46.0 because fixing support for Rust nightly caused Internal Compiler Errors in older Rust versions.

Added StableAbi impls for f32 and f64.

Fixed error in StableAbi derive caused by using the derive inside a function with the proc_macro_derive_resolution_fallback lint enabled (deny-by-default in nightly).

Deprecated abi_stable::library::mangled_root_module_loader_name function.

Superceeded the mangled_root_module_loader_name function (and uses of it) with these abi_stable::library constants:

  • ROOT_MODULE_LOADER_NAME
  • ROOT_MODULE_LOADER_NAME_WITH_NUL
  • ROOT_MODULE_LOADER_NAME_NULSTR

Added NulStr::{as_ptr, try_from_str} associated functions.

Added ǸulStrError, returned by NulStr::try_from_str

Added PartialEq impls for comparing str and NulStr in both directions.

Added Default, PartialOrd, and Ord impls for NulStr.

Made NulStr::from_str safe, by not requiring no internal nul bytes.

Deprecated nul_str macro.

Added nulstr and nulstr_trunc macros.

Added "rust_latest_stable" feature.

Added LibHeader::ensure_layout method.

Fixed StaticRef::as_prefix doc example.

Added for_examples::PhantModule struct

Added RHashMap::{keys, values} methods for iterating over the map, which return the Keys and Values iterators respectively.

Added Index and IndexMut impls for RSliceMut and RVec

Added Index impl for RSlice

Changed these methods to use R: RangeBounds<usize> instead of [T]: Index<I, Output = [T]> or Index<I, Output = [T]>:

  • RVec::slice
  • RVec::slice_mut
  • RVec::drain

Replaced all Into implementations converting from abi_stable types with From impls converting in the same direction.

Rewrote staticref macro to support more cases of static promotion, this breaks non-inherent-impl uses of the macro(it was documented that this breaking change could happen).

Made libraries loaded with RootModule never be unloaded, previously they were unloaded when the type layout of the root module isn't compatible (this was possibly unsound?).

Formatted documentation examples (all doc examples up to sabi_types were formatted with rustfmt, every one from std_types up to the last module were manually formatted).

Added dependency on paste 1.0

Enabled the "macro_utils" feature of core_extensions