Path to this page:
Subject: CVS commit: pkgsrc/lang/rust
From: Havard Eidnes
Date: 2024-01-06 20:00:19
Message id: 20240106190019.A332EFA42@cvs.NetBSD.org
Log Message:
rust: update to version 1.74.1.
Pkgsrc changes:
* Remove NetBSD-8 support (embedded LLVm requires newer C++
than what is in -8; it's conceivable that this could still
build with an external LLVM)
* undo powerpc 9.0 file naming tweak, since we no longer support -8.
* Remove patch to LLVM for powerpc now included by upstream.
* Minor adjustments, checksum changes etc.
Upstream changes:
Version 1.74.1 (2023-12-07)
===========================
- [Resolved spurious STATUS_ACCESS_VIOLATIONs in LLVM]
(https://github.com/rust-lang/rust/pull/118464)
- [Clarify guarantees for std::mem::discriminant]
(https://github.com/rust-lang/rust/pull/118006)
- [Fix some subtyping-related regressions]
(https://github.com/rust-lang/rust/pull/116415)
Version 1.74.0 (2023-11-16)
==========================
Language
--------
- [Codify that `std::mem::Discriminant<T>` does not depend on any
lifetimes in T]
(https://github.com/rust-lang/rust/pull/104299/)
- [Replace `private_in_public` lint with `private_interfaces` and
`private_bounds` per RFC 2145]
(https://github.com/rust-lang/rust/pull/113126/)
Read more in
[RFC 2145](https://rust-lang.github.io/rfcs/2145-type-privacy.html).
- [Allow explicit `#[repr(Rust)]`]
(https://github.com/rust-lang/rust/pull/114201/)
- [closure field capturing: don't depend on alignment of packed fields]
(https://github.com/rust-lang/rust/pull/115315/)
- [Enable MIR-based drop-tracking for `async` blocks]
(https://github.com/rust-lang/rust/pull/107421/)
Compiler
--------
- [stabilize combining +bundle and +whole-archive link modifiers]
(https://github.com/rust-lang/rust/pull/113301/)
- [Stabilize `PATH` option for `--print KIND=PATH`]
(https://github.com/rust-lang/rust/pull/114183/)
- [Enable ASAN/LSAN/TSAN for `*-apple-ios-macabi`]
(https://github.com/rust-lang/rust/pull/115644/)
- [Promote loongarch64-unknown-none* to Tier 2]
(https://github.com/rust-lang/rust/pull/115368/)
- [Add `i686-pc-windows-gnullvm` as a tier 3 target]
(https://github.com/rust-lang/rust/pull/115687/)
Libraries
---------
- [Implement `From<OwnedFd/Handle>` for ChildStdin/out/err]
(https://github.com/rust-lang/rust/pull/98704/)
- [Implement `From<{&,&mut} [T; N]>` for `Vec<T>` where `T: \
Clone`]
(https://github.com/rust-lang/rust/pull/111278/)
- [impl Step for IP addresses]
(https://github.com/rust-lang/rust/pull/113748/)
- [Implement `From<[T; N]>` for `Rc<[T]>` and `Arc<[T]>`]
(https://github.com/rust-lang/rust/pull/114041/)
- [`impl TryFrom<char> for u16`]
(https://github.com/rust-lang/rust/pull/114065/)
- [Stabilize `io_error_other` feature]
(https://github.com/rust-lang/rust/pull/115453/)
- [Stabilize the `Saturating` type]
(https://github.com/rust-lang/rust/pull/115477/)
- [Stabilize const_transmute_copy]
(https://github.com/rust-lang/rust/pull/115520/)
Stabilized APIs
---------------
- [`core::num::Saturating`]
(https://doc.rust-lang.org/stable/std/num/struct.Saturating.html)
- [`impl From<io::Stdout> for std::process::Stdio`]
\
(https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CStdout%3E-for-Stdio)
- [`impl From<io::Stderr> for std::process::Stdio`]
\
(https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CStderr%3E-for-Stdio)
- [`impl From<OwnedHandle> for std::process::Child{Stdin, Stdout, Stderr}`]
\
(https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CStderr%3E-for-Stdio)
- [`impl From<OwnedFd> for std::process::Child{Stdin, Stdout, Stderr}`]
\
(https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CStderr%3E-for-Stdio)
- [`std::ffi::OsString::from_encoded_bytes_unchecked`]
\
(https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html#method.from_encoded_bytes_unchecked)
- [`std::ffi::OsString::into_encoded_bytes`]
\
(https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html#method.into_encoded_bytes)
- [`std::ffi::OsStr::from_encoded_bytes_unchecked`]
\
(https://doc.rust-lang.org/stable/std/ffi/struct.OsStr.html#method.from_encoded_bytes_unchecked)
- [`std::ffi::OsStr::as_encoded_bytes`]
\
(https://doc.rust-lang.org/stable/std/ffi/struct.OsStr.html#method.as_encoded_bytes)
- [`std::io::Error::other`]
(https://doc.rust-lang.org/stable/std/io/struct.Error.html#method.other)
- [`impl TryFrom<char> for u16`]
\
(https://doc.rust-lang.org/stable/std/primitive.u16.html#impl-TryFrom%3Cchar%3E-for-u16)
- [`impl<T: Clone, const N: usize> From<&[T; N]> for Vec<T>`]
\
(https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#impl-From%3C%26%5BT;+N%5D%3E-for-Vec%3CT,+Global%3E)
- [`impl<T: Clone, const N: usize> From<&mut [T; N]> for \
Vec<T>`]
\
(https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#impl-From%3C%26mut+%5BT;+N%5D%3E-for-Vec%3CT,+Global%3E)
- [`impl<T, const N: usize> From<[T; N]> for Arc<[T]>`]
\
(https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#impl-From%3C%5BT;+N%5D%3E-for-Arc%3C%5BT%5D,+Global%3E)
- [`impl<T, const N: usize> From<[T; N]> for Rc<[T]>`]
\
(https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#impl-From%3C%5BT;+N%5D%3E-for-Rc%3C%5BT%5D,+Global%3E)
These APIs are now stable in const contexts:
- [`core::mem::transmute_copy`]
(https://doc.rust-lang.org/beta/std/mem/fn.transmute_copy.html)
- [`str::is_ascii`]
(https://doc.rust-lang.org/beta/std/primitive.str.html#method.is_ascii)
- [`[u8]::is_ascii`]
(https://doc.rust-lang.org/beta/std/primitive.slice.html#method.is_ascii)
Cargo
-----
- [fix: Set MSRV for internal packages]
(https://github.com/rust-lang/cargo/pull/12381/)
- [config: merge lists in precedence order]
(https://github.com/rust-lang/cargo/pull/12515/)
- [fix(update): Clarify meaning of --aggressive as --recursive]
(https://github.com/rust-lang/cargo/pull/12544/)
- [fix(update): Make `-p` more convenient by being positional]
(https://github.com/rust-lang/cargo/pull/12545/)
- [feat(help): Add styling to help output ]
(https://github.com/rust-lang/cargo/pull/12578/)
- [feat(pkgid): Allow incomplete versions when unambigious]
(https://github.com/rust-lang/cargo/pull/12614/)
- [feat: stabilize credential-process and registry-auth]
(https://github.com/rust-lang/cargo/pull/12649/)
- [feat(cli): Add '-n' to dry-run]
(https://github.com/rust-lang/cargo/pull/12660/)
- [Add support for `target.'cfg(..)'.linker`]
(https://github.com/rust-lang/cargo/pull/12535/)
- [Stabilize `--keep-going`]
(https://github.com/rust-lang/cargo/pull/12568/)
- [feat: Stabilize lints]
(https://github.com/rust-lang/cargo/pull/12648/)
Rustdoc
-------
- [Add warning block support in rustdoc]
(https://github.com/rust-lang/rust/pull/106561/)
- [Accept additional user-defined syntax classes in fenced code blocks]
(https://github.com/rust-lang/rust/pull/110800/)
- [rustdoc-search: add support for type parameters]
(https://github.com/rust-lang/rust/pull/112725/)
- [rustdoc: show inner enum and struct in type definition for concrete type]
(https://github.com/rust-lang/rust/pull/114855/)
Compatibility Notes
-------------------
- [Raise minimum supported Apple OS versions]
(https://github.com/rust-lang/rust/pull/104385/)
- [make Cell::swap panic if the Cells partially overlap]
(https://github.com/rust-lang/rust/pull/114795/)
- [Reject invalid crate names in `--extern`]
(https://github.com/rust-lang/rust/pull/116001/)
- [Don't resolve generic impls that may be shadowed by dyn built-in impls]
(https://github.com/rust-lang/rust/pull/114941/)
Internal Changes
----------------
These changes do not affect any public interfaces of Rust, but they represent
significant improvements to the performance or internals of rustc and related
tools.
None this cycle.
Files: