Rust 1.67 Proqramlaşdırma Dili Buraxılışı

Mozilla layihəsi tərəfindən əsası qoyulmuş, lakin indi Rust Foundation müstəqil qeyri-kommersiya təşkilatının himayəsi altında hazırlanmış Rust 1.67 ümumi məqsədli proqramlaşdırma dilinin buraxılışı dərc edilmişdir. Bu dil yaddaşın təhlükəsizliyinə diqqət yetirir və zibil toplayıcıdan və işləmə müddətindən istifadə etmədən yüksək iş paralelliyinə nail olmaq üçün vasitələr təqdim edir (iş vaxtı standart kitabxananın əsas işə salınması və saxlanmasına qədər azaldılır).

Rust-un yaddaşla işləmə üsulları tərtibatçını göstəricilərlə manipulyasiya edərkən xətalardan xilas edir və yaddaşın aşağı səviyyəli işləməsi nəticəsində yaranan problemlərdən qoruyur, məsələn, yaddaş sahəsi boşaldıqdan sonra ona daxil olmaq, sıfır göstəricilərə istinad etmək, bufer aşmaq və s. Kitabxanaları yaymaq, qurmaları təmin etmək və asılılıqları idarə etmək üçün layihə Yük paketi meneceri hazırlayır. Crates.io deposu kitabxanaların yerləşdirilməsi üçün dəstəklənir.

Yaddaşın təhlükəsizliyi Rust-da kompilyasiya zamanı istinad yoxlaması, obyekt sahibliyinin izlənməsi, obyektin istifadə müddətinin (əhatə dairələrinin) izlənməsi və kodun icrası zamanı yaddaşa girişin düzgünlüyünün qiymətləndirilməsi vasitəsilə təmin edilir. Rust həmçinin tam ədədlərin daşmasına qarşı qorunma təmin edir, istifadə etməzdən əvvəl dəyişən dəyərlərin məcburi işə salınmasını tələb edir, standart kitabxanada səhvləri daha yaxşı idarə edir, dəyişməz istinadlar və dəyişənlər konsepsiyasını standart olaraq tətbiq edir, məntiqi səhvləri minimuma endirmək üçün güclü statik yazma təklif edir.

Əsas yeniliklər:

  • Future::Output ilə asinxron funksiyalar üçün indi qaytarılan dəyər nəzərə alınmadıqda xəbərdarlıq daxil olan "#[istifadə olunmalıdır]" annotasiyalarını təyin etmək mümkündür ki, bu da funksiyanın dəyərləri dəyişdirəcəyi fərziyyəsindən yaranan səhvləri müəyyən etməyə kömək edir. yeni bir dəyər qaytarmaq əvəzinə. #[istifadə etmək lazımdır] async fn bar() -> u32 { 0} async fn caller() { bar().await; } xəbərdarlıq: istifadə edilməli olan `bar` tərəfindən qaytarılan gələcək istifadə olunmamış çıxış —> src/lib.rs:5:5 | 5 | bar().gözləmək; | ^^^^^^^^^^^ | = qeyd: `#[xəbərdarlıq(istifadə olunmamış_istifadə olunmalıdır)]` defolt olaraq aktivdir
  • FIFO növbələrinin std::sync::mpsc (çox istehsalçılı tək istehlakçı) tətbiqi yeniləndi, o, əvvəlki API-ni qoruyarkən crossbeam-kanal modulundan istifadəyə keçdi. Yeni tətbiq bir sıra problemlərin həlli, daha yüksək performans və sadələşdirilmiş kodun saxlanması ilə seçilir.
  • API-nin yeni hissəsi stabillər kateqoriyasına köçürüldü, o cümlədən xüsusiyyətlərin üsulları və tətbiqləri stabilləşdirildi:
    • {integer}::checked_ilog
    • {integer}::checked_ilog2
    • {integer}::checked_ilog10
    • {integer}::ilog
    • {integer}::ilog2
    • {integer}::ilog10
    • NonZeroU*::ilog2
    • NonZeroU*::ilog10
    • NonZero*::BITS
  • Onun sabitlər əvəzinə istənilən kontekstdə istifadə imkanını təyin edən "const" atributundan funksiyalarda istifadə olunur:
    • char::from_u32
    • char::from_digit
    • char::to_digit
    • core::char::from_u32
    • core::char::from_digit
  • Rust-dan Linux nüvəsində (linuxkernel), həmçinin Sony PlayStation 1 (mipsel-sony-psx), AIX ilə PowerPC (powerpc64-ibm-aix), QNX Neutrino RTOS () üçün üçüncü dəstək səviyyəsi tətbiq edilmişdir. aarch64-naməlum-nto-) platformaları qnx710, x86_64-pc-nto-qnx710). Üçüncü səviyyə əsas dəstəyi əhatə edir, lakin avtomatlaşdırılmış sınaq, rəsmi quruluşların dərc edilməsi və ya kodun tikilib-qurula bilməyəcəyini yoxlamaq olmadan.

Əlavə olaraq, ARM tərəfindən AArch64 arxitekturasına əsaslanan sistemlər üçün yığılmış drayverlərin və Linux nüvə modullarının hazırlanması üçün Rust dilindən istifadə etməyə imkan verən yamaqların dərcini qeyd edə bilərik.

Mənbə: opennet.ru

Добавить комментарий