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

nəşr edilmişdir sistem proqramlaşdırma dilinin 1.46 buraxılışı Pas, Mozilla layihəsi tərəfindən yaradılmışdır. Bu dil yaddaşın təhlükəsizliyinə diqqət yetirir, yaddaşın avtomatik idarə edilməsini təmin edir və zibil toplayıcıdan istifadə etmədən yüksək tapşırıq paralelliyinə nail olmaq üçün alətlər təqdim edir. uzunluğu.

Rust-un avtomatik yaddaş idarəetməsi göstəriciləri idarə edərkən səhvləri aradan qaldırır və aşağı səviyyəli yaddaş manipulyasiyasından yaranan problemlərdən qoruyur, məsələn, boşaldıqdan sonra yaddaş bölgəsinə daxil olmaq, null göstərici referensiyaları, bufer aşması və s. Kitabxanaları yaymaq, montajı təmin etmək və layihə tərəfindən asılılıqları idarə etmək üçün paket meneceri hazırlanır. Yük, proqram üçün lazım olan kitabxanaları bir kliklə əldə etməyə imkan verir. Kitabxanaların saxlanması üçün repozitoriya dəstəklənir crates.io.

Əsas yeniliklər:

  • “const fn” ifadəsi ilə müəyyən edilmiş funksiyaların imkanları genişləndirilmişdir ki, onları təkcə müntəzəm funksiyalar kimi deyil, həm də sabitlər əvəzinə istənilən kontekstdə istifadə etmək olar. Bu funksiyalar icra zamanı deyil, tərtib zamanı hesablanır, ona görə də onlar yalnız sabitlərdən oxumaq imkanı kimi müəyyən məhdudiyyətlərə məruz qalırlar.

    Yeni buraxılış bu cür funksiyalarda Boolean operatorlarından (“&&” və “||”) istifadə qadağasını aradan qaldırır və “if”, “if let”, “match” konstruksiyalarından istifadə etməyə imkan verir,
    "while", "while let" və "loop", həmçinin "&[T]" ifadəsindən istifadə edərək dilimlərə (dilim, dinamik massivlər) çevirmək imkanı verir. Bu funksiyaların “const fn” funksiyalarında istifadəsi bəzi resurs tələb edən əməliyyatları tərtib mərhələsinə keçirməyə imkan verir. Məsələn, "const-sha1" tətbiqi kompilyasiya zamanı SHA-1 hashlərini hesablamağa imkan verir ki, bu da Rust üçün WinRT bağlamalarını demək olar ki, 40 dəfə sürətləndirir.

  • Səhv mesajlarını daha informativ etmək üçün “#[zəng edəni_izləmək]” atributuna dəstək stabilləşdirilib, bu, açma kimi funksiyalar üçün faydalıdır və növlərdən düzgün istifadə olunarsa, çaxnaşma yarada bilər. Göstərilən atribut çaxnaşma idarəçisi tərəfindən səhv mesajında ​​zəng edənin yerini çap etmək üçün istifadə olunacaq.
  • std::mem::forget metodunda sabitlərin əvəzinə istənilən kontekstdə istifadə imkanını müəyyən edən “const” atributundan istifadə olunur.
  • API-nin yeni hissəsi stabilləşdirilmiş Seçim::zip və vec::Drain::as_slice daxil olmaqla, sabit kateqoriyaya köçürüldü.
  • Paket menecerində Cargo əlavə etdi paketi tərtib edərkən təyin edilmiş yeni mühit dəyişənləri üçün dəstək: CARGO_BIN_NAME (nəticədə icra olunan faylın adı), CARGO_CRATE_NAME (paket adı), CARGO_PKG_LICENSE (manifestdə göstərilən lisenziya), CARGO_PKG_LICENSE_FILE (lisenziya faylına gedən yol).

Mənbə: opennet.ru

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