Kutolewa kwa lugha ya programu ya kutu 1.46

iliyochapishwa kutolewa 1.46 ya lugha ya programu ya mfumo Kutu, iliyoanzishwa na mradi wa Mozilla. Lugha inazingatia usalama wa kumbukumbu, hutoa usimamizi wa kumbukumbu kiotomatiki, na hutoa zana za kufikia ulinganifu wa juu wa kazi bila kutumia mtoza taka na. Runtime.

Udhibiti wa kumbukumbu otomatiki wa Rust huondoa hitilafu wakati wa kuchezea viashiria na hulinda dhidi ya matatizo yanayotokana na upotoshaji wa kumbukumbu wa kiwango cha chini, kama vile kufikia eneo la kumbukumbu baada ya kuachiliwa, vielekezo visivyofaa vya vielelezo, utiririshaji wa bafa, n.k. Kidhibiti kifurushi kinatayarishwa ili kusambaza maktaba, kuhakikisha kukusanya na kudhibiti utegemezi wa mradi. Cargo, ambayo hukuruhusu kupata maktaba unayohitaji kwa programu hiyo kwa mbofyo mmoja. Hifadhi inaauniwa kwa kupangisha maktaba crates.io.

kuu ubunifu:

  • Uwezo wa kazi zilizofafanuliwa kwa kutumia usemi "const fn" umepanuliwa, ambao unaweza kuitwa sio tu kama kazi za kawaida, lakini pia kutumika katika muktadha wowote badala ya viunga. Vipengele hivi vya kukokotoa huhesabiwa kwa wakati wa kukusanya, si wakati wa utekelezaji, kwa hivyo ziko chini ya vikwazo fulani, kama vile uwezo wa kusoma tu kutoka kwa viunga.

    Toleo jipya litaondoa marufuku ya kutumia viendeshaji vya Boolean (β€œ&&” na β€œ||”) katika vitendaji kama hivyo, na inaruhusu matumizi ya miundo ya β€œikiwa”, β€œikiwa itaruhusu”, β€œlinganisha,”
    "wakati", "wakati wacha" na "kitanzi", na pia hutoa uwezo wa kubadilisha hadi vipande (kipande, safu zenye nguvu) kwa kutumia usemi "&[T]". Matumizi ya vipengele hivi katika vitendakazi vya "const fn" hukuruhusu kusogeza baadhi ya shughuli zinazohitaji rasilimali nyingi hadi kwenye hatua ya ujumuishaji. Kwa mfano, utekelezaji wa "const-sha1" hufanya iwezekanavyo kuhesabu heshi za SHA-1 kwa wakati wa kukusanya, ambayo inasababisha kuharakisha vifungo vya WinRT kwa Rust kwa karibu mara 40.

  • Ili kufanya ujumbe wa hitilafu kuwa wa taarifa zaidi, uwezo wa kutumia sifa ya "#[track_caller]" umeimarishwa, ambayo ni muhimu kwa utendakazi kama vile kufunua, jambo ambalo linaweza kusababisha hofu ikiwa aina zitatumiwa vibaya. Sifa iliyobainishwa itatumiwa na kidhibiti cha hofu ili kuchapisha eneo la mpigaji katika ujumbe wa hitilafu.
  • Sifa ya "const", ambayo huamua uwezekano wa kuitumia katika muktadha wowote badala ya viunga, inatumika katika njia ya std::mem::sahau.
  • Sehemu mpya ya API imehamishwa hadi kwenye kategoria thabiti, ikijumuisha Chaguo ::zip na vec::Drain::as_slice.
  • Katika meneja wa kifurushi Cargo aliongeza usaidizi wa anuwai mpya za mazingira zilizowekwa wakati wa kuunda kifurushi: CARGO_BIN_NAME (jina la faili inayoweza kutekelezwa), CARGO_CRATE_NAME (jina la kifurushi), CARGO_PKG_LICENSE (leseni iliyobainishwa kwenye faili ya maelezo), CARGO_PKG_LICENSE_FILE (njia ya faili ya leseni).

Chanzo: opennet.ru

Kuongeza maoni