ipata 1.65 Siseto ede Tu

Itusilẹ ti ede siseto gbogboogbo-idi Rust 1.65, ti o da nipasẹ iṣẹ akanṣe Mozilla, ṣugbọn ni bayi ni idagbasoke labẹ awọn atilẹyin ti ominira ti kii ṣe èrè agbari Rust Foundation, ti ṣe atẹjade. Ede naa dojukọ aabo iranti ati pese awọn ọna lati ṣaṣeyọri isọdọkan iṣẹ giga lakoko ti o yago fun lilo ikojọpọ idoti ati akoko asiko (akoko asiko ti dinku si ipilẹṣẹ ipilẹ ati itọju ile-ikawe boṣewa).

Awọn ọna mimu iranti Rust ṣe igbala awọn olupilẹṣẹ lati awọn aṣiṣe nigbati o ba ni ifọwọyi awọn itọka ati daabobo lodi si awọn iṣoro ti o dide nitori mimu iranti ipele kekere, gẹgẹbi iraye si agbegbe iranti lẹhin ti o ti ni ominira, piparẹ awọn itọka asan, awọn ifasilẹ ifipamọ, ati bẹbẹ lọ. Lati kaakiri awọn ile-ikawe, pese awọn kikọ ati ṣakoso awọn igbẹkẹle, iṣẹ akanṣe n ṣe idagbasoke oluṣakoso package Ẹru. Ibi ipamọ crates.io jẹ atilẹyin fun awọn ile-ikawe alejo gbigba.

Ailewu iranti ti pese ni ipata ni akoko iṣakojọ nipasẹ ṣiṣe ayẹwo itọkasi, ṣiṣe itọju ohun-ini ohun, titọju awọn igbesi aye ohun (awọn iwọn), ati iṣiro deede wiwọle iranti lakoko ṣiṣe koodu. Ipata tun pese aabo lodi si ṣiṣan odidi odidi, nilo ipilẹṣẹ dandan ti awọn iye oniyipada ṣaaju lilo, mu awọn aṣiṣe dara julọ ni ile-ikawe boṣewa, lo imọran ti awọn itọkasi ailagbara ati awọn oniyipada nipasẹ aiyipada, nfunni titẹ aimi to lagbara lati dinku awọn aṣiṣe ọgbọn.

