Rust 1.46 Programméiersprooch Fräisetzung

publizéiert Verëffentlechung 1.46 vun der Systemprogramméierungssprooch Rust, gegrënnt vum Mozilla-Projet. D'Sprooch konzentréiert sech op d'Erënnerungssécherheet, bitt automatesch Gedächtnisverwaltung a liwwert Tools fir en héije Aufgabeparallelismus z'erreechen ouni e Gerempels ze benotzen an Course.

Dem Rust seng automatesch Erënnerungsmanagement eliminéiert Feeler beim Manipulatioun vun Pointer a schützt géint Probleemer déi aus Low-Level Memory Manipulatioun entstinn, sou wéi Zougang zu enger Erënnerungsregioun nodeems se befreit gouf, Null Pointer Dereferences, Puffer Iwwerstonnen, etc. E Package Manager gëtt entwéckelt fir Bibliothéiken ze verdeelen, Assemblée ze garantéieren an Ofhängegkeete vum Projet ze managen. cargo, erlaabt Iech d'Bibliothéike fir de Programm an engem Klick ze kréien. E Repository gëtt ënnerstëtzt fir Bibliothéiken ze hosten crates.io.

Haaptstrooss Innovatiounen:

  • D'Kapazitéite vu Funktiounen definéiert mam Ausdrock "const fn" goufen erweidert, déi net nëmmen als regulär Funktiounen genannt kënne ginn, awer och an all Kontext anstatt Konstanten benotzt ginn. Dës Funktiounen ginn an der Zesummesetzungszäit berechent, net bei der Runtime, sou datt se bestëmmte Restriktiounen ënnerleien, sou wéi d'Fäegkeet nëmme vu Konstanten ze liesen.

    Déi nei Verëffentlechung läscht de Verbuet op d'Benotzung vu boolesche Betreiber ("&&" an "||") an esou Funktiounen, an erlaabt d'Benotzung vun "wann", "wann lass", "Match" Konstruktiounen,
    "während", "während loosse" an "schleifen", a bitt och d'Fäegkeet fir op Scheiwen ze konvertéieren (Slice, dynamesch Arrays) mam Ausdrock "&[T]". D'Benotzung vun dëse Funktiounen an de Funktiounen "const fn" erlaabt Iech e puer Ressourcen-intensiv Operatiounen op d'Kompilatiounsstadium ze réckelen. Zum Beispill mécht d'Ëmsetzung vun "const-sha1" et méiglech SHA-1 Hashes bei der Zesummesetzungszäit ze berechnen, wat zu enger Beschleunigung vu WinRT Bindungen fir Rust ëm bal 40 Mol féiert.

  • Fir Fehlermeldungen méi informativ ze maachen, ass d'Ënnerstëtzung fir den Attribut "#[track_caller]" stabiliséiert, wat nëtzlech ass fir Funktiounen wéi unwrap, wat Panik verursaache kann wann d'Typen falsch benotzt ginn. De spezifizéierte Attribut gëtt vum Panik Handler benotzt fir de Standort vum Uruff an enger Fehlermeldung ze drécken.
  • Den Attribut "const", deen d'Méiglechkeet bestëmmt et an all Kontext ze benotzen anstatt Konstanten, gëtt an der std :: mem :: forget Method benotzt.
  • En neien Deel vun der API gouf an déi stabil Kategorie geplënnert, dorënner déi stabiliséiert Optioun :: zip a vec :: Drain :: as_slice.
  • Am Package Manager Cargo dobäi Ënnerstëtzung fir nei Ëmfeldvariablen, déi gesat ginn wann Dir e Package kompiléiert: CARGO_BIN_NAME (Numm vun der resultéierender ausführbarer Datei), CARGO_CRATE_NAME (Packagenumm), CARGO_PKG_LICENSE (Lizenz spezifizéiert am Manifest), CARGO_PKG_LICENSE_FILE (Wee op d'Lizenzdatei).

Source: opennet.ru

Setzt e Commentaire