Rust 1.44 forritunarmálsútgáfa

birt útgáfu forritunarmáls kerfisins Ryð 1.44, stofnað af Mozilla verkefninu. Tungumálið einbeitir sér að minnisöryggi, veitir sjálfvirka minnisstjórnun og veitir verkfæri til að ná fram mikilli samsvörun verkefna án þess að nota sorphirðu og afturkreistingur.

Sjálfvirk minnisstjórnun Rust útilokar villur þegar verið er að meðhöndla ábendingar og verndar gegn vandamálum sem stafa af minni meðhöndlun á lágu stigi, eins og aðgangur að minnissvæði eftir að það hefur verið losað, frávísanir á núll bendi, offramkeyrsla á biðminni osfrv. Verið er að þróa pakkastjóra til að dreifa bókasöfnum, tryggja samsetningu og stjórna ósjálfstæði verkefnisins. Hleðsla, sem gerir þér kleift að fá þau bókasöfn sem þarf fyrir forritið með einum smelli. Geymsla er studd til að hýsa bókasöfn crates.io.

Í texta tilkynningu um nýju útgáfuna tóku Rust forritararnir þátt í stjórnmálum og neituðu beinlínis að birta fulla umfjöllun um breytingarnar á Rust 1.44 til marks um samstöðu með mótmælendum gegn lögregluofbeldi, sem gefur til kynna að þetta mál sé mikilvægara en skipti á tækniþekkingu. Basic nýjungar:

  • Farmpakkastjórinn samþættir „farmtré“ skipunina, sem sýnir trjálíkt ávanagraf. Einnig er bætt við valmöguleikanum „—duplicates“ (“cargo tree -d“), sem gerir þér kleift að meta ósjálfstæði í mismunandi útgáfum af sama pakka.

    mdbook v0.3.2 (/Users/src/rust/mdbook)
    ├── ammoníak v3.0.0
    │ ├── html5ever v0.24.0
    │ │ ├── log v0.4.8
    │ │ │ └── cfg-if v0.1.9
    │ │ ├── mac v0.1.1
    │ │ └── markup5ever v0.9.0
    │ │ ├── log v0.4.8 (*)
    │ │ ├── phf v0.7.24
    │ │ │ └── phf_shared v0.7.24
    │ │ │ ├── siphasher v0.2.3
    │ │ │ └── unicase v1.4.2
    │ │ │ [byggingarháðar] │ │ │ └── version_check v0.1.5
    ...

  • Fyrir forrit sem eru ekki bundin við std ("#![no_std]"), er stuðningur við ósamstillta forritunartækni útfærður á grundvelli "async" aðgerðarinnar, ósamstillingar hreyfingar { ... } blokk og ".await" stjórnanda, sem einfalda ritun non-blokkandi meðhöndlunar helstu stjórn flæði.
  • Stuðningur við stækkanlegt stigveldisskilgreiningarkerfi eininga hefur verið bætt við þáttarann. Til dæmis mun eftirfarandi smíði ekki framleiða villu, þrátt fyrir raunverulega fjarveru einingarinnar "foo/bar/baz.rs" (smíðin er enn merkingarlega ógild og getur valdið villu, en breytingarnar má sjá og flokka á makró og skilyrt söfnunarstig):

    #[cfg(FALSE)] mod foo {
    mod bar {
    mod baz;
    }
    }

  • Rustc þýðandinn hefur bætt við möguleikanum á að nota „-C codegen-units“ fánann í stigvaxandi ham. Útfærslan á catch_unwind hefur verið endurunnin þannig að hún hefur engin áhrif á frammistöðu ef slökkt er á afrakstursferlinu og engum undantekningum er hent.
  • Stuðningur 64 hefur verið veittur fyrir aarch64-unknown-none, aarch64-unknown-none-softfloat, arm86-apple-tvos og x64_XNUMX-apple-tvos pallana. Þriðja stigið felur í sér grunnstuðning, en án sjálfvirkrar prófunar og birtingar á opinberum byggingum.
  • Nýr hluti API hefur verið fluttur í stöðugan flokk, þar á meðal stöðug
    PathBuf::with_capacity,
    PathBuf::capacity,
    PathBuf::clear,
    PathBuf::reserve,
    PathBuf::reserve_exact,
    PathBuf::shrink_to_fit,
    {f32|f64}::to_int_unchecked,
    Skipulag::align_to,
    Skipulag::pad_to_align,
    Skipulag::array og
    Skipulag::lengja.

  • Auknar aðgerðir staðlaða bókasafnsins:
    • Bætt við sérstöku "vec![]" afbrigði sem endurspeglast beint í Vec::new(), sem gerir kleift að nota "vec![]" í samhengi í stað fasta.
    • Útfærslu (impl) á eiginleikanum hefur verið bætt við til að umbreyta::Infallible Hash.
    • OsString útfærir snjalla ábendingar DerefMut и IndexMut, skilar "&mut OsStr".
    • Bætti við stuðningi við Unicode 13.
    • Útfært í String Frá<&mut str>.
    • IoSlice útfærir eiginleikann Afrita.
    • Vec útfært Frá<[T; N]>.
    • proc_macro::LexError útfærir fmt::Display og Error.
  • „const“ eigindin, sem ákvarðar hvort hægt sé að nota hana í hvaða samhengi sem er í stað fasta, er notuð í aðferðunum from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes og to_ne_bytes aðferðum fyrir allar heiltölugerðir.
  • Bætti við stuðningi við að búa til kyrrstæð bókasöfn á ".a" sniði í stað ".lib" fyrir GNU palla á Windows.
  • Lágmarkskröfur fyrir LLVM hafa verið hækkaðar í LLVM útgáfu 8.

Heimild: opennet.ru

Bæta við athugasemd