Awọn imotuntun akọkọ:

  • Atilẹyin ti a ṣafikun fun awọn oriṣi ti o ni nkan ṣepọ (GAT, Awọn oriṣi Iṣọkan Generic), eyiti o jẹ ki o ṣee ṣe lati ṣẹda awọn inagijẹ iru ti o ni nkan ṣe pẹlu iru miiran ati gba ọ laaye lati darapọ awọn olupilẹṣẹ iru pẹlu awọn abuda. iwa Foo {iru Bar; }
  • Ọrọ ikosile "jẹ ki ... miiran" ti ni imuse, gbigba ọ laaye lati ṣayẹwo ipo ibaamu ilana taara inu ikosile “jẹ ki” ati ṣiṣẹ koodu lainidii ti apẹẹrẹ ko ba baramu. jẹ ki Ok (ka) = u64 :: from_str (count_str) miran {ijaaya!("Ko le sọ odidi: '{count_str}'"); };
  • Gba laaye lilo alaye isinmi lati jade kuro ni awọn bulọọki ti a npè ni laipẹ, ni lilo orukọ idina (aami) lati ṣe idanimọ bulọọki lati fopin si. jẹ ki abajade = 'dina: {ṣe_thing (); ti o ba ti condition_not_met () {fa 'Block 1; } ṣe_ohun_tókàn(); ti o ba ti condition_not_met () {fa 'Block 2; } ṣe_ohun_kẹhin (); 3};
  • Fun Lainos, agbara lati ṣafipamọ alaye n ṣatunṣe lọtọ lọtọ (pipin-debuginfo), ti o wa tẹlẹ fun pẹpẹ macOS nikan, ti ṣafikun. Nigbati o ba n ṣalaye aṣayan "-Csplit-debuginfo=unpacked", data debuginfo ni ọna kika DWARF yoo wa ni ipamọ sinu ọpọlọpọ awọn faili ohun lọtọ pẹlu itẹsiwaju ".dwo". Ni pato "-Csplit-debuginfo=packed" yoo ṣẹda akojọpọ ẹyọkan ni ọna kika ".dwp" ti o pẹlu gbogbo data debuginfo fun iṣẹ akanṣe naa. Lati ṣepọ debuginfo taara sinu apakan .debug_* ti awọn nkan ELF, o le lo aṣayan "-Csplit-debuginfo=pa".
  • Apa tuntun ti API ni a ti gbe si ẹka ti iduroṣinṣin, pẹlu awọn ọna ati awọn imuse ti awọn abuda ti jẹ imuduro:
    • std :: backtrace :: Backtrace
    • Odidi :: bi_ref
    • std :: io :: kika_to_okun
    • :: cast_mut
    • :: cast_const
  • Ẹya “const”, eyiti o pinnu iṣeeṣe ti lilo ni eyikeyi ipo dipo awọn iduro, ni a lo ninu awọn iṣẹ :: offset_from ati :: offset_from
  • Gẹgẹbi apakan ti ipele ikẹhin ti gbigbe imuse ti Ilana LSP (Language Server Protocol) si oluyanju ipata, imuse ti igba atijọ ti Rust Language Server (RLS) rọpo pẹlu olupin stub ti o funni ni ikilọ pẹlu imọran lati yipada si lilo ipata-onalyzer.
  • Lakoko iṣakojọpọ, atilẹyin fun imuṣiṣẹ inline ti koodu agbedemeji MIR ti ṣiṣẹ, eyiti o mu iyara akopọ ti awọn idii apoti aṣoju pọ si nipasẹ 3-10%.
  • Lati yara awọn ile iṣeto ti a ṣeto, oluṣakoso package Cargo pese tito awọn iṣẹ ti n duro de ipaniyan ni isinyi.

Ni afikun, o le ṣe akiyesi ifọrọwanilẹnuwo nipa lilo ede Rust ni Volvo lati ṣe agbekalẹ awọn paati ti awọn eto alaye adaṣe. Ko si awọn ero lati tun kọ koodu ti o wa tẹlẹ ati idanwo ni Rust, ṣugbọn fun koodu tuntun, Rust jẹ ọkan ninu awọn aṣayan ti o fẹ fun imudarasi didara ni awọn idiyele kekere. Awọn ẹgbẹ iṣẹ ti o ni ibatan si lilo ede Rust tun ti ṣẹda ni awọn ẹgbẹ adaṣe AUTOSAR (AUTomotive Open System Architecture) ati SAE (Society of Automotive Engineers).

Ni afikun, David Kleidermacher, Igbakeji Alakoso Google ti imọ-ẹrọ, sọ nipa itumọ ti koodu ti a lo ninu pẹpẹ Android lati ṣakoso awọn bọtini fifi ẹnọ kọ nkan si Rust, ati lilo ipata ni imuse ti DNS lori ilana HTTPS ninu akopọ. fun awọn eerun UWB (Ultra-Wideband) ati ninu ilana agbara agbara (Ilana Iṣeduro Android) ti o ni nkan ṣe pẹlu chirún Tensor G2. Awọn akopọ tuntun fun Bluetooth ati Wi-Fi, ti a tun kọ ni Rust, tun jẹ idagbasoke fun Android. Ilana gbogbogbo ni lati mu aabo didiẹ mulẹ, ni akọkọ nipa yiyipada ipalara julọ ati awọn paati sọfitiwia to ṣe pataki si ipata, ati lẹhinna faagun si awọn ọna ṣiṣe ti o ni ibatan miiran. Ni ọdun to kọja, ede Rust wa ninu atokọ awọn ede ti a gba laaye fun idagbasoke pẹpẹ Android.

orisun: opennet.ru

Fi ọrọìwòye kun