Rust 1.78 scaoileadh. Teanga Borgo a chomhcheanglaíonn láidreachtaí Go and Rust

Tá scaoileadh na teanga ríomhchláraithe ilchuspóireach Rust 1.78, 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í:

  • Tá ainmspás aitreabúide nua "#[diagnostic]" molta, a sholáthraíonn modh chun tionchar a imirt ar na teachtaireachtaí earráide a tháirgeann an tiomsaitheoir. Is é an chéad cheann sa spás nua an aitreabúid "#[diagnostic::on_unimplemented]", ar féidir a úsáid chun na teachtaireachtaí earráide a chaitear i gcás a bhfuil gá agat le tréith nach bhfuil curtha i bhfeidhm don chineál a shaincheapadh. #[diagnostic::on_unimplemented( message = "Ní chuirtear mo Theachtaireacht le haghaidh `ImportantTrait<{A}>` i bhfeidhm le haghaidh `{ Self}`", label = "Mo Lipéad", note = "Nóta 1", note = "Nóta 2" )] traitTrácht Tábhachtach {} fn use_my_trait(_: impl ImportantTrait ) {} fn príomh() { use_my_trait(Teaghrán:: nua()); } error[E32]: Mo Theachtaireacht le haghaidh `ImportantTrait Níl ` curtha i bhfeidhm le haghaidh `String` -> src/main.rs:0277:32 | 12 | use_my_trait(Teaghrán:: nua()); | ———— ^^^^^^^^^^^^^ Mo Lipéad | | | cheanglaítear faoi cheangal a tugadh isteach leis an nglao seo | = help: an trait `ImportantTrait ` is not applied for `Teaghrán` = nóta: Nóta 18 = nóta: Nóta 12
  • Is féidir seiceálacha réamhdhearbhaithe a chuirtear i bhfeidhm ar fheidhmeanna neamhshábháilte a chur siar anois go dtí go nginfear cód, rud a fhágann gur féidir na seiceálacha seo a dhéanamh gan gá leis an leabharlann chaighdeánach a thógáil sa mhód "#[cfg(debug_assertions)]". Chun seiceálacha a spreagadh, is leor anois dearbhuithe dífhabhtaithe a chumasú le haghaidh tógála tástála nó dífhabhtaithe de do chód.
  • Tá iompar feidhmeanna sa leabharlann chaighdeánach a théann i bhfeidhm ar ailíniú leideanna agus slisní intuartha anois ag am rite agus braitheann sé ar na sonraí ionchuir. Filleann an pointeoir feidhme::align_offset, a ríomhann an fritháireamh chun an pointeoir a ailíniú, usize ::MAX ach amháin má theipeann ar an oibríocht. Na feidhmeanna slice::align_to agus slice::align_to_mut araon, a chlaochlú slices i léiriú le slice lár ailínithe agus na slices tosaigh agus deireadh bunaidh, anois ar ais i gcónaí ar an chuid is mó lár.
  • Aistríodh iad seo a leanas chuig an gcatagóir cobhsaí:
    • impl Léigh le haghaidh &Stdin
    • Ceadaigh saolré neamhstatach (neamhstatach) a úsáid le haghaidh roinnt feidhmeanna a bhaineann le hearráid.
    • Cur i bhfeidhm impl ? Tá luach meánmhéide ceadaithe.
    • impl Ó le haghaidh io:: Earráid
  • Tá an fheidhm Bhacainn::new() cobhsaithe le húsáid leis an tréith "const" in aon chomhthéacs seachas tairisigh.
  • Le haghaidh ardáin sprice x86_64-pc-windows-msvc, i686-pc-windows-msvc, x86_64-pc-windows-gnu, i686-pc-fuinneoga-gnu, x86_64-pc-windows-gnullvm agus i686-pg-vmow anois éilíonn leagan Windows 10 ar a laghad.
  • Tá an tríú leibhéal tacaíochta curtha i bhfeidhm do na hardáin wasm32-wasip2, arm64ec-pc-windows-msvc, armv8r-none-eabihf agus loongarch64-unknown-linux-musl. Tá tacaíocht bhunúsach i gceist leis an tríú leibhéal, ach gan tástáil uathoibrithe, foirgnimh oifigiúla a fhoilsiú, nó seiceáil an féidir an cód a thógáil.
  • Tá an dara leibhéal tacaíochta don ardán sprice Add wasm32-wasip1 curtha i bhfeidhm. Tá ráthaíocht tionóil i gceist leis an dara leibhéal tacaíochta.
  • Athainmníodh an t-ardán wasm32-wasi-preview1-threads go wasm32-wasip1-threads.
  • Aistríodh an tiomsaitheoir chun LLVM 18 a úsáid. Agus LLVM 18 á úsáid le haghaidh ailtireachtaí x86-32 agus x86-64, athraíodh an ABI a bhaineann leis na cineálacha u128 agus i128.
  • I mbainisteoir an chomhaontaithe lasta, tá leagan 4 de chomhaid ghlais (lockfile v4) cobhsaithe.
  • Tá taisce domhanda cobhsaithe ag lasta le faisnéis faoin úsáid sonraí is déanaí. Tá an taisce á óstáil i $CARGO_HOME/.global-cache ag baint úsáide as SQLite agus déantar é a nuashonrú go huathoibríoch chun na hathruithe is déanaí ar an innéacs, comhad cliathbhosca, eolaire cóid, clón git, agus seiceáil amach git a léiriú.

Ina theannta sin, déanann teanga ríomhchlárúcháin Borgo iarracht a bheith níos léiritheach ná an teanga Go, ach nach bhfuil chomh casta ná an teanga Rust. Comhcheanglaíonn Borgo na gnéithe is fearr de Go and Rust, ag déanamh suas le heasnaimh gach teanga. Mar shampla, tá Go simplí agus simplí, ach ní sholáthraíonn sé ardghnéithe sábháilteachta cineál. Soláthraíonn an teanga Rust uirlisí le haghaidh ríomhchlárú sábháilte, ach tá sé ró-chasta. Tá an tionscadal á fhorbairt ag Marco Sampellegrini, údar The Simple Haskell Handbook agus forbróir chóras comhtháthú leanúnach Quad CI.

Rust 1.78 scaoileadh. Teanga Borgo a chomhcheanglaíonn láidreachtaí Go and Rust

Úsáideann Borgo clóscríobh statach, cineálacha cosúil le Go, agus comhréir cosúil le Rust. Tá leathcholúin roghnach ag deireadh línte i gcód Borgo. Déantar cód Borgo a thiomsú mar léiriú Go atá ag luí go hiomlán leis na pacáistí Go atá ann cheana féin. Tá an cód tiomsaitheora scríofa i Rust agus déantar é a dháileadh faoi cheadúnas ISC. bain úsáid as fmt enum NetworkState { Luchtú, Theip(int), Rath(T), } struchtúr Freagra { teideal: teaghrán, fad: int, } fn príomh() { let res = Freagra { teideal: “Dia duit a domhan”, ré: 0, } luaigh = Ligeann NetworkState.Success(res) msg ​​= staid mheaitseáil { NetworkState.Loading => “fós ag luchtú”, NetworkState.Failed(code) => fmt.Sprintf(“Fuair ​​cód earráide: %d”, cód), NetworkState.Success (res) => res.title, } fmt.Println(msg) }

Foinse: oscailtenet.ru

Add a comment