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

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

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

Санах ойн аюулгүй байдлыг Rust-д хөрвүүлэх үед лавлагаа шалгах, объектын өмчлөлийг хянах, объектын ашиглалтын хугацааг (хамрах хүрээ) бүртгэх, кодыг гүйцэтгэх явцад санах ойд нэвтрэх зөв эсэхийг үнэлэх замаар хангадаг. Rust нь бүхэл тоон хэтрэхээс хамгаалж, ашиглахын өмнө хувьсагчийн утгыг заавал эхлүүлэхийг шаарддаг, стандарт номын сан дахь алдааг илүү сайн зохицуулдаг, өөрчлөгдөшгүй лавлагаа ба хувьсагчийн ойлголтыг анхдагчаар ашигладаг, логик алдааг багасгахын тулд хүчтэй статик бичвэрийг санал болгодог.

Гол инноваци:

  • "Ачааны" багц менежер нь "нэмэх" командыг санал болгодог бөгөөд энэ нь Cargo.toml манифестэд шинэ хамаарлыг нэмэх эсвэл тушаалын мөрөөс одоо байгаа хамаарлыг өөрчлөх боломжийг олгодог. Тус тушаал нь мөн хувь хүний ​​онцлог, хувилбаруудыг тодорхойлох боломжийг олгодог, жишээлбэл: cargo add serde —features derive cargo add nom@5
  • Анхдагч сонголтыг “#[өгөгдмөл]” атрибут ашиглан тодорхойлсон тоололтой “#[derive(Default)]-г ашиглах боломжийг нэмсэн. #[үүсгэх(Өгөгдмөл)] enum Магадгүй { #[үндсэн] Юу ч биш, ямар нэг зүйл(T), }
  • Линукс платформ дээр Линуксийн цөмөөс өгсөн футексүүдийг ашиглахад үндэслэсэн Mutex синхрончлолын механизмын илүү авсаархан, хурдан хэрэглүүрийг ашигладаг. Өмнө нь pthreads номын санд суурилсан хэрэгжүүлэлтээс ялгаатай нь шинэ хувилбар нь Mutex төлөвийг хадгалахын тулд 5-ийн оронд зөвхөн 40 байт ашигладаг. Үүний нэгэн адил Condvar болон RwLock түгжих механизмуудыг futex рүү шилжүүлсэн.
  • Үйлдлийн системгүйгээр ажиллах боломжтой гүйцэтгэгдэх файлуудыг үүсгэх зориулалттай x86_64-unknown-none зорилтот платформын хоёр дахь түвшний дэмжлэгийг хэрэгжүүлсэн. Жишээлбэл, цөмийн бүрэлдэхүүн хэсгүүдийг бичихдээ заасан зорилтот платформыг ашиглаж болно. Хоёрдахь түвшний дэмжлэг нь угсралтын баталгааг агуулдаг.
  • Гурав дахь түвшний дэмжлэгийг aarch64-pc-windows-gnullvm болон x86_64-pc-windows-gnullvm платформуудад хэрэгжүүлсэн. Гурав дахь түвшин нь үндсэн дэмжлэгийг агуулдаг боловч автоматжуулсан туршилт, албан ёсны бүтцийг нийтлэх, кодыг бүтээх боломжтой эсэхийг шалгахгүйгээр.
  • API-ийн шинэ хэсгийг тогтвортой гэсэн ангилалд шилжүүлж, шинж чанаруудын арга, хэрэгжилтийг тогтворжуулсан:
    • bool :: дараа нь_зарим
    • f32::нийт_см
    • f64::нийт_см
    • Stdin :: шугамууд
    • windows::CommandExt::raw_arg
    • impl AssertUnwindSafe-ийн анхдагч утга
    • -аас > Rc-д зориулсан
    • -аас > Arc<[u8]>-д зориулагдсан
    • EncodeWide-д зориулсан FusedIterator

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

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