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

Mozilla layihəsi tərəfindən əsası qoyulmuş, lakin hazırda Rust Foundation müstəqil qeyri-kommersiya təşkilatının himayəsi altında hazırlanmış Rust 1.54 sistem proqramlaşdırma dilinin buraxılışı nəşr olunub. 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 və ya iş vaxtından istifadə etmədən yüksək tapşırıq 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 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ə asılılıqları idarə etmək üçün layihə Yük paketi menecerini inkişaf etdirir. Crates.io deposu kitabxanaların yerləşdirilməsi üçün dəstəklənir.

Əsas yeniliklər:

  • Atributlar daxilində funksiyaya bənzər makrolardan istifadə etmək imkanı əlavə edildi (prosedur makroları və “makro_qaydalar!” makrosundan istifadə etməklə yaradılmış makrolar). Belə makrolar funksiyalardan “!” işarəsi ilə fərqlənir. addan sonra (makros!(...)) və funksiya çağırışı yaratmaq əvəzinə makro mənbə mətnini əvəz etmək. Atributlar daxilində makroların çağırılması şərhlərin sənədləşdirilməsinə digər faylların məzmununu daxil etmək üçün faydalı ola bilər. Məsələn, README faylının məzmununu və skript icrasının nəticəsini daxil etmək üçün siz qeyd edə bilərsiniz: #![doc = include_str!("README.md")] #[path = concat!(env!("OUT_DIR) "), "/generated.rs" )] mod yaradıldı;
  • Wasm32 platforması üçün quraşdırılmış kompilyator funksiyaları (Intrinsics) WebAssembly-də SIMD təlimatlarından istifadə etməyə imkan verən stabilləşdirilmişdir. v128_bitselect kimi əksər funksiyalar "təhlükəsiz" rejimdə mövcuddur, lakin göstəricilərlə işləyən bəzi funksiyalar (məsələn, v128_load) "təhlükəsiz" olaraq qalır.
  • Artan tərtibin defolt istifadəsi geri döndü və kodun yalnız dəyişdirilmiş hissələrini yenidən qurmağa imkan verir ki, bu da kiçik dəyişikliklər etdikdən sonra yenidən tərtib edərkən layihənin qurulması üçün lazım olan vaxtı əhəmiyyətli dərəcədə azalda bilər. Artan kompilyasiya 1.52.1 buraxılışında disk keşindən məlumatların yüklənməsi üçün əlavə yoxlama əlavə edildikdən sonra ortaya çıxan gizli səhvlərə görə dayandırıldı.
  • API-lərin yeni bir hissəsi sabit kateqoriyaya, o cümlədən aşağıdakı stabilləşdirilmiş kateqoriyaya köçürüldü:
      BTreeMap::into_keys
    • BTreeMap::into_values
    • HashMap::into_keys
    • HashMap::into_values
    • arch ::wasm32
    • VecDeque::binary_search
    • VecDeque::binary_search_by
    • VecDeque::binary_search_by_key
    • VecDeque::partition_point
  • Yük ağacına əlavə edilmiş seçimlər: “-prune " paketi asılılıq qrafikindən silmək üçün, "-depth" yalnız asılılıq ağacında verilmiş yuva səviyyəsinin elementlərini göstərmək üçün, "-edges no-proc-makro" prosedur makro asılılıqlarını gizlətmək üçün.

Mənbə: opennet.ru

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