Забони барномасозии Rust 1.90, ки аз ҷониби лоиҳаи Mozilla асос ёфтааст, аммо ҳоло таҳти сарпарастии Бунёди мустақили ғайритиҷоратии Rust таҳия шудааст, нашр шуд. Забон ба бехатарии хотира тамаркуз мекунад ва абзорҳоро барои ноил шудан ба параллелизми баланди иҷрои вазифаҳо ҳангоми иҷрои кор бидуни истифодаи коллектори ахлот ва вақти корӣ таъмин мекунад (вақти кор ба оғозкунии асосӣ ва нигоҳдории китобхонаи стандартӣ кам карда мешавад).
Усулҳои коркарди хотираи Rust таҳиякунандаро аз хатогиҳо ҳангоми коркарди нишонаҳо наҷот медиҳанд ва аз мушкилоте, ки дар натиҷаи коркарди хотираи сатҳи паст ба вуҷуд меоянд, ба монанди дастрасӣ ба минтақаи хотира пас аз озод шудани он, барҳам додани ишораҳои нул, изофаи буфер ва ғайра муҳофизат мекунад. Барои паҳн кардани китобхонаҳо, таъмин кардани сохтан ва идоракунии вобастагӣ, лоиҳа менеҷери бастаи боркашониро таҳия мекунад. Анбори crates.io барои хостинги китобхонаҳо дастгирӣ карда мешавад.
Бехатарии хотира дар Rust дар вақти тартибдиҳӣ тавассути санҷиши истинод, нигоҳ доштани моликияти объект, нигоҳ доштани мӯҳлати умри объект (миқёс) ва арзёбии дурустии дастрасии хотира ҳангоми иҷрои код таъмин карда мешавад. Rust инчунин муҳофизатро аз фаромадани ададҳо таъмин мекунад, пеш аз истифода оғозкунии ҳатмии арзишҳои тағирёбандаро талаб мекунад, хатогиҳоро дар китобхонаи стандартӣ беҳтар идора мекунад, консепсияи истинодҳо ва тағирёбандаҳоро ба таври нобаёнӣ татбиқ мекунад, чопкунии қавии статикиро барои кам кардани хатогиҳои мантиқӣ пешниҳод мекунад.
Навовариҳои асосӣ:
- В Linux Дар компютерҳои x86_64, пайвандкунандаи LLD аз лоиҳаи LLVM ба таври пешфарз барои пайваст кардани бастаҳои қуттии динамикӣ истифода мешавад. Дар муқоиса бо пайвандкунандаи BFD, истифодаи LLD боиси беҳтар шудани иҷрои пайвасткунӣ барои файлҳои иҷрошавандаи калон ва лоиҳаҳо бо миқдори зиёди маълумоти ислоҳи хатогиҳо, инчунин барқароркунии босуръати инкременталӣ гардид. Дар аксари ҳолатҳо, LLD бо BFD мувофиқи қафо аст. Агар мушкилот ба миён оянд, шумо метавонед ба BFD бо муайян кардани парчами "-C linker-features=-lld" дар тағирёбандаи муҳити RUSTFLAGS ё бо илова кардани инҳо ба файли конфигуратсияи .cargo/config.toml баргардед: [target.x86_64-unknown-linux-gnu] rustflags = ["-Clinker-features=-lld"]
- Менеҷери бастаи боркаш дорои имконоти нави "--workspace" дар фармони "нашр" мебошад, ки ба шумо имкон медиҳад, ки ҳама бастаҳоро аз фазои кории интихобшуда ба таври худкор интишор кунед (маҷмӯи бастаҳое, ки як файли ягонаи Cargo.lock ва директорияи баромади умумии сохтмонро мубодила мекунанд), нигоҳ доштани тартиби бастаҳо ва бо назардошти вобастагии байни онҳо.
- Қисмати нави API ба категорияи устувор гузаронида шуд, аз ҷумла усулҳо ва татбиқи хислатҳо устувор карда шуданд:
- u{n}::checked_sub_signed
- u{n}::overflowing_sub_signed
- u{n}::saturating_sub_signed
- u{n}::wrapping_sub_signed
- impl Copy барои IntErrorKind
- impl Hash барои IntErrorKind
- impl PartialEq<&CStr> барои CStr
- impl PartialEq барои CStr
- impl PartialEq > барои CStr
- impl PartialEq<&CStr> барои CString
- impl PartialEq барои CString
- impl PartialEq > барои CString
- impl PartialEq<&CStr> барои гов
- impl PartialEq барои гов
- impl PartialEq барои гов
- Аломати "const" дар функсияҳо истифода мешавад:
- <[T]>:: баръакс
- f32::ошёна
- f32 :: шифт
- f32 :: trunc
- f32::фракт
- f32 :: мудаввар
- f32 :: round_ties_even
- f64::ошёна
- f64 :: шифт
- f64 :: trunc
- f64::фракт
- f64 :: мудаввар
- f64 :: round_ties_even
- Пайвастшавии динамикӣ ба таври нобаёнӣ барои ҳадафҳои ба Musl асосёфта дар сатҳи дастгирии 64 фаъол аст: mips64-unknown-linux-muslabi64, powerpc32-unknown-linux-musl, powerpc-unknown-linux-musl, powerpc-unknown-linux-muslspe, riscv390gc-unknown-linux-muslspe, riscv7gc-unknown-linux-muslun-XNUMX ва номаълум thumbvXNUMXneon-номаълум-linux-musleabihf.
- Платформаи мақсадноки "x86_64-apple-darwin" аз сатҳи 86 ба сатҳи 64 такмил дода шуд (Apple нақша дорад, ки дастгирии меъмории xXNUMX_XNUMX-ро хотима диҳад). Дастгирии сатҳи XNUMX сохторҳои бинарӣ, санҷиши ҳамаҷониба ва кафолати баландтарини дастгирии платформаро дар бар мегирад - ҳар як тағирёбии компилятор тавассути иҷро кардани маҷмӯи пурраи санҷиш тасдиқ карда мешавад. Дастгирии сатҳи XNUMX сифати сохтмонро кафолат медиҳад, аммо барои гузаштан аз пакети санҷиш кафолат намедиҳад.
Илова бар ин, қайд кардан бамаврид аст, ки таҳияи абзорҳои таҳия аз ҷониби Microsoft ... Windows-драйверҳо бо забони Rust. Маҷмӯи бастаҳои қуттӣ барои эҷоди драйверҳои дар асоси WDM аллакай дар GitHub нашр шудааст (Windows Маҷмӯаи драйверҳо), KMDF (Чаҳорчӯбаи драйвери режими ядро) ва UMDF (Чаҳорчӯбаи драйвери режими корбар), инчунин хидматҳои Win32, ки барои истифода мувофиқанд Windows 11. Ҳадафи лоиҳа таъмин намудани таҳиягарони Rust бо китобхонаҳо ва функсияҳои монанд ба онҳое мебошад, ки дар маҷмӯаи абзорҳои WDK барои таҳиягарони драйвери C пешниҳод шудаанд. Дар айни замон, маҷмӯаи абзорҳои таҳияи драйвери Rust ҳангоми ҳамкорӣ бо зерсистемаҳо шумораи зиёди зангҳои ноамнро истифода мебарад. Windows, аммо нақшаҳои оянда таҳияи абстраксияҳои бехатарро барои сохторҳои ядро ва интерфейси драйвери дастгоҳ (DDI) дар бар мегиранд. Кори лоиҳа тибқи иҷозатномаҳои MIT ва Apache 2.0 паҳн карда мешавад.
Манбаъ: opennet.ru
