Rust 1.64 scaoileadh teanga cláir

Tá scaoileadh na teanga ríomhchláraithe ilchuspóireach Rust 1.64, a bhunaigh an tionscadal Mozilla, ach atá forbartha anois faoi choimirce na heagraíochta neamhspleách neamhbhrabúis Rust Foundation, foilsithe. Díríonn an teanga ar shábháilteacht chuimhne agus cuireann sé bealaí ar fáil chun comhthreomhaireacht ard poist a bhaint amach agus úsáid á baint as bailitheoir truflais agus am rite a sheachaint (laghdaítear am rite go buntúsú agus cothabháil na leabharlainne caighdeánach).

Sábhálann modhanna láimhseála cuimhne Rust an forbróir ó earráidí nuair a bhíonn leideanna á n-ionramháil agus cosnaíonn siad i gcoinne fadhbanna a thagann chun cinn mar gheall ar láimhseáil cuimhne ar leibhéal íseal, mar shampla rochtain a fháil ar limistéar cuimhne tar éis é a shaoradh, leideanna nialais a dhíroghnú, róchaiteachas maoláin, etc. Chun leabharlanna a dháileadh, tógáil a sholáthar agus spleáchais a bhainistiú, forbraíonn an tionscadal an bainisteoir pacáiste lasta. Tacaítear leis an stór crates.io chun leabharlanna a óstáil.

Cuirtear sábháilteacht chuimhne ar fáil i Rust ag am tiomsaithe trí sheiceáil tagartha, súil a choinneáil ar úinéireacht réad, súil a choinneáil ar shaolréanna réad (scóip), agus measúnú a dhéanamh ar cheart an rochtain chuimhne le linn fhorghníomhú an chóid. Soláthraíonn Rust cosaint freisin i gcoinne ró-shreabhadh slánuimhir, éilíonn túsú éigeantach luachanna athraitheacha roimh úsáid, láimhseálann sé earráidí níos fearr sa leabharlann caighdeánach, cuireann sé coincheap na dtagairtí agus na n-athróg do-athraithe i bhfeidhm de réir réamhshocraithe, cuireann clóscríobh statach láidir ar fáil chun earráidí loighciúla a íoslaghdú.

