A equipe Rust tem o prazer de anunciar o lançamento de uma nova versão, 1.41.0. Rust é uma linguagem de programação que permite a todos criar software confiável e eficiente.
Se você instalou a versão anterior do Rust usando ferramentas rustup
, para atualizar para a versão 1.41.0, basta executar o seguinte comando:
rustup update stable
Se você ainda não o instalou rustup
, pode instalá-lo na página correspondente do nosso site, bem como ver notas de versão detalhadas no GitHub.
O que está incluído na versão estável 1.41.0
As principais inovações do Rust 1.41.0 são a redução de restrições na implementação de características, melhorias cargo install
, o novo formato de arquivo é Cargo.lock
mais amigável de se trabalhar git
e novas garantias para os Box<T>
associados ao FFI. Veja as notas de versão para mais informações.
Facilitando as restrições na implementação de características
, , 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.