L'équipe Rust est heureuse d'annoncer la sortie d'une nouvelle version, 1.41.0. Rust est un langage de programmation qui permet à chacun de créer des logiciels fiables et efficaces.
Si vous avez installé la version précédente de Rust à l'aide d'outils rustup
, pour mettre à niveau vers la version 1.41.0, il vous suffit d'exécuter la commande suivante:
rustup update stable
Si vous ne l'avez pas déjà installé rustup
, vous pouvez l' installer à partir de la page correspondante de notre site Web, ainsi que voir les notes de version détaillées sur GitHub.
Ce qui est inclus dans la version stable 1.41.0
Les principales innovations de Rust 1.41.0 sont l'assouplissement des restrictions sur la mise en œuvre des traits, les améliorations cargo install
, le nouveau format de fichier est Cargo.lock
plus convivial git
et les nouvelles garanties pour ceux Box<T>
associés à FFI. Voir les notes de version pour plus d'informations.
Assouplissement des restrictions sur la mise en œuvre des traits
, , 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.