Das Rust-Team freut sich, die Veröffentlichung einer neuen Version 1.41.0 bekannt zu geben. Rust ist eine Programmiersprache, mit der jeder zuverlässige und effiziente Software erstellen kann.
Wenn Sie die vorherige Version von Rust mit Tools installiert haben rustup
, müssen Sie zum Upgrade auf Version 1.41.0 nur den folgenden Befehl ausführen:
rustup update stable
Wenn Sie es noch nicht installiert haben rustup
, können Sie es auf der entsprechenden Seite unserer Website installieren und detaillierte Versionshinweise auf GitHub lesen.
Was ist in der stabilen Version 1.41.0 enthalten
Die wichtigsten Neuerungen von Rust 1.41.0 die Lockerung der Beschränkungen für die Umsetzung der Merkmale sind Verbesserungen cargo install
, das neue Dateiformat Cargo.lock
ist freundlicher zu der Arbeit mit git
und neuen Garantien für diejenigen Box<T>
mit FFI verbunden. Siehe Release Notes für weitere Informationen.
Lockerung der Einschränkungen bei der Umsetzung von Merkmalen
, , Rust (orphan rule). , , , , .. . , .
Rust 1.41.0 , . , BetterVec<T>
, Vec<T>
. :
impl<T> From<BetterVec<T>> for Vec<T> {
}
… :
impl<T> ForeignTrait<LocalType> for ForeignType<T> {
}
Rust 1.40.0 impl
, From
Vec
, . , newtype, .
From
Vec
, ( From
) . , Rust 1.41.0 impl
.
RFC.
cargo install
cargo install
. CLI-, Rust.
Rust 1.41.0, cargo install
, . --force
, .
, Cargo Cargo.lock
, . , .
Rust 1.41.0 , . lock
-, . , , PR, .
Box<T>
FFI
Rust 1.41.0, , Box<T>
, T: Sized
, ABI C (T*
). , extern "C"
Rust C, Rust Box<T>
- T
, T*
C. , C :
struct Foo* foo_new(void);
void foo_delete(struct Foo*);
… Rust :
#[repr(C)]
pub struct Foo;
#[no_mangle]
pub extern "C" fn foo_new() -> Box<Foo> {
Box::new(Foo)
}
#[no_mangle]
pub extern "C" fn foo_delete(_: Option<Box<Foo>>) {}
, , Box<T>
T*
ABI, Box<T>
-null, . , — Box
', .
: Box<T>
, C, Rust. C. Box<T>
, C T*
.
, Box<T>
.
Rust 1.41.0, :
Rust 1.41.0 32- Apple, i686-apple-darwin
. Rust 1.42.0 .
.
, Cargo Clippy . MIR, : "Inside Rust".
1.41.0
, Rust 1.41.0. , !
Rust - .
andreevlex, blandger, funkill, P0lunin nlinker.