Rust 1.78 air a leigeil ma sgaoil. Cànan Borgo a tha a’ cothlamadh neartan Go and Rust

Chaidh foillseachadh cànan prògramadh adhbhar coitcheann Rust 1.78, 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:

  • Chaidh ainm-Ă ite Ăšr “#[diagnostic]” a ​​mholadh, a’ toirt seachad dòigh gus buaidh a thoirt air na teachdaireachdan mearachd a bheir an neach-cruinneachaidh a-mach. Is e a’ chiad fhear san Ă ite Ăšr am feart “#[diagnostic::on_unimplemented]”, a dh’ fhaodar a chleachdadh gus na teachdaireachdan mearachd a chaidh a thilgeil ann an suidheachadh a ghnĂ thachadh far am feum thu feart a chleachdadh nach eil air a chuir an gnĂŹomh airson an t-seòrsa. #[diagnostic::on_unimplemented( message = "Chan eil mo theachdaireachd airson `ImportantTrait <{A}>` air a chur an gnĂŹomh airson `{Fèin}`", label = "Mo leubail", note = "Nòta 1", note = "An aire 2 ”)] trait ImportantTrait {} fn use_my_trait(_: impl ImportantTrait ) {} fn prĂŹomh () { use_my_trait(String:: new()); } error[E32]: Am brath agam airson `ImportantTrait `na chur an gnĂŹomh airson `String` -> src/main.rs:0277:32 | 12 | use_my_trait(String:: new()); | ———— ^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^ ^^^^ ^^^^ ^^ ^^^^ ^^ ^^^^ ^^ ^^^^ ^^ ^^^^ ^^ ^^^^^^ ^^ ^^^^^^ ^^ ^^^^^^ ^^^^ ^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' | | riatanach le crĂŹoch a thug a’ ghairm seo a-steach | = help: an trait `ImportantTrait ` chan eil e air a chur an gnĂŹomh airson `String` = nota: Nota 18 = nota: Nota 12
  • Faodar sgrĂšdaidhean ro-dhearbhadh a chuirear an sĂ s ann an gnĂŹomhan mĂŹ-shĂ bhailte a-nis a chuir dheth gus an tèid còd a chruthachadh, a’ leigeil leis na sgrĂšdaidhean sin a bhith air an coileanadh gun fheum air an leabharlann Ă bhaisteach a thogail sa mhodh “#[cfg(debug_assertions)]". Gus sgrĂšdaidhean a bhrosnachadh, tha e a-nis gu leòr dearbhaidhean deasbaid a chomasachadh airson togail deuchainn no deasbaid den chòd agad.
  • Tha giĂšlan ghnĂŹomhan anns an leabharlann Ă bhaisteach a bheir buaidh air co-thaobhadh comharran agus sliseagan a-nis ro-innseach aig Ă m ruith agus an urra ris an dĂ ta cuir a-steach. Bidh am puing gnĂŹomh:: align_offset, a bhios a’ tomhas a’ chothromachadh gus am puing a cho-thaobhadh, a-nis a’ tilleadh cleachdadh :: MAX a-mhĂ in ma dh’ fhailicheas an t-obrachadh. Bidh na gnĂŹomhan sliseag :: align_to agus slice :: align_to_mut an dĂ  chuid, a dh ’atharraicheas sliseagan gu riochdachadh le sliseag meadhan co-thaobhadh agus na sliseagan tòiseachaidh is crĂŹochnachaidh tĂšsail, a-nis an-còmhnaidh a’ tilleadh am pĂ irt meadhanach as motha.
  • Chaidh na leanas a ghluasad gu roinn seasmhach:
    • impl Leugh airson &Stdin
    • Leig le cleachdadh beatha neo-statach (neo-statach) airson cuid de std :: error :: GnĂŹomhan co-cheangailte ri mearachd.
    • Cur an gnĂŹomh impl ceadaichte an luach ?Sized a chleachdadh.
    • impl Bho airson io::Mearachd
  • Chaidh an gnĂŹomh Barrier::new() a dhèanamh seasmhach airson a chleachdadh leis a’ bhuadhan “const” ann an co-theacs sam bith an Ă ite seasmhach.
  • Airson Ă rd-Ăšrlaran targaid x86_64-pc-windows-msvc, i686-pc-windows-msvc, x86_64-pc-windows-gnu, i686-pc-windows-gnu, x86_64-pc-windows-gnullvm agus i686-window-pc a-nis feumach air co-dhiĂš Windows 10 dreach.
  • Chaidh an treas ĂŹre de thaic a chuir an gnĂŹomh airson na h-Ă rd-Ăšrlaran wasm32-wasip2, arm64ec-pc-windows-msvc, armv8r-none-eabihf agus loongarch64-unknown-linux-musl. 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.
  • Tha an dĂ rna ĂŹre de thaic airson an Ă rd-Ăšrlar targaid Add wasm32-wasip1 air a bhuileachadh. Tha an dĂ rna ĂŹre de thaic a’ toirt a-steach gealltanas co-chruinneachaidh.
  • Chaidh an Ă rd-Ăšrlar wasm32-wasi-preview1-threads ath-ainmeachadh gu wasm32-wasip1-threads.
  • Chaidh an compiler atharrachadh gu LLVM 18 a chleachdadh. Nuair a bhios tu a’ cleachdadh LLVM 18 airson ailtireachd x86-32 agus x86-64, chaidh an ABI co-cheangailte ris na seòrsaichean u128 agus i128 atharrachadh.
  • Ann am manaidsear aonta Cargo, chaidh dreach 4 de fhaidhlichean glasaidh (lockfile v4) a dhèanamh seasmhach.
  • Tha tasgadan cruinne seasmhach aig Cargo le fiosrachadh mun chleachdadh dĂ ta as Ăšire. Tha an tasgadan air a chumail ann an $CARGO_HOME/.global-cache a’ cleachdadh SQLite agus tha e air Ăšrachadh gu fèin-obrachail gus na h-atharrachaidhean as Ăšire air a’ chlĂ r-amais, faidhle crate, eòlaire còd, clone git, agus git checkout a nochdadh.

A bharrachd air an sin, bidh cànan prògramadh Borgo a’ feuchainn ri bhith nas brìoghmhor na cànan Go, ach nach eil cho iom-fhillte na cànan Rust. Bidh Borgo a 'toirt còmhla na feartan as fheàrr de Go and Rust, a' dèanamh suas airson easbhaidhean gach cànan. Mar eisimpleir, tha Go sìmplidh agus sìmplidh, ach chan eil e a’ toirt seachad feartan sàbhailteachd seòrsa adhartach. Tha an cànan Rust a’ toirt seachad innealan airson prògramadh sàbhailte, ach tha e ro iom-fhillte. Tha am pròiseact ga leasachadh le Marco Sampellegrini, ùghdar The Simple Haskell Handbook agus leasaiche siostam amalachaidh leantainneach Quad CI.

Rust 1.78 air a leigeil ma sgaoil. Cànan Borgo a tha a’ cothlamadh neartan Go and Rust

Bidh Borgo a’ cleachdadh clò-sgrìobhadh statach, seòrsaichean coltach ri Go, agus co-chòrdadh coltach ri Rust. Tha semicolons roghainneil aig deireadh loidhnichean ann an còd Borgo. Tha còd Borgo air a chur ri chèile ann an riochdachadh Go a tha gu tur co-chòrdail ris na pacaidean Go a th’ ann mar-thà. Tha an còd cruinneachaidh air a sgrìobhadh ann an Rust agus air a chuairteachadh fo chead ISC. cleachd fmt enum NetworkState { A’ luchdachadh, Dh’fhàillig (int), Soirbheachas(T), } structar Freagairt { title: string, length: int, } fn main() { let res = Freagairt { title: “Hello world”, fad: 0, } leig an cèill = Leig NetworkState.Success(res) msg ​​= maids staid { NetworkState.Loading => “fhathast a’ luchdachadh”, NetworkState.Failed(code) => fmt.Sprintf(“Fhuair còd mearachd: %d”, còd), NetworkState.Success (res) => res.title, } fmt.Println(msg) }

Source: fosgailtenet.ru

Cuir beachd ann