Rust 1.46 Програмчлалын хэлний хувилбар

Нийтэлсэн системийн програмчлалын хэлний 1.46 хувилбарыг гаргасан Rust, Mozilla төслөөс үүсгэн байгуулсан. Энэ хэл нь санах ойн аюулгүй байдалд анхаарлаа төвлөрүүлж, санах ойн автомат удирдлагаар хангадаг бөгөөд хог цуглуулагч, хог хаягдал ашиглахгүйгээр өндөр түвшний параллелизмд хүрэх хэрэгслүүдээр хангадаг. ажиллах хугацаа.

Rust-ийн санах ойн автомат удирдлага нь заагчийг удирдах үеийн алдааг арилгаж, суллагдсаны дараа санах ойн мужид хандах, заагчийг тэглэх, буфер хэт ачаалах гэх мэт доод түвшний санах ойн ашиглалтаас үүсэх асуудлаас хамгаалдаг. Төслийн хүрээнд номын санг түгээх, угсралтыг баталгаажуулах, хамаарлыг удирдах багц менежерийг боловсруулж байна. Ачааны, програмд ​​шаардлагатай сангуудыг нэг товшилтоор авах боломжийг танд олгоно. Хост номын сангуудад репозиторыг дэмждэг crates.io.

Үндсэн инноваци:

  • "const fn" илэрхийллээр тодорхойлсон функцүүдийн боломжууд өргөжсөн бөгөөд үүнийг зөвхөн ердийн функц гэж нэрлээд зогсохгүй тогтмолуудын оронд ямар ч нөхцөлд ашиглаж болно. Эдгээр функцууд нь ажиллах үед биш эмхэтгэх үед тооцогддог тул зөвхөн тогтмолуудаас унших боломжтой гэх мэт тодорхой хязгаарлалттай байдаг.

    Шинэ хувилбар нь эдгээр функцүүдэд Boolean операторуудыг ("&&" ба "||") ашиглахыг хориглож, "if", "if let", "match" бүтцийг ашиглахыг зөвшөөрдөг.
    "while", "while let" болон "loop" зэрэг нь "&[T]" илэрхийллийг ашиглан зүсмэлүүд (зүсмэл, динамик массив) болгон хувиргах боломжийг олгодог. Эдгээр функцийг "const fn" функцэд ашиглах нь зарим нөөц их шаарддаг үйлдлүүдийг эмхэтгэлийн үе шатанд шилжүүлэх боломжийг олгодог. Жишээлбэл, "const-sha1"-ийн хэрэгжилт нь хөрвүүлэх үед SHA-1 хэшийг тооцоолох боломжийг олгодог бөгөөд энэ нь Rust-ийн WinRT холболтыг бараг 40 дахин хурдасгахад хүргэдэг.

  • Алдааны мэдэгдлийг илүү мэдээлэлтэй болгохын тулд "#[дуудагч_дуудаг]" шинж чанарын дэмжлэгийг тогтворжуулсан бөгөөд энэ нь задлах зэрэг функцүүдэд хэрэгтэй бөгөөд төрлийг буруу ашигласан тохиолдолд сандрах шалтгаан болдог. Заасан атрибутыг үймээн хянагч ашиглан дуудлага хийгчийн байршлыг алдааны мэдэгдэлд хэвлэх болно.
  • Үүнийг std::mem::forget аргад тогтмолуудын оронд ямар ч нөхцөлд ашиглах боломжийг тодорхойлдог “const” шинж чанарыг ашигладаг.
  • API-ийн шинэ хэсгийг тогтворжуулсан Option::zip болон vec::Drain::as_slice зэрэг тогтвортой ангилалд шилжүүлсэн.
  • Ачааны багц менежерт нэмсэн багцыг эмхэтгэх үед тохируулсан орчны шинэ хувьсагчдад зориулсан дэмжлэг: CARGO_BIN_NAME (үр дүнгийн гүйцэтгэх файлын нэр), CARGO_CRATE_NAME (багцын нэр), CARGO_PKG_LICENSE (манифестт заасан лиценз), CARGO_PKG_LICENSE_FILE (лицензийн файлын зам).

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх