Kutolewa kwa lugha ya programu ya kutu 1.52

Kutolewa kwa lugha ya programu ya mfumo Rust 1.52, iliyoanzishwa na mradi wa Mozilla, lakini sasa imeendelezwa chini ya mwamvuli wa shirika huru lisilo la faida la Rust Foundation, imechapishwa. Lugha inazingatia usalama wa kumbukumbu, hutoa usimamizi wa kumbukumbu otomatiki, na hutoa njia za kufikia usawa wa juu wa kazi bila kutumia mtoza takataka au wakati wa kukimbia (muda wa kukimbia umepunguzwa kuwa uanzishaji wa msingi na matengenezo ya maktaba ya kawaida).

Udhibiti wa kumbukumbu otomatiki wa Rust huokoa msanidi programu kutokana na hitilafu wakati wa kuchezea viashiria na hulinda dhidi ya matatizo yanayotokea kutokana na uchezaji wa kumbukumbu ya kiwango cha chini, kama vile kufikia eneo la kumbukumbu baada ya kuachiliwa, kuondoa rejeleo la viashiria visivyofaa, ongezeko la bafa, n.k. Ili kusambaza maktaba, kutoa miundo na kudhibiti utegemezi, mradi huunda msimamizi wa kifurushi cha Cargo. Hazina ya crates.io inatumika kwa kupangisha maktaba.

Ubunifu kuu:

  • Imeondoa kifungo kwa utaratibu wa utekelezaji wa amri za "shehena ya kuangalia" na "cago clippy". Hapo awali, kupiga simu "clippy ya mizigo" baada ya "kuangalia mizigo" haikuzindua matumizi ya clippy (linter) kwa sababu ya ukosefu wa mgawanyiko wa cache kwa njia hizi za kuangalia. Sasa tatizo hili limetatuliwa na utaratibu ambao "clippy ya mizigo" na "cheki ya mizigo" huitwa tena.
  • Sehemu mpya ya API imehamishiwa kwa kategoria thabiti, ikijumuisha njia zifuatazo zimeimarishwa:
    • Hoja::kama_str
    • sura::MAX
    • char::REPLACEMENT_CHARACTER
    • char::UNICODE_VERSION
    • char::decode_utf16
    • char::kutoka_tarakimu
    • char::from_u32_haijachaguliwa
    • char::kutoka_u32
    • kipande::kizigeu_kipengele
    • str::rsplit_mara moja
    • str::gawanya_mara moja
  • Sifa ya "const", ambayo huamua uwezekano wa kuitumia katika muktadha wowote badala ya mara kwa mara, hutumiwa katika njia:
    • char::len_utf8
    • char::len_utf16
    • char::kwa_ascii_herufi kubwa
    • char::kwa_ascii_herufi ndogo
    • char::eq_ignore_ascii_kesi
    • u8::kwa_ascii_herufi kubwa
    • u8::kwa_ascii_herufi ndogo
    • u8::eq_puuza_kesi_ya_ascii
  • Lint imeongezwa angalia unsafe_op_in_unsafe_fn ili kubaini kama msimbo usio salama unaotumiwa katika vitendakazi visivyo salama umeandaliwa na vizuizi visivyo salama.
  • Inaruhusiwa kurusha viashiria vinavyoweza kubadilika ili safu katika mfumo wa viashiria kwa aina ya kipengele cha safu. let mut x: [tumia; 2] = [0, 0]; acha p = &mut x kama *mut usize; acha p = &mut x kama *const usize;
  • Hundi 9 mpya zimeongezwa kwenye clippy (linter).
  • Kidhibiti cha kifurushi cha shehena sasa kinaauni sehemu ya "manifest_path" katika JSON kwa vifurushi. Usaidizi ulioongezwa wa kubainisha maelezo ya leseni katika umbizo la SPDX 3.11 kwenye hazina ya crates.io.
  • Inaruhusiwa kubainisha vichujio vingi wakati wa kufanya majaribio, kwa mfano kuendesha "cargo test - foo bar" kutaendesha majaribio yote yanayolingana na vinyago "foo" na "bar".
  • Zana ya zana chaguomsingi ya LLVM imesasishwa hadi LLVM 12.
  • Kiwango cha tatu cha usaidizi kimetekelezwa kwa s390x-unknown-linux-musl, riscv32gc-unknown-linux-musl, riscv64gc-unknown-linux-musl na powerpc-unknown-openbsd majukwaa. Kiwango cha tatu kinahusisha usaidizi wa kimsingi, lakini bila majaribio ya kiotomatiki, uchapishaji wa miundo rasmi, au kuangalia ikiwa msimbo unaweza kutengenezwa.

Chanzo: opennet.ru

Kuongeza maoni