Home

Software-update: Rust 1.93.0

Rust is een programmeertaal bedacht door Graydon Hoare en oorspronkelijk ontwikkeld door Mozilla. Het is deels geïnspireerd op de programmeertaal C, maar kent syntactische en semantische verschillen. Het focust op veiligheid en moet moderne computersystemen efficiënter benutten. Het wordt onder meer ingezet door Cloudflare, OVH, Mozilla, Deliveroo, Coursera, AppSignal en Threema. Versie 1.93 is uitgebracht en de releasenotes voor die uitgave kunnen hieronder worden gevonden.

Update bundled musl to 1.2.5

The various *-linux-musl targets now all ship with musl 1.2.5. This primarily affects static musl builds for x86_64, aarch64, and powerpc64le which bundled musl 1.2.3. This update comes with several fixes and improvements, and a breaking change that affects the Rust ecosystem. For the Rust ecosystem, the primary motivation for this update is to receive major improvements to musl's DNS resolver which shipped in 1.2.4 and received bug fixes in 1.2.5. When using musl targets for static linking, this should make portable Linux binaries that do networking more reliable, particularly in the face of large DNS records and recursive nameservers.

However, 1.2.4 also comes with a breaking change: the removal of several legacy compatibility symbols that the Rust libc crate was using. A fix for this was shipped in libc 0.2.146 in June 2023 (2.5 years ago), and we believe has sufficiently widely propagated that we're ready to make the change in Rust targets. See our previous announcement for more details.

Allow the global allocator to use thread-local storage

Rust 1.93 adjusts the internals of the standard library to permit global allocators written in Rust to use std's thread_local! and std::thread::current without re-entrancy concerns by using the system allocator instead. See docs for details.

cfg attributes on asm! lines

Previously, if individual parts of a section of inline assembly needed to be cfg'd, the full asm! block would need to be repeated with and without that section. In 1.93, cfg can now be applied to individual statements within the asm! block.

Stabilized APIs
  • <[MaybeUninit<T>]>::assume_init_drop
  • <[MaybeUninit<T>]>::assume_init_ref
  • <[MaybeUninit<T>]>::assume_init_mut
  • <[MaybeUninit<T>]>::write_copy_of_slice
  • <[MaybeUninit<T>]>::write_clone_of_slice
  • String::into_raw_parts
  • Vec::into_raw_parts
  • <iN>::unchecked_neg
  • <iN>::unchecked_shl
  • <iN>::unchecked_shr
  • <uN>::unchecked_shl
  • <uN>::unchecked_shr
  • <[T]>::as_array
  • <[T]>::as_array_mut
  • <*const [T]>::as_array
  • <*mut [T]>::as_mut_array
  • VecDeque::pop_front_if
  • VecDeque::pop_back_if
  • Duration::from_nanos_u128
  • char::MAX_LEN_UTF8
  • char::MAX_LEN_UTF16
  • std::fmt::from_fn
  • std::fmt::FromFn
  • Other changes

    Check out everything that changed in Rust, Cargo, and Clippy.

    Source: Tweakers.net

    Previous

    Next