El equipo de Rust se complace en anunciar el lanzamiento de una nueva versión, 1.41.0. Rust es un lenguaje de programación que permite a todos crear software confiable y eficiente.
Si instaló la versión anterior de Rust usando herramientas rustup
, para actualizar a la versión 1.41.0 solo necesita ejecutar el siguiente comando:
rustup update stable
Si aún no lo ha instalado rustup
, puede instalarlo desde la página correspondiente de nuestro sitio web, así como ver las notas detalladas de la versión en GitHub.
Lo que se incluye en la versión estable 1.41.0
Las principales innovaciones de Rust 1.41.0 son la reducción de restricciones en la implementación de rasgos, mejoras cargo install
, el nuevo formato de archivo es Cargo.lock
más amigable para trabajar git
y nuevas garantías para aquellos Box<T>
asociados con FFI. Consulte las notas de la versión para obtener más información.
Reducción de restricciones en la implementación de rasgos
, , 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.