Rust 1.55 Варақаи забони барномасозӣ

Нашри забони барномасозии системавии Rust 1.55, ки аз ҷониби лоиҳаи Mozilla таъсис дода шудааст, аммо ҳоло таҳти сарпарастии ташкилоти мустақили ғайритиҷоратии Rust Foundation таҳия шудааст, нашр шуд. Забон ба бехатарии хотира тамаркуз мекунад, идоракунии автоматии хотираро таъмин мекунад ва воситаҳоро барои ноил шудан ба параллелизми баланди вазифаҳо бидуни истифодаи коллектори партов ё вақти корӣ таъмин мекунад (вақти кор то ибтидосозӣ ва нигоҳдории китобхонаи стандартӣ кам карда мешавад).

Идоракунии хотираи автоматии Rust хатогиҳоро ҳангоми коркарди нишондиҳандаҳо бартараф мекунад ва аз мушкилоте, ки аз коркарди хотираи сатҳи паст ба вуҷуд меоянд, ба монанди дастрасӣ ба минтақаи хотира пас аз озод шудани он, истинодҳои нули нишоннамо, изофаи буфер ва ғайра муҳофизат мекунад. Барои паҳн кардани китобхонаҳо, таъмини ҷамъбаст ва идоракунии вобастагӣ, лоиҳа менеҷери бастаи боркашониро таҳия мекунад. Анбори crates.io барои хостинги китобхонаҳо дастгирӣ карда мешавад.

Навовариҳои асосӣ:

  • Менеҷери бастаи боркаш қобилияти муттаҳид кардани хатогиҳои такрорӣ ва огоҳиҳоеро дорад, ки ҳангоми сохтмон рух медиҳанд. Ҳангоми иҷрои фармонҳо ба монанди "санҷиши боркаш" ва "санҷиши боркаш --all-targets", ки боиси сохтани якчанд бастаи дорои параметрҳои гуногун мешаванд, ба корбар ҳоло ба ҷои нишон додани он, хулосаи пайдоиши мушкилоти такроршаванда нишон дода мешавад. якчанд огоҳиҳои якхела ҳангоми сохтани як чиз такроран. file. $ боркаш +1.55.0 чек —ҳама-ҳадафҳо Санҷиши foo v0.1.0 Огоҳӣ: функсия ҳеҷ гоҳ истифода намешавад: 'foo' —> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = щайд: '#[warn(dead_code)]' ба таври пешфарз огоҳӣ фаъол аст: 'foo' (lib) 1 огоҳии огоҳкунанда тавлид кард: 'foo' (озмоиши lib) 1 огоҳӣ тавлид кард (1 нусха) Ҳадафи таҳияи анҷомёфта [ноптимизатсияшуда + debuginfo] (с) дар 0.84 сония
  • Рамзи таҳлили нуқтаи шинокунанда дар китобхонаи стандартӣ барои истифодаи алгоритми тезтар ва дақиқтари Эйзел-Лемире интиқол дода шуд, ки он баъзе мушкилоти қаблан мушоҳидашударо бо яклухткунӣ ва таҳлили рақамҳо бо шумораи хеле зиёди рақамҳо ҳал кард.
  • Имконияти муайян кардани диапазонҳои пӯшида дар қолибҳо мӯътадил карда шуд (“X..” ҳамчун диапазон, ки аз арзиши X оғоз мешавад ва бо арзиши максималии навъи бутун ба итмом мерасад) тафсир мешавад: мувофиқати x ҳамчун u32 { 0 => println! ("сифр!"), 1.. => println!("рақами мусбат!"), }
  • Вариантҳои васеъшудаи хатогиҳои std::io::ErrorKind фаро гирифта шудаанд (хатоҳоро ба категорияҳо ба монанди NotFound ва WouldBlock тасниф мекунад). Пештар, хатогиҳое, ки ба категорияҳои мавҷуда мувофиқ набуданд, ба категорияи ErrorKind::Other дохил мешуданд, ки он барои хатогиҳо дар коди тарафи сеюм низ истифода мешуд. Ҳоло як категорияи алоҳидаи дохилӣ вуҷуд дорад ErrorKind:: Uncategorized барои хатогиҳое, ки ба категорияҳои мавҷуда мувофиқат намекунанд ва ErrorKind:: Категорияи дигар бо хатогиҳое маҳдуд аст, ки дар китобхонаи стандартӣ рух намедиҳанд (функсияҳои китобхонаи стандартӣ, ки io::Error-ро бармегардонанд) дигар ErrorKind:: категорияи Дигарро истифода набаред).
  • Қисмати нави API ба категорияи устувор гузаронида шуд, аз ҷумла усулҳо ва татбиқи хислатҳо устувор карда шуданд:
    • Пайваст :: клон карда шудааст
    • Drain::as_str
    • IntoInnerError::into_error
    • IntoInnerError::into_parts
    • MaybeUnit ::assume_init_mut
    • MaybeUnit ::assume_init_ref
    • MaybeUninit :: нависед
    • массив :: харита
    • ops :: ControlFlow
    • x86::_bittest
    • x86::_bittestandcomplement
    • x86::_bittestandreset
    • x86 :: _bittestandset
    • x86_64 ::_bittest64
    • x86_64 :: _bittestandcomplement64
    • x86_64 ::_bittestandreset64
    • x86_64 :: _bittestandset64
  • Дар усули str::from_utf8_unchecked хусусияти "const", ки имкони истифодаи онро дар ҳама гуна контекст ба ҷои доимӣ муайян мекунад, истифода мешавад.
  • Сатҳи сеюми дастгирӣ барои платформаи powerpc64le-unknown-freebsd амалӣ карда шудааст. Сатҳи сеюм дастгирии асосиро дар бар мегирад, аммо бидуни санҷиши автоматӣ, нашри сохторҳои расмӣ ё тафтиши он, ки оё код сохта мешавад.

Манбаъ: opennet.ru

Илова Эзоҳ