Rust-ийн автомат санах ойн удирдлага нь хөгжүүлэгчийг заагчийг удирдахаас чөлөөлж, санах ойн сул хандалт, хоосон заагчийг задлах, буфер хэтрүүлэх гэх мэт доод түвшний санах ойн ашиглалтаас үүсэх асуудлаас хамгаалдаг. Төслийн хүрээнд номын санг түгээх, угсралтыг баталгаажуулах, хамаарлыг удирдах багц менежерийг боловсруулж байна.
Үндсэн
- Rustc хөрвүүлэгч дээр
өгсөн кодын профайлын үр дүнд үндэслэн оновчтой болгох дэмжлэг (PGO, Profile-Guided Optimization),
програмыг гүйцэтгэх явцад хуримтлагдсан статистикийн дүн шинжилгээнд үндэслэн илүү оновчтой код үүсгэх боломжийг танд олгоно. Профайл үүсгэхийн тулд "-C profile-generate" гэсэн тугийг өгсөн бөгөөд угсрах явцад уг профайлыг ашиглахын тулд "-C profile-use" (эхэндээ програмыг эхний тугаар угсарч, тойрон гүйж, үүсгэсний дараа хийдэг. профиль, энэ нь хоёр дахь тугтай дахин угсарсан); - Консолын програмуудыг хурдан туршихад тохиромжтой "cargo run" командыг гүйцэтгэх үед багцад хэд хэдэн гүйцэтгэгдэх файл байгаа тохиолдолд ажиллуулах боломжтой файлыг автоматаар сонгох боломжийг нэмсэн. Гүйцэтгэх өгөгдмөл файлыг багцын параметрүүдтэй [багц] хэсэгт байгаа анхдагч ажиллуулах удирдамжаар тодорхойлдог бөгөөд энэ нь таныг "cargo run"-ыг ажиллуулах бүрт "-bin" тугаар файлын нэрийг тодорхой зааж өгөхөөс зайлсхийх боломжийг олгодог;
- Өмнө нь нийлүүлсэн "ачаа борлуулагч" команд
тусдаа багц . Энэ тушаал нь хараат байдлын локал хуулбартай ажлыг зохион байгуулах боломжийг олгодог - "ачаа нийлүүлэгч" -ийг ажиллуулсны дараа төслийн хамаарлын бүх эх кодыг crates.io-оос орон нутгийн лавлах руу татаж аваад дараа нь хайрцагт хандахгүйгээр ажилд ашиглах боломжтой. io (тушаалыг гүйцэтгэсний дараа уг директорийг бүтээхэд ашиглахын тулд тохиргоог өөрчлөх зөвлөмжийг харуулав). Энэ функцийг хувилбарын хамт нэг архивт бүх хамаарлын багц бүхий rustc хөрвүүлэгчийг хүргэх ажлыг зохион байгуулахад аль хэдийн ашиглагдаж байна; - Төрөл бүрийн нэр (жишээ нь, "fn increment_or_zero(x: ByteOption) функцын үндсэн хэсэгт "ByteOption::None => 0" гэж зааж өгч болно), тооцооллын бүтцийг (‹) ашиглан тоолох сонголтуудын холбоосыг үүсгэх боломжтой боллоо. MyType‹.. ››::option => N) эсвэл өөрөө хандалт (c &self блокуудад та “Self::Quarter => 25” гэж зааж өгч болно);
- Макронд нэргүй тогтмолуудыг үүсгэх чадварыг нэмсэн. "const"-д элементийн нэрийг тодорхойлохын оронд та "_" тэмдэгтийг ашиглан дахин давтагдахгүй танигчийг динамикаар сонгож, макро дахин дуудах үед нэрийн зөрчилдөөнөөс зайлсхийх боломжтой;
- "#[repr(align(N))" атрибутыг AlignN‹T› бүтцийг зэрэгцүүлэн тодорхойлохтой төстэй синтакс ашиглан, дараа нь AlignN‹MyEnum› ашиглан тоогоор ашиглах чадварыг нэмсэн;
- API-ийн шинэ хэсгийг BufReader::buffer, BufWriter::buffer, болон зэрэг тогтвортой ангилалд шилжүүлсэн.
Нүд::from_mut,
Нүд:: эсийн_зүсмэл,
DoubleEndedIterator::nth_back,
Сонголт::xor
{i,u}{8,16,64,128,size}::урвуу_бит, Боодол::урвуу_бит болон
зүсмэл::хуулбарлах.
Нэмж дурдахад үүнийг тэмдэглэж болно
Эх сурвалж: opennet.ru