Sgaoileadh cànain prògramaidh Rust 1.58

Chaidh foillseachadh a’ chànain prògramaidh adhbhar coitcheann Rust 1.58, a stèidhich pròiseact Mozilla, ach a chaidh a leasachadh a-nis fo sgèith na buidhne neo-eisimeileach neo-phrothaideach Rust Foundation, fhoillseachadh. Tha an cànan ag amas air sàbhailteachd cuimhne, a’ toirt seachad riaghladh cuimhne fèin-ghluasadach, agus a’ toirt seachad dòigh air co-shìnteachd àrd-obrach a choileanadh gun a bhith a’ cleachdadh inneal-cruinneachaidh sgudail no ùine ruith (tha ùine ruith air a lughdachadh gu toiseach tòiseachaidh is cumail suas an leabharlainn àbhaisteach).

Bidh riaghladh cuimhne fèin-ghluasadach Rust a’ sàbhaladh an leasaiche bho mhearachdan nuair a bhios e a’ làimhseachadh chomharran agus a’ dìon an aghaidh dhuilgheadasan a thig am bàrr mar thoradh air làimhseachadh cuimhne aig ìre ìosal, leithid faighinn gu raon cuimhne às deidh dha a bhith air a shaoradh, a’ toirt iomradh air comharran null, cus bufair, msaa. Gus leabharlannan a sgaoileadh, togail a thoirt seachad agus eisimeileachd a riaghladh, bidh am pròiseact a’ leasachadh manaidsear pacaid Cargo. Tha an stòr crates.io a’ faighinn taic airson aoigheachd a thoirt do leabharlannan.

Prìomh innleachdan:

  • Ann am blocaichean cruth loidhne, a bharrachd air a’ chomas a bha ri fhaighinn roimhe caochladairean a chaidh an liostadh gu soilleir às deidh loidhne a rèir àireamh is ainm a chuir an àite, tha an comas aithnichearan neo-riaghailteach a chuir an àite le bhith a’ cur an abairt “{identifier}” ris an loidhne air a bhuileachadh. Mar eisimpleir: // Togalaichean le taic roimhe: println!("Hello, {}!", get_person()); println!("Hello, {0}!", get_person()); println!("Hello, {person}!", person = get_person()); // a-nis is urrainn dhut leigeil le neach = get_person (); println!("Hello, {duine}!");

    Faodar comharran-aithneachaidh a shònrachadh gu dìreach ann an roghainnean cruth. leig (leud, mionaideachd) = get_format (); airson (ainm, sgòr) ann an get_scores() { println!("{name}: {score:width$.precision$}"); }

    Bidh an neach-ionaid ùr ag obair anns a h-uile macros a bheir taic do mhìneachadh cruth sreang, ach a-mhàin am macro “panic!”. anns na dreachan 2015 agus 2018 den chànan Rust, anns a bheil clisgeadh! (“{ident}”) air a làimhseachadh mar shreang cunbhalach (ann an Rust 2021 bidh an neach-ionaid ag obair).

  • Giùlan an std :: phròiseas :: Chaidh structar àithne air àrd-ùrlar Windows atharrachadh gus nach bi e a’ coimhead airson faidhlichean so-ghnìomhaichte san eòlaire gnàthach nuair a thathar a’ coileanadh òrdughan, airson adhbharan tèarainteachd. Tha an eòlaire gnàthach air a dùnadh a-mach oir dh’ fhaodadh e a bhith air a chleachdadh gus còd droch-rùnach a chuir an gnìomh ma tha prògraman gan ruith ann an clàran neo-earbsach (CVE-2021-3013). Tha an loidsig lorg gnìomh ùr a’ toirt a-steach a bhith a’ sgrùdadh seòlaidhean Rust, an eòlaire tagraidh, eòlaire siostam Windows, agus na seòlaidhean a tha air an sònrachadh ann an caochladair àrainneachd PATH.
  • Tha an leabharlann àbhaisteach air leudachadh a dhèanamh air an àireamh de ghnìomhan le comharradh “#[must_use]” gus rabhadh a thoirt seachad ma thèid an luach tilleadh a leigeil seachad, a chuidicheas le bhith ag aithneachadh mhearachdan a dh’ adhbhraich le bhith a’ gabhail ris gun atharraich gnìomh luachan seach luach ùr a thilleadh.
  • Chaidh cuibhreann ùr den API a ghluasad chun roinn de stàball, a’ toirt a-steach dòighean agus buileachadh feartan air an socrachadh:
    • Metadata::is_symlink
    • Slighe:: is_symlink
    • {slànaighear} :: saturating_div
    • Roghainn:: unwrap_unchecked
    • Toradh::unwrap_unchecked
    • Toradh::unwrap_err_unchecked
  • Tha am feart “const”, a tha a’ dearbhadh comasachd a chleachdadh ann an co-theacsa sam bith an àite seasmhach, air a chleachdadh anns na gnìomhan:
    • Ùine:: ùr
    • Ùine :: checked_add
    • Ùine :: saturating_add
    • Ùine :: checked_sub
    • Ùine :: saturating_sub
    • Ùine :: checked_mul
    • Ùine :: saturating_mul
    • Ùine :: checked_div
  • Ceadaichte iomradh a thoirt air comharran “* const T” ann an co-theacsan “const”.
  • Ann am manaidsear pacaid Cargo, chaidh an raon rust_version a chur ris a’ mheata-dàta pacaid, agus chaidh an roghainn “--message-format” a chur ris an àithne “stàladh cargo”.
  • Bidh an neach-cruinneachaidh a’ cur an gnìomh taic airson uidheamachd dìon CFI (Sruth-smachd Ionracas), a chuireas seicichean ro gach gairm neo-dhìreach gus cuid de sheòrsan giùlan neo-mhìnichte a lorg a dh’ fhaodadh leantainn gu briseadh an òrdugh cur gu bàs àbhaisteach (sruth smachd) mar thoradh air an cleachdadh cleasan a dh’atharraicheas comharran a tha air an stòradh sa chuimhne air gnìomhan.
  • Tha an neach-cruinneachaidh air taic a chuir ris airson dreachan 5 agus 6 de chruth coimeas còmhdach LLVM, air a chleachdadh gus còmhdach còd a mheasadh rè deuchainn.
  • Anns an inneal-cruinneachaidh, tha na riatanasan airson an dreach as ìsle de LLVM air an àrdachadh gu LLVM 12.
  • Chaidh an treas ìre de thaic airson an àrd-ùrlar x86_64-unknown-none a chuir an gnìomh. Tha an treas ìre a’ toirt a-steach taic bhunaiteach, ach às aonais deuchainn fèin-ghluasadach, foillseachadh toglaichean oifigeil, no sgrùdadh an gabh an còd a thogail.

A bharrachd air an sin, is urrainn dhuinn toirt fa-near foillseachadh Microsoft mu fhoillseachadh Rust airson Windows 0.30 leabharlannan, a leigeas leat an cànan Rust a chleachdadh gus tagraidhean a leasachadh airson an Windows OS. Anns an t-seata tha dà phacaid crate (uinneagan agus windows-sys), tron ​​​​urrainn dhut faighinn gu prògraman Win API in Rust. Tha còd airson taic API air a chruthachadh gu dinamach bho mheata-dàta a’ toirt cunntas air an API, a leigeas leat taic a chuir an gnìomh chan ann a-mhàin airson gairmean Win API a tha ann mar-thà, ach airson fiosan a nochdas san àm ri teachd. Bidh an dreach ùr a’ cur taic ris an àrd-ùrlar targaid UWP (Universal Windows Platform) agus a’ buileachadh nan seòrsachan Handle and Debug.

Source: fosgailtenet.ru

Cuir beachd ann