Príomh-nuálaíochtaí:

  • Méadaíodh na ceanglais maidir le timpeallacht Linux sa tiomsaitheoir, bainisteoir pacáiste lasta agus leabharlann caighdeánach libstd - ardaíodh na ceanglais íosta do Glibc ó leagan 2.11 go 2.17, agus an eithne Linux ó leagan 2.6.32 go 3.2. Baineann na srianta freisin le feidhmchláir inrite Rust a tógadh le libstd. Comhlíonann na feisteáin dáileacháin RHEL 7, SLES 12-SP5, Debian 8 agus Ubuntu 14.04 na ceanglais nua. Scoirfear tacaíocht do RHEL 6, SLES 11-SP4, Debian 7 agus Ubuntu 12.04. Spreagtar úsáideoirí a úsáideann earraí inrite Rust-tógtha i dtimpeallachtaí a bhfuil eithne Linux níos sine acu a gcórais a uasghrádú, fanacht ar eisiúintí níos sine den tiomsaitheoir, nó a bhforc libstd féin a chothabháil le sraitheanna chun comhoiriúnacht a choinneáil.

    I measc na gcúiseanna le deireadh a chur le tacaíocht do chórais Linux níos sine tá acmhainní teoranta chun leanúint ar aghaidh ag cothabháil comhoiriúnacht le timpeallachtaí níos sine. Chun tacaíocht a thabhairt do Glibc oidhreachta ní mór uirlisí oidhreachta a úsáid agus seiceáil á déanamh i gcóras comhtháthaithe leanúnach, i bhfianaise na gceanglas maidir le leagan méadaitheach in LLVM agus i bhfóntais tras-thiomsaithe. Tá an méadú ar riachtanais leagan eithne mar gheall ar an gcumas glaonna córais nua a úsáid i libstd gan gá le sraitheanna a choinneáil chun comhoiriúnacht le heithne níos sine a chinntiú.

  • Tá an tréith IntoFuture cobhsaithe, atá cosúil le IntoIterator, ach atá éagsúil leis an dara ceann trí lúba “.await” a úsáid in ionad “for ... in ...”. Nuair a bheidh sé in éineacht le IntoFuture, is féidir leis an eochairfhocal ".await" a bheith ag súil ní hamháin le tréith don Todhchaí, ach freisin le haon chineálacha eile is féidir a thiontú go Todhchaí.
  • Tá an áirgiúlacht anailísí meirge san áireamh sa bhailiúchán fóntais a chuirtear ar fáil le heisiúintí meirge. Tá an áirgiúlacht ar fáil freisin le suiteáil ag baint úsáide as rustup (comhpháirt rustup cuir meirge-anailísí).
  • Áiríonn an bainisteoir pacáiste lasta oidhreacht spás oibre chun deireadh a chur le dúbailt comhluachanna réimse idir pacáistí, amhail leaganacha Rust agus URLanna stórtha. Chomh maith leis sin cuireadh tacaíocht le tógáil do roinnt sprioc-ardán ag an am céanna (is féidir leat níos mó ná paraiméadar amháin a shonrú anois sa rogha "--target").
  • Aistríodh cuid nua den API chuig an gcatagóir de chobhsaí, lena n-áirítear modhanna agus cur i bhfeidhm na dtréithe a chobhsú:
    • todhchaí::IntoFuture
    • uimh::NonZero*:: sheiceáil_mul
    • uimh::NonZero* :: checked_pow
    • uimh::NonZero* :: saturating_mul
    • uimh::NonZero* :: saturating_pow
    • uimh::NonZeroI*::abs
    • uimh::NonZeroI* :: sheiceáil_abs
    • uimh::NonZeroI* :: ag cur thar maoil_abs
    • uimh::NonZeroI*::sáithiú_abs
    • uimh::NonZeroI*::unsigned_abs
    • uimh ::NonZeroI* :: wrapping_abs
    • uimh::NonZeroU*:: sheiceáil_cuir
    • uimh::NonZeroU*:: sheiceáil_next_power_of_two
    • uimh::NonZeroU*::sáithithe_add
    • os :: unix :: próiseas :: CommandExt :: process_group
    • os::fuinneoga::fs::FileTypeExt::is_symlink_dir
    • os::fuinneoga::fs::FileTypeExt::is_symlink_file
  • Tá cineálacha C-comhoiriúnach, a cobhsaíodh roimhe seo sa mhodúl std::ffi, curtha leis an gcroíleabharlann agus leis an leabharlann alloc:
    • croí::ffi::Cstr
    • croí::ffi::FromBytesWithNulError
    • alloc ::ffi ::CSstring
    • alloc ::ffi ::FromVecWithNulError
    • alloc ::ffi ::IntoStringError
    • alloc ::ffi::NulError
  • Cuireadh cineálacha C a cobhsaíodh roimhe seo sa mhodúl std::os::amh leis na modúil croí::ffi agus std ::ffi (mar shampla, tá cineálacha c_uint agus c_ulong molta do na cineálacha uint agus ulong C):
    • fi::c_char
    • ffi::c_dúbailte
    • ffi::c_ snámh
    • fi::c_int
    • ffi::c_fada
    • ffi::c_fada
    • ffi::c_schar
    • ffi::c_gearr
    • ffi::c_uchar
    • fi::c_uint
    • fi::c_ulong
    • fi::c_ulong
    • ffi::c_ushort
  • Tá láimhseálaithe ísealleibhéil cobhsaithe lena n-úsáid leis an meicníocht Vótaíochta (tá sé beartaithe API simplithe a sholáthar amach anseo nach n-éilíonn úsáid struchtúir íseal-leibhéil cosúil le Tarraingt agus Bioráin):

    • todhchaí:: vótaíocht_fn
    • tasc::réidh!
  • Úsáidtear an aitreabúid “const”, a chinneann an fhéidearthacht é a úsáid in aon chomhthéacs seachas tairisigh, san fheidhm slisne::from_raw_parts.
  • Chun sonraí a stóráil ar bhealach níos dlúithe, athraíodh leagan amach cuimhne na struchtúr Ipv4Addr, Ipv6Addr, SocketAddrV4 agus SocketAddrV6. D’fhéadfadh saincheist chomhoiriúnachta a bheith ann maidir le pacáistí cliathbhosca aonair a úsáideann std::mem::transmute chun struchtúir ar leibhéal íseal a láimhseáil.
  • Úsáideann tógáil an tiomsaitheora meirge don ardán Windows leas iomlán a bhaint as PGO (uasmhéadú treoraithe próifíle), rud a d’fhág gur féidir feidhmíocht tiomsaithe cód a mhéadú 10-20%.
  • Tá rabhadh nua curtha i bhfeidhm ag an tiomsaitheoir faoi réimsí nár úsáideadh i struchtúir áirithe.

Ina theannta sin, is féidir leat an tuarascáil stádais a thabhairt faoi deara maidir le forbairt a dhéanamh ar chur i bhfeidhm eile ar an tiomsaitheoir teanga Rust, arna ullmhú ag an tionscadal gccrs (GCC Rust) agus ceadaithe le cur san áireamh sa GCC. Tar éis an frontend a chomhtháthú, is féidir na huirlisí caighdeánacha GCC a úsáid chun cláir a thiomsú sa teanga Rust gan gá an tiomsaitheoir rustc a shuiteáil, tógtha ag baint úsáide as forbairtí LLVM. Chomh fada agus a bheidh an fhorbairt ar an mbóthar ceart, agus gan aon fhadhbanna gan choinne a chosc, déanfar an t-éadan Rust a chomhtháthú le heisiúint GCC 13 atá sceidealta do Bhealtaine na bliana seo chugainn. Beidh cur i bhfeidhm GCC 13 Rust i stádas béite, nach bhfuil cumasaithe fós de réir réamhshocraithe.

Foinse: oscailtenet.ru

Add a comment