ipata 1.57 Siseto ede Tu

Itusilẹ ti ede siseto eto Rust 1.57, ti o da nipasẹ iṣẹ akanṣe Mozilla, ṣugbọn ni idagbasoke ni bayi labẹ awọn itusilẹ ti ominira ti kii ṣe èrè agbari Rust Foundation, ni a ti tẹjade. Ede naa dojukọ aabo iranti, pese iṣakoso iranti aifọwọyi, ati pese awọn ọna lati ṣaṣeyọri isọdọkan iṣẹ-ṣiṣe giga laisi lilo agbasọ idoti tabi akoko asiko (akoko asiko ti dinku si ipilẹṣẹ ipilẹ ati itọju ile-ikawe boṣewa).

Iṣakoso iranti aifọwọyi ti Rust yọkuro awọn aṣiṣe nigbati o ba n ṣakoso awọn itọka ati aabo lodi si awọn iṣoro ti o dide lati ifọwọyi iranti ipele kekere, gẹgẹ bi iraye si agbegbe iranti lẹhin ti o ti ni ominira, awọn ifọkasi ijuboluwole asan, awọn agbekọja buffer, ati bẹbẹ lọ. Lati kaakiri awọn ile-ikawe, rii daju apejọ ati ṣakoso awọn igbẹkẹle, iṣẹ akanṣe n dagbasoke oluṣakoso package Cargo. Ibi ipamọ crates.io jẹ atilẹyin fun awọn ile-ikawe alejo gbigba.

Awọn imotuntun akọkọ:

  • Lilo Makiro “ijaaya!” ti ni imuduro. ni awọn ipo ti a ṣẹda lakoko iṣakojọpọ, gẹgẹbi awọn ikede “const fn”. Ni afikun, ni afikun si lilo "ijaaya!" const declarations gba awọn lilo ti awọn Makiro "isọ!" ati diẹ ninu awọn miiran boṣewa ìkàwé APIs. Iduroṣinṣin ko sibẹsibẹ bo gbogbo awọn amayederun kika, nitorinaa ni fọọmu lọwọlọwọ rẹ macro “ijaaya!” le ṣee lo pẹlu awọn gbolohun ọrọ aimi (ijaaya! (“…”))) tabi pẹlu iye interpolated kan ṣoṣo "&str" nigbati o ba rọpo (ijaaya! }" laisi awọn ọna kika ati awọn iru miiran. Ni ọjọ iwaju, iwulo ti awọn macros ni awọn ipo igbagbogbo yoo pọ si, ṣugbọn awọn agbara imuduro ti to tẹlẹ lati ṣe awọn sọwedowo assert ni ipele akopo: const _: () = assert!(std:: mem:: size_of:: ()== 64); const _: () = assert!(std:: mem:: size_of:: ()== 8);
  • Oluṣakoso package Eru gba laaye lilo awọn profaili pẹlu awọn orukọ lainidii, ko ni opin si “dev”, “itusilẹ”, “idanwo” ati “ibujoko”. Fun apẹẹrẹ, lati mu iṣapeye ṣiṣẹ ni ipele ọna asopọ (LTO) nikan nigbati awọn apejọ ọja ikẹhin ba ti ipilẹṣẹ, o le ṣẹda profaili “gbóògì” ni Cargo.toml ki o ṣafikun asia “lto = otitọ” si rẹ. Sibẹsibẹ, nigba asọye awọn profaili tirẹ, o gbọdọ pato profaili to wa tẹlẹ lati jogun awọn eto aiyipada lati ọdọ rẹ. Apeere ti o wa ni isalẹ ṣẹda profaili “iṣelọpọ” ti o ṣe ibamu si profaili “itusilẹ” nipasẹ pẹlu asia “lto = otitọ”. Awọn profaili ara ti wa ni mu ṣiṣẹ nipa pipe eru pẹlu awọn aṣayan "-profaili gbóògì", ati awọn ohun-elo apejọ yoo wa ni gbe sinu "afojusun / gbóògì" liana. [profile.production] jogun = "tu silẹ" lto = otitọ
  • Lilo try_reserve fun Vec, okun, HashMap, HashSet ati awọn oriṣi VecDeque ti ni iduroṣinṣin, eyiti o fun ọ laaye lati ṣafipamọ aaye siwaju fun nọmba kan ti awọn eroja ti iru ti a fun ni lati dinku igbohunsafẹfẹ ti awọn iṣẹ ipin iranti ati yago fun ipadanu nigba isẹ ti nitori aini ti iranti.
  • O gba ọ laaye lati tokasi awọn macros pẹlu awọn àmúró iṣupọ ni awọn ọrọ bii “m!{ .. }.ọna ()” ati “m!{ .. }?”.
  • Iṣiṣẹ Faili :: read_to_end ati read_to_string awọn iṣẹ ti jẹ iṣapeye.
  • Atilẹyin fun sipesifikesonu Unicode ti ni imudojuiwọn si ẹya 14.0.
  • Faagun nọmba awọn iṣẹ ti o samisi "#[must_use]" lati fun ikilọ kan ti iye ipadabọ ko ba kọbikita, eyiti o ṣe iranlọwọ idanimọ awọn aṣiṣe ti o ṣẹlẹ nipasẹ ro pe iṣẹ kan yoo yi awọn iye pada dipo ki o da iye tuntun pada.
  • Fikun ẹhin esiperimenta fun iran koodu nipa lilo libgccjit.
  • Apa tuntun ti API ni a ti gbe si ẹka ti iduroṣinṣin, pẹlu awọn ọna ati awọn imuse ti awọn abuda ti jẹ imuduro:
    • [T; N] :: as_mut_slice
    • [T; N] :: bi_slice
    • awọn akojọpọ :: GbiyanjuReserveError
    • HashMap:: gbiyanju_reserve
    • HashSet :: gbiyanju_reserve
    • Okun :: gbiyanju_reserve
    • Okun :: try_reserve_exact
    • Vec :: gbiyanju_reserve
    • Vec :: gbiyanju_reserve_exact
    • VecDeque :: try_reserve
    • VecDeque :: try_reserve_exact
    • Iterator :: maapu_akoko
    • iter :: MapNigba
    • proc_macro :: ni_available
    • Pipaṣẹ :: gba_eto
    • Aṣẹ :: gba_args
    • Aṣẹ :: gba_envs
    • Òfin :: gba_current_dir
    • CommandArgs
    • CommandEnvs
  • Ẹya “const”, eyiti o pinnu boya o le ṣee lo ni eyikeyi ipo dipo awọn iduro, ni a lo ninu itọka iṣẹ naa :: unreachable_unchecked.
  • Ipele kẹta ti atilẹyin ti ni imuse fun armv6k-nintendo-3ds, armv7-unknown-linux-uclibceabihf, m68k-unknown-linux-gnu, aarch64-kmc-solid_asp3, armv7a-kmc-solid_asp3-eabi ati armv7a-kmc- solid_asp3-eabihf awọn iru ẹrọ. Ipele kẹta jẹ atilẹyin ipilẹ, ṣugbọn laisi idanwo adaṣe, titẹjade awọn ile-iṣẹ osise, tabi ṣayẹwo boya koodu naa le kọ.

orisun: opennet.ru

Fi ọrọìwòye kun