Hoʻokuʻu ʻia ʻo Rust 1.65

Ua paʻi ʻia ka hoʻokuʻu ʻia ʻana o ka ʻōlelo hoʻolālā kumu nui ʻo Rust 1.65, i hoʻokumu ʻia e ka papahana Mozilla, akā i kēia manawa ua hoʻomohala ʻia ma lalo o ka mana o ka hui kūʻokoʻa waiwai ʻole ʻo Rust Foundation. Hoʻopili ʻia ka ʻōlelo i ka palekana hoʻomanaʻo a hāʻawi i nā ala e hoʻokō ai i ka parallelism kiʻekiʻe i ka hoʻokō ʻana i ka hana, ʻoiai e pale ana i ka hoʻohana ʻana i ka ʻōpala a me ka manawa holo (ua hoʻemi ʻia ka manawa holo i ka hoʻomaka kumu a me ka mālama ʻana i ka waihona maʻamau).

Hoʻokuʻu ʻia nā ʻenehana hoʻomanaʻo hoʻomanaʻo a Rust i ka mea hoʻomohala mai nā hewa manipulation pointer a pale i nā pilikia e kū mai ana mai ka hoʻohana ʻana i ka hoʻomanaʻo haʻahaʻa haʻahaʻa, e like me ke komo ʻana ma hope o ka loaʻa ʻole ʻana, nā kuhi kuhikuhi null, overruns buffer, a me nā mea like. No ka hāʻawi ʻana i nā hale waihona puke, e hōʻoia i ka hui ʻana a me ka mālama ʻana i nā hilinaʻi, ke kūkulu nei ka papahana i ka luna pūʻolo Cargo. Kākoʻo ʻia ka waihona crates.io no ka mālama ʻana i nā hale waihona puke.

Hoʻoikaika ʻia ka palekana hoʻomanaʻo ma Rust i ka manawa hōʻuluʻulu ma o ka nānā ʻana, ka nānā ʻana i ka mea nona ka mea, ka noʻonoʻo ʻana i ke ola o ka mea (scoping), a me ka loiloi hoʻomanaʻo i ka wā holo. Hāʻawi pū ʻo Rust i ka pale ʻana i ka integer overflows, pono e hoʻomaka mua ʻia nā waiwai hoʻololi ma mua o ka hoʻohana ʻana, ʻoi aku ka maikaʻi o ka lawelawe hewa ʻana i ka waihona maʻamau, hoʻohana i ka manaʻo o nā kuhikuhi immutable a me nā loli ma ke ʻano maʻamau, a hāʻawi i ka paʻi static ikaika e hōʻemi i nā hewa loiloi.

Nā hana hou nui:

  • Kākoʻo hoʻohui ʻia no nā ʻano pili maʻamau (GAT, Generic Associated Types), e hiki ai ke hana i nā inoa inoa e pili ana i kekahi ʻano ʻē aʻe a hiki iā ʻoe ke hoʻohui i nā mea kūkulu ʻano me nā ʻano. trait Foo { ʻano Bar; }
  • Ua hoʻokō ʻia ka ʻōlelo "let ... else", e ʻae iā ʻoe e nānā pono i ke ʻano hoʻohālikelike i loko o ka ʻōlelo "let" a hoʻokō i ke code arbitrary inā ʻaʻole i kūlike ke kumu. let Ok(count) = u64::from_str(count_str) else { hopohopo! };
  • E ʻae i ka hoʻohana ʻana i kahi ʻōlelo hoʻomaha no ka haʻalele ʻana i nā poloka i kapa ʻia ma mua, me ka hoʻohana ʻana i ka inoa poloka (label) e ʻike ai i ka poloka e hoʻopau ʻia. let result = 'block: { do_thing (); inā kūlana_ʻaʻole_me () { uhaʻi 'block 1; } hana_next_thing(); inā kūlana_ʻaʻole_me () { uhaʻi 'block 2; } do_last_thing(); 3};
  • No Linux, ua hoʻohui ʻia ka hiki ke hoʻokaʻawale i ka ʻike debugging (split-debuginfo), i loaʻa mua wale no ka platform macOS. Ke kuhikuhi ʻana i ke koho "-Csplit-debuginfo=unpacked", e mālama ʻia ka ʻikepili debuginfo ma DWARF format i loko o nā faila mea ʻokoʻa me kahi hoʻonui ".dwo". ʻO ka wehewehe ʻana i ka "-Csplit-debuginfo=packed" e hana i hoʻokahi pūʻolo ma ke ʻano ".dwp" e loaʻa ana nā ʻikepili debuginfo a pau no ka papahana. No ka hoʻohui pono ʻana i ka debuginfo i ka ʻāpana .debug_* o nā mea ELF, hiki iā ʻoe ke hoʻohana i ke koho "-Csplit-debuginfo=off".
  • Ua hoʻoili ʻia kahi ʻāpana hou o ka API i ka ʻāpana paʻa, me nā ʻano a me nā hoʻokō o nā ʻano:
    • std:: backtrace:: Backtrace
    • Hoʻopaʻa ʻia::as_ref
    • std::io::read_to_string
    • ::cast_mut
    • ::cast_const
  • Hoʻohana ʻia ka ʻano "const", ka mea e hoʻoholo ai i ka hiki ke hoʻohana ʻia i loko o nā pōʻaiapili ma kahi o nā mea mau, hoʻohana ʻia i nā hana ::offset_from a ::offset_from
  • Ma ke ʻano o ka pae hope loa o ka hoʻololi ʻana i ka hoʻokō ʻana o ka protocol LSP (Language Server Protocol) i ka rust-analyzer, ua hoʻololi ʻia ka hoʻokō kahiko o Rust Language Server (RLS) me kahi kikowaena stub e hoʻopuka ana i kahi ʻōlelo aʻo me kahi manaʻo e hoʻololi i ka. me ka hoʻohana ʻana i ka rust-analyzer.
  • I ka wā o ka hōʻuluʻulu ʻana, ʻae ʻia ke kākoʻo no ka hoʻokomo ʻana i ka MIR intermediate code, e wikiwiki ana i ka hoʻohui ʻana o nā pahu pahu maʻamau e 3-10%.
  • No ka hoʻoikaika ʻana i nā hana i hoʻonohonoho ʻia, hāʻawi ka luna ʻo Cargo i ka hoʻokaʻawale ʻana i nā hana e kali ana i ka hoʻokō ʻana ma ka pila.

Eia hou, hiki iā ʻoe ke nānā i ka nīnauele e pili ana i ka hoʻohana ʻana i ka ʻōlelo Rust ma Volvo e hoʻomohala i nā ʻāpana o nā ʻōnaehana ʻike automotive. ʻAʻohe manaʻo e kākau hou i ka code i loaʻa a i hoʻāʻo ʻia ma Rust, akā no ka code hou, ʻo Rust kekahi o nā koho i makemake ʻia no ka hoʻomaikaʻi ʻana i ka maikaʻi ma nā kumukūʻai haʻahaʻa. Ua hana pū ʻia nā hui hana e pili ana i ka hoʻohana ʻana i ka ʻōlelo Rust ma nā hui automotive AUTOSAR (AUTomotive Open System ARchitecture) a me SAE (Society of Automotive Engineers).

Eia hou, ua kamaʻilio ʻo David Kleidermacher, ka hope pelekikena o ka ʻenekinia o Google, e pili ana i ka unuhi ʻana o ke code i hoʻohana ʻia ma ka Android platform e hoʻokele i nā kī hoʻopunipuni i Rust, a me ka hoʻohana ʻana iā Rust i ka hoʻokō ʻana i ka DNS ma luna o ka protocol HTTPS i ka waihona. no ka UWB- chips (Ultra-Wideband) a ma ka hoʻolālā virtualization (Android Virtualization Framework) pili me ka Tensor G2 chip. Ke kūkulu ʻia nei nā waihona hou no Bluetooth a me Wi-Fi, i kākau hou ʻia ma Rust, no ka Android. ʻO ka hoʻolālā maʻamau ka hoʻoikaika mālie ʻana i ka palekana, ma ka hoʻohuli ʻana i nā ʻāpana polokalamu koʻikoʻi a koʻikoʻi i Rust, a laila hoʻonui i nā subsystem e pili ana. I ka makahiki i hala, ua hoʻokomo ʻia ka ʻōlelo Rust i ka papa inoa o nā ʻōlelo i ʻae ʻia no ka hoʻomohala ʻana i ka platform Android.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka