Skip to content

1.0.0

Compare
Choose a tag to compare
@dtolnay dtolnay released this 17 Nov 16:40
· 1956 commits to master since this release
1.0.0
bf1000f

Breaking changes

  • extern "C" extern block in the FFI module is no longer accepted, write extern "C " instead
  • extern "C " block must be written unsafe extern "C " if it contains at least one safe-to-call function
  • rust::Slice<T> in C has been renamed to rust::Slice<const T>; support for &mut [T] post-1.0 will use the rust::Slice<T> name
  • &mut T where T is an opaque C type is no longer ever exposed to Rust, only Pin<&mut T>
  • Related to the previous: UniquePtr binding no longer implements DerefMut for opaque C types
  • If a function's implementation is unsafe in Rust, extern "Rust" block will enforce that it's listed as unsafe fn in the extern block too
  • Opaque Rust types are required to be Unpin in addition to Sized
  • Opaque Rust types are required to be local to the current crate (for now; this may soon be lifted again)
  • Handwritten Unpin impl for opaque C types are ruled out
  • Minimum supported rustc version is raised from 1.43 to 1.48