Rust 1.66 Famoahana ny fiteny fandaharana

Navoaka ny fiteny fandaharana Rust 1.66 amin'ny tanjona ankapobeny, naorin'ny tetikasa Mozilla saingy novolavolaina ankehitriny eo ambany fiahian'ny fikambanana tsy miankina Rust Foundation. Mifantoka amin'ny fiarovana ny fitadidiana ilay fiteny ary manome fitaovana ahafahana manatratra ny fitovian'ny asa avo lenta sady misoroka ny fampiasana mpanangom-pako sy ny fotoana fandehanana (ahena ny fotoana fampandehanana amin'ny fanombohana fototra sy fikojakojana ny tranomboky mahazatra).

Ny fomba fitantanana fitadidian'i Rust dia mamonjy ny mpamorona amin'ny hadisoana rehefa manodinkodina ny tondro ary miaro amin'ny olana mipoitra noho ny fikarakarana fitadidiana ambany, toy ny fidirana amin'ny faritra fitadidiana rehefa afaka izany, ny fanafoanana ireo tondro tsy misy dikany, ny fihoaran'ny buffer, sns. Mba hizarana trano famakiam-boky, manome fananganana ary mitantana ny fiankinan-doha, ny tetikasa dia mamolavola ny mpitantana fonosana Cargo. Ny tahiry crates.io dia tohanana amin'ny fampiantranoana tranomboky.

Ny fiarovana ny fitadidiana dia omena ao amin'ny Rust amin'ny fotoana fanangonana amin'ny alΓ lan'ny fanamarinana reference, ny fanaraha-maso ny fananana zavatra, ny fanaraha-maso ny androm-piainan'ny zavatra (scopes), ary ny fanombanana ny fahamarinan'ny fidirana fahatsiarovana mandritra ny famonoana ny code. Ny Rust koa dia manome fiarovana amin'ny fihoaran'ny integer, mitaky fanombohana tsy maintsy atao ny soatoavina miovaova alohan'ny fampiasana, mitantana ny lesoka tsara kokoa ao amin'ny tranomboky mahazatra, mampihatra ny foto-kevitry ny references sy ny variables tsy miova amin'ny alΓ lan'ny default, manolotra fanoratana static mahery mba hampihenana ny fahadisoana lojika.

Fanavaozana lehibe:

  • Ao amin'ny fanisana misy tarehimarika integer (ny toetra "#[repr(Int)]") dia azo atao ny manondro mazava ny fanavakavahana (ny isan'ny safidy ao amin'ny fanisana), na dia misy saha aza ny fanisana. #[repr(u8)] enum Foo { A(u8), # manavakavaka 0 B(i8), # manavakavaka 1 C(bool) = 42, # manavakavaka 42 }
  • Nampiana fototra::hint::black_box, izay mamerina fotsiny ny sanda voaray. Satria ny compiler dia mino fa ny asa nomena dia manao zavatra manokana, ny black_box function dia azo ampiasaina hanesorana ny optimization ny compiler amin'ny tadivavarana rehefa manao fitsapana fampisehoana code na rehefa mandinika ny code machine (mba tsy hiheveran'ny compiler fa tsy azo ampiasaina ny code ary manala azy. azy). Ohatra, amin'ny ohatra etsy ambany, ny fanondroana black_box(v.as_ptr()) dia manakana ny compiler tsy hihevitra fa tsy ampiasaina ny vector v. mampiasa std::hint::black_box; fn push_cap(v: &mut Vec) { for i in 0..4 { v.push(i); black_box(v.as_ptr()); } }
  • Ny mpitantana fonosana "cargo" dia manolotra ny baiko "esory", izay ahafahanao manala ny fiankinan-doha amin'ny fanehoana Cargo.toml amin'ny tsipika baiko.
  • Ny ampahany vaovao amin'ny API dia nafindra ho amin'ny sokajy stable, ao anatin'izany ny fomba sy ny fampiharana ny toetra efa niorina:
    • proc_macro::Span::source_text
    • u*::{checked_add_signed, overflowing_add_signed, saturating_add_signed, wrapping_add_signed}
    • i*::{checked_add_unsigned, overflowing_add_unsigned, saturating_add_unsigned, wrapping_add_unsigned}
    • i*::{checked_sub_unsigned, overflowing_sub_unsigned, saturating_sub_unsigned, wrapping_sub_unsigned}
    • BtreeSet::{voalohany, farany, pop_voalohany, pop_farany}
    • BTreeMap::{voalohany_key_value, farany_key_value, voalohany_niditra, farany_niditra, pop_voalohany, pop_farany}
    • Ampio ny fampiharana AsFd ho an'ny karazana hidin-trano stdio rehefa mampiasa WASI.
    • impl TryFrom > ho an'ny boaty<[T; N]>
    • core::hint::black_box
    • Faharetana:: try_from_secs_{f32,f64}
    • Safidy:: unzip
    • std::os::fd
  • Ny fampiasana ny laharana "..X" sy "..=X" dia azo atao amin'ny mΓ΄dely.
  • Rehefa manangona ny frontend ny rustc compiler sy ny backend an'ny LLVM, dia ampiasaina ny maodely optimization LTO (Link Time Optimization) sy BOLT (Binary Optimization and Layout Tool), izay mamela ny fampitomboana ny fahombiazan'ny kaody vokarina ary ny fampihenana ny fanjifana fahatsiarovana.
  • Ny fanohanana ambaratonga fahatelo dia nampiharina ho an'ny sehatra armv5te-none-eabi sy thumbv5te-none-eabi. Ny ambaratonga fahatelo dia misy fanohanana fototra, saingy tsy misy fitiliana mandeha ho azy, famoahana fananganana ofisialy, na fanamarinana raha azo amboarina ny kaody.
  • Fanampiana fanampiny amin'ny fampifandraisana amin'ny tranomboky iraisam-pirenena macOS.

Fanampin'izany, azontsika atao ny manamarika ny fampidirana ny faran'ny voalohany amin'ny mpamorona fiteny Rust (gccrs) ao amin'ny fototry ny kaody GCC. Ny frontend dia tafiditra ao amin'ny sampana GCC 13, izay hivoaka amin'ny Mey 2023. Manomboka amin'ny GCC 13, ny fitaovana GCC teratany dia azo ampiasaina hanangonana programa amin'ny fiteny Rust tsy mila mametraka ny compiler rustc, namboarina tamin'ny fampivoarana LLVM. Ny fampiharana GCC 13 an'ny Rust dia ho dikan-teny beta, tsy alefa amin'ny alΓ lan'ny default.

Source: opennet.ru

Add a comment