Skip to content

Release of 0.8.0

Compare
Choose a tag to compare
@rodrimati1992 rodrimati1992 released this 08 Dec 02:19
9418815

This release comes with very minor changes API-wise,and fixes some potential unsoundness.

0.8.0

Added checks when loading dynamic libraries to ensure that Rust doesn't change how it represents
zero-sized types in the "C" ABI.
This means that in some rare cases,it won't be possible to link dynamic libraries across a
certain Rust version because it changed how it represents zero-sized types in the "C" abi.

Added RBoxError::from_debug for constructing an RBoxError from Debug+!Display types.

Added impls of StableAbi for PhantomData of tuples.

Added the abi_stable::marker_type::NonOwningPhantom marker type,
which is a more convenient way to have a PhantomData<extern "C"fn()->PhantomData<T>> field
PhantomData is returned from the function because of special case support
for PhantomData of tuples (eg:PhantomData<(Foo,Bar)>)
(tuples don't have a stable abi,but because this is a 1-aligned zero sized type,
it doesn't matter).

Fixed potential soundness bug by replacing PhantomData<extern "C" fn( $types )> fields
with NonOwningPhantom<$types>.