Kutolewa kwa lugha ya programu ya kutu 1.35

ilifanyika kutolewa kwa lugha ya programu ya mfumo Kutu 1.35iliyotengenezwa na mradi wa Mozilla. Lugha inazingatia usimamizi salama wa kumbukumbu, hutoa usimamizi wa kumbukumbu otomatiki, na hutoa njia za kufikia usawa wa juu wa kazi huku ikiepuka matumizi ya mtoaji wa taka na wakati wa kukimbia.

Udhibiti wa kumbukumbu otomatiki wa Rust huokoa msanidi programu dhidi ya vielelezo vya kudhibiti na hulinda dhidi ya matatizo yanayotokana na uchezaji wa kumbukumbu ya kiwango cha chini, kama vile kufikia eneo la kumbukumbu baada ya kuachiliwa, kuondoa marejeleo ya viashiria, utiririshaji wa bafa, n.k. Ili kusambaza maktaba, hakikisha kukusanya na kudhibiti utegemezi, mradi huunda msimamizi wa kifurushi Cargo, ambayo hukuruhusu kupata maktaba unayohitaji kwa programu hiyo kwa mbofyo mmoja. Hifadhi inaauniwa kwa kupangisha maktaba crates.io.

kuu ubunifu:

  • Π’ΠΈΠΏΠ°ΠΆΠΈ (trait) FnOnce, FnMut ΠΈ Fn Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ для Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π² ΠΊΡƒΡ‡Π΅ boxed-Ρ‚ΠΈΠΏΠΎΠ² Boxβ€Ήdyn FnOnceβ€Ί, Boxβ€Ήdyn FnMutβ€Ί ΠΈ Boxβ€Ήdyn Fnβ€Ί;
  • Imeongezwa nafasi привСдСния Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠΉ ΠΊ нСбСзопасным указатСлям Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (unsafe fn);
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Π° макроса Β«dbg!Β» Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² для отобраТСния Π² stderr ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° строки Π±Π΅Π· инспСктирования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‡Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ срабатывания условных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ;
  • Π’ Ρ‚ΠΈΠΏΡ‹ для чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой f32 ΠΈ f64 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Β«copysignΒ» для копирования Π·Π½Π°ΠΊΠ° ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ числа Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅;
  • Π’ Ρ‚ΠΈΠΏΡ‹ Range* Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Β«inaΒ«, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ значСния Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½;
  • Mbinu iliyoongezwa Ref:Cell:map_split, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ заимствованноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ RefCell для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² заимствованных Π΄Π°Π½Π½Ρ‹Ρ…;
  • Mbinu iliyoongezwa RefCell::replace_with для Π·Π°ΠΌΠ΅Π½Ρ‹ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ значСния RefCell ΠΈ возвращСния старого значСния Π² качСствС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°;
  • Mbinu iliyoongezwa ptr::hash для Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ указатСля ΠΈΠ»ΠΈ ссылки ΠΏΠΎ адрСсу, Π° Π½Π΅ адрСсуСмому Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ;
  • Mbinu iliyoongezwa Option::copied для копирования содСрТимого ΠΎΠΏΡ†ΠΈΠΉ Optionβ€Ή&Tβ€Ί ΠΈΠ»ΠΈ Optionβ€Ή&mut Tβ€Ί;
  • Sehemu mpya ya API imehamishiwa kwenye kategoria thabiti, ikijumuisha mbinu ambazo zimeimarishwa
    f32::copysign,
    f64::copysign,
    RefCell::replace_with,
    RefCell::map_split,
    ptr::hash,
    Range::contains,
    RangeFrom::contains,
    RangeTo::contains,
    RangeInclusive::contains,
    RangeToInclusive::contains ΠΈ
    Option::copied;

  • Π’ clippy (linter) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° drop_bounds, ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π°Ρ ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ привязки Β«T: DropΒ» Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ;
  • Π’ компилятор Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²ΠΎΠΉ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹
    wasm32-unknown-wasi (интСрфСйс WASI kutumia WebAssembly nje ya kivinjari);

  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Rust Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ для дистрибутивов Π½Π° основС стандартной Π‘ΠΈ-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Musl.

Chanzo: opennet.ru

Kuongeza maoni