Rust 1.52 Programméiersprooch Fräisetzung

D'Verëffentlechung vun der Systemprogramméierungssprooch Rust 1.52, gegrënnt vum Mozilla-Projet, awer elo entwéckelt ënner der Regie vun der onofhängeger Asbl Rust Foundation, gouf publizéiert. D'Sprooch konzentréiert sech op Erënnerung Sécherheet, stellt automatesch Erënnerung Gestioun, a stellt d'Mëttel fir eng héich Aufgab parallelism ze erreechen ouni e Gerempels Sammelstécker oder Runtime benotzen (Runtime ass reduzéiert op Basis initialization an Ënnerhalt vun der Standard Bibliothéik).

D'automatesch Erënnerungsmanagement vum Rust eliminéiert Feeler beim Manipulatioun vun Pointer a schützt géint Probleemer déi aus der Manipulatioun vun der Gedächtnis op engem nidderegen Niveau entstinn, sou wéi Zougang zu enger Erënnerungsregioun nodeems se befreit gouf, Null Pointer-Dereferenzen, Pufferiwwerschlag, etc. Fir Bibliothéiken ze verdeelen, Assemblée ze garantéieren an Ofhängegkeeten ze managen, entwéckelt de Projet de Cargo Package Manager. De crates.io Repository gëtt ënnerstëtzt fir Bibliothéiken ze hosten.

Haaptinnovatiounen:

  • Geläscht Bindung un d'Uerdnung vun der Ausféierung vun de Kommandoen "cargo check" an "cargo clippy". Virdrun, "cargo clippy" ze ruffen no "cargo check" huet de clippy Utility (Linter) net gestart wéinst dem Mangel u Cache-Trennung fir dës Scheckmodi. Elo ass dëse Problem geléist an d'Uerdnung an där "Cargo Clippy" an "Cargo Check" genannt ginn ass net méi wichteg.
  • En neien Deel vun der API gouf an déi stabil Kategorie transferéiert, dorënner déi folgend Methoden goufen stabiliséiert:
    • Argumenter::as_str
    • char :: MAX
    • char::REPLACEMENT_CHARACTER
    • char::UNICODE_VERSION
    • char::decode_utf16
    • char::from_digit
    • char::from_u32_unchecked
    • char::vum_u32
    • Slice :: partition_point
    • str::rsplit_once
    • str::split_eemol
  • Den Attribut "const", wat d'Méiglechkeet bestëmmt et an all Kontext ze benotzen anstatt Konstanten, gëtt an de Methoden benotzt:
    • char::len_utf8
    • char::len_utf16
    • char::to_ascii_uppercase
    • char::to_ascii_lowercase
    • char::eq_ignore_ascii_case
    • u8::to_ascii_uppercase
    • u8::to_ascii_kleinbuchstaben
    • u8::eq_ignore_ascii_case
  • Füügt Lintcheck unsafe_op_in_unsafe_fn fir ze bestëmmen ob en onséchere Code, deen an onséchere Funktiounen benotzt gëtt, vun onséchere Blocken encadréiert gëtt.
  • Et ass erlaabt mutéierbar Zeeche op Arrays an d'Form vun Hiweiser op d'Aart vum Arrayelement ze werfen. loosst mut x: [benotzen; 2] = [0, 0]; loosse p = & mut x als * mut benotzen; loosse p = & mut x als * const benotzen;
  • 9 nei Schecken goufen op Clippy (Linter) bäigefüügt.
  • De Cargo Package Manager ënnerstëtzt elo de "manifest_path" Feld am JSON fir Packagen. Ënnerstëtzung bäigefüügt fir Lizenzinformatioun am SPDX 3.11 Format an de crates.io Repository ze spezifizéieren.
  • Et ass erlaabt méi Filtere ze spezifizéieren wann Dir Tester leeft, zum Beispill "Cargo Test - Foo Bar" lafen all Tester déi mat de Masken "foo" a "Bar" passen.
  • De Standard LLVM Toolkit gouf op LLVM 12 aktualiséiert.
  • Den drëtten Niveau vun der Ënnerstëtzung gouf fir d's390x-unknown-linux-musl, riscv32gc-unknown-linux-musl, riscv64gc-unknown-linux-musl a powerpc-unknown-openbsd Plattformen implementéiert. Den drëtten Niveau beinhalt Basis Ënnerstëtzung, awer ouni automatiséiert Testen, Verëffentlechung vun offiziellen Builds, a Verifizéierung vun der Code Baubarkeet.

Source: opennet.ru

Setzt e Commentaire