Sgaoileadh cànain prògramaidh Rust 1.60

Chaidh foillseachadh cànan prògramadh adhbhar coitcheann Rust 1.60, a chaidh a stèidheachadh le 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 a’ cuimseachadh air sàbhailteachd cuimhne agus a’ toirt seachad dòighean air co-shìnteachd obrach àrd a choileanadh fhad ‘s a tha e a’ seachnadh cleachdadh neach-cruinneachaidh sgudail agus ùine ruith (tha ùine ruith air a lughdachadh gu toiseach tòiseachaidh agus cumail suas an leabharlann àbhaisteach).

Bidh dòighean làimhseachaidh cuimhne Rust a’ sàbhaladh an leasaiche bho mhearachdan nuair a bhios iad 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.

Tha sàbhailteachd cuimhne air a thoirt seachad ann an Rust aig àm cruinneachaidh tro sgrùdadh iomraidh, cumail sùil air seilbh nithean, cumail sùil air beatha nithean (scopes), agus measadh dè cho ceart ‘s a tha ruigsinneachd cuimhne rè coileanadh còd. Bidh Rust cuideachd a’ toirt dìon an aghaidh thar-shruthan iomlan, a’ feumachdainn luachan caochlaideach a thòiseachadh mus tèid an cleachdadh, a’ làimhseachadh mhearachdan nas fheàrr san leabharlann àbhaisteach, a’ cur an gnìomh bun-bheachd iomraidhean neo-sheasmhach agus caochladairean gu bunaiteach, a’ tabhann clò-sgrìobhadh làidir statach gus mearachdan loidsigeach a lughdachadh.

Prìomh innleachdan:

  • Tha siostam seasmhach stèidhichte air LLVM aig an inneal-cruinneachaidh rustc airson dàta còmhdaich a ghineadh a thèid a chleachdadh gus còmhdach còd a mheasadh rè deuchainn. Gus dàta còmhdaich a chomasachadh aig àm co-chruinneachadh, feumaidh tu a’ bhratach “-Cinstrument-coverage” a chleachdadh, mar eisimpleir, a’ tòiseachadh a’ cho-chruinneachadh leis an àithne “RUSTFLAGS =” -C instrument-coverage” cargo build”. Às deidh dhut am faidhle so-ghnìomhaichte a chaidh a chur ri chèile san dòigh seo a ruith, thèid am faidhle default.profraw a shàbhaladh san eòlaire gnàthach, airson a ghiullachd as urrainn dhut an goireas llvm-profdata a chleachdadh bhon phàirt llvm-tools-preview. Faodar an toradh a chaidh a phròiseasadh le llvm-profdata an uairsin a chuir gu llvm-cov gus aithisg còmhdach còd le notaichean a ghineadh. Tha fiosrachadh mun cheangal ris a’ chòd stòr air a thoirt bhon fhaidhle so-ghnìomhaichte a thathar a’ sgrùdadh, anns a bheil an dàta riatanach mun cheangal eadar cunntairean còmhdaich agus an còd. 1| 1|fn prìomh() {2| 1| println!("Hello, world!"); 3| 1|}
  • Ann am manaidsear pacaid bathair, chaidh taic don bhratach “-timeings” a dhèanamh seasmhach, a tha a’ toirt a-steach cruthachadh aithisg mhionaideach air adhartas an togalaich agus àm cur gu bàs gach ceum. Dh’ fhaodadh an aithisg a bhith feumail airson coileanadh a’ phròiseas cruinneachaidh a bharrachadh.
  • Bidh am manaidsear pacaid cargo a’ tabhann co-chòrdadh ùr airson uidheamachd cruinneachadh cumhach agus taghadh eisimeileachd roghainneil, air a rèiteachadh ann am faidhle Cargo.toml le bhith a’ liostadh liosta de thogalaichean ainmichte anns an roinn [feartan] agus air a ghnìomhachadh le bhith a’ comasachadh nan togalaichean rè togail a’ phacaid. a’ cleachdadh a’ bhratach “--features”. Tha an dreach ùr a’ cur taic ri eisimeileachd ann an àiteachan ainmean fa-leth agus eisimeileachd lag.

    Anns a’ chiad chùis, tha e comasach eileamaidean a chleachdadh leis an ro-leasachan “dep:” taobh a-staigh na h-earrainn “[feartan]” gus ceangal soilleir a dhèanamh ri eisimeileachd roghainneil gun a bhith a’ riochdachadh an eisimeileachd seo gu soilleir mar fheart. Anns an dàrna cùis, chaidh taic airson comharrachadh leis an t-soidhne “?” a chuir ris. ("package-name?/feature-name") eisimeileachd roghainneil nach bu chòir a thoirt a-steach ach ma tha seilbh eile a 'gabhail a-steach an eisimeileachd roghnach a chaidh a thoirt seachad. Mar eisimpleir, anns an eisimpleir gu h-ìosal, le bhith a’ comasachadh an t-seilbh serde leigidh an eisimeileachd “serde”, a bharrachd air an t-seilbh “serde” airson an eisimeileachd “rgb”, ach dìreach ma tha an eisimeileachd “rgb” air a chomasachadh ann an àite eile: [eisimeileachd] serde = { tionndadh = " 1.0.133", roghainneil = true } rgb = { dreach = "0.8.25", roghainneil = true } [feartan] serde = [ "dep:serde", "rgb?/serde"]

  • Chaidh taic airson cruinneachadh mean air mhean, a chaidh a chiorramachadh san fhoillseachadh mu dheireadh, a thilleadh. Chaidh am bug cruinneachaidh a dh’ adhbhraich am feart a chiorramachadh.
  • Dh ’fhuasgail sinn cuid de dhuilgheadasan le bhith a’ toirt gealltanas ùine monotonach dha timers Instant, a bheir aire don ùine a chuir an siostam seachad ann am modh cadail. Roimhe seo, chaidh an OS API a chleachdadh nuair a bha e comasach gus an timer obrachadh, nach tug sin aire do shuidheachaidhean trioblaideach a bhriseas monotony ùine, leithid duilgheadasan bathar-cruaidh, cleachdadh virtualization, no mearachdan san t-siostam obrachaidh.
  • Chaidh cuibhreann ùr den API a ghluasad chun roinn de stàball, a’ toirt a-steach dòighean agus buileachadh feartan air an socrachadh:
    • Arc:: new_cycle
    • Rc:: cearcall ùr
    • sliseag::EscapeAscii
    • <[u8]> :: teicheadh_ascii
    • u8 :: teicheadh_ascii
    • Vec ::spare_capacity_mut
    • Is dòchaUninit :: gabhail_init_drop
    • Is dòchaUninit :: gabhail_init_read
    • i8 ::abs_diff
    • i16 ::abs_diff
    • i32 ::abs_diff
    • i64 ::abs_diff
    • i128 ::abs_diff
    • isize :: abs_diff
    • u8 ::abs_diff
    • u16 ::abs_diff
    • u32 ::abs_diff
    • u64 ::abs_diff
    • u128 ::abs_diff
    • cleachd ::abs_diff
    • Taisbeanadh airson io ::ErrorKind
    • Bho airson ExitCode
    • Chan ann airson! (seòrsa "never")
    • _Op_Sònraich <$t>
    • bogha ::is_aarch64_feature_detected!
  • Chaidh an treas ìre de thaic a chuir an gnìomh airson na h-àrd-ùrlaran mips64-openwrt-linux-musl* agus armv7-unknown-linux-uclibceabi (softfloat). 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.
  • Chaidh an compiler atharrachadh gu LLVM 14 a chleachdadh.

A bharrachd air an sin, faodaidh tu a thoirt fa-near:

  • Taic a bharrachd airson bootstrapping an inneal-cruinneachaidh rustc a’ cleachdadh an backend rustc_codegen_gcc, a leigeas leat an leabharlann libgccjit bhon phròiseact GCC a chleachdadh mar ghineadair còd ann an rustc, a leigeas le rustc taic a thoirt seachad airson ailtireachd agus optimizations a tha rim faighinn ann an GCC. Tha adhartachadh compiler a’ ciallachadh comas gineadair còd stèidhichte air GCC a chleachdadh ann an rustc gus an compiler rustc fhèin a thogail. Air an taobh phractaigeach, leigidh am feart seo leat prògraman meirge a thogail airson ailtireachd nach robh a’ faighinn taic ann an rustc roimhe seo.
  • Tha sgaoileadh an inneal uutils coreutils 0.0.13 ri fhaighinn, anns a bheil analogue den phasgan GNU Coreutils, air ath-sgrìobhadh sa chànan Rust, ga leasachadh. Bidh Coreutils a’ tighinn le còrr air ceud goireas, a’ toirt a-steach sort, cat, chmod, chown, chroot, cp, ceann-latha, dd, mac-talla, ainm aoigheachd, id, ln, agus ls. Is e amas a’ phròiseict buileachadh eile thar-àrd-ùrlar a chruthachadh de Coreutils, comasach air ruith air àrd-ùrlaran Windows, Redox agus Fuchsia, a bharrachd air a bhith air a chuairteachadh fo chead ceadaichte MIT, an àite cead lethbhreac-lethbhreac GPL.

    Tha an dreach ùr air buileachadh mòran ghoireasan a leasachadh, a’ toirt a-steach co-chòrdalachd nas fheàrr den cp, dd, df, sgoltadh agus tràilleachd leis an co-aoisean bhon phròiseact GNU. Sgrìobhainnean air-loidhne air an toirt seachad. Tha am parser clap air a chleachdadh gus argamaidean loidhne-àithne a pharsadh, a tha air toradh a’ bhratach “--help” a leasachadh agus taic a chuir ris airson giorrachaidhean òrdughan fada (mar eisimpleir, faodaidh tu “ls -col” a shònrachadh an àite “ls -color ”).

Source: fosgailtenet.ru

Cuir beachd ann