Kutolewa kwa lugha ya programu ya kutu 1.62

Lugha ya programu ya madhumuni ya jumla Rust 1.62, iliyoanzishwa na mradi wa Mozilla lakini sasa imeendelezwa chini ya ufadhili wa shirika huru lisilo la faida la Rust Foundation, imetolewa. Lugha inazingatia usimamizi salama wa kumbukumbu na hutoa njia za kufikia usawa wa juu wa kazi huku ikiepuka matumizi ya mtoaji wa takataka na wakati wa kukimbia (muda wa kukimbia umepunguzwa kuwa uanzishaji wa kimsingi na matengenezo ya maktaba ya kawaida).

Mbinu za utunzaji wa kumbukumbu za kutu huokoa msanidi programu kutokana na hitilafu wakati wa kuendesha viashiria na kulinda dhidi ya matatizo yanayotokea kutokana na utunzaji wa kumbukumbu wa kiwango cha chini, kama vile kufikia eneo la kumbukumbu baada ya kuachiliwa, kuondoa marejeleo ya viashiria visivyofaa, utiririshaji wa bafa, n.k. Ili kusambaza maktaba, kutoa miundo na kudhibiti utegemezi, mradi huunda msimamizi wa kifurushi cha Cargo. Hazina ya crates.io inatumika kwa kupangisha maktaba.

Usalama wa kumbukumbu hutolewa katika Rust wakati wa kukusanya kupitia kukagua marejeleo, kufuatilia umiliki wa kitu, kufuatilia muda wa maisha ya kitu (wigo), na kutathmini usahihi wa ufikiaji wa kumbukumbu wakati wa utekelezaji wa nambari. Kutu pia hutoa ulinzi dhidi ya mafuriko kamili, inahitaji uanzishaji wa lazima wa maadili tofauti kabla ya matumizi, hushughulikia makosa vyema katika maktaba ya kawaida, hutumia dhana ya marejeleo yasiyobadilika na vigeu kwa chaguo-msingi, hutoa uchapaji thabiti wa tuli ili kupunguza makosa ya kimantiki.

Ubunifu kuu:

  • Kidhibiti cha kifurushi cha "mizigo" hutoa amri ya "ongeza", ambayo hukuruhusu kuongeza vitegemezi vipya kwenye faili ya maelezo ya Cargo.toml au kubadilisha vitegemezi vilivyopo kutoka kwa safu ya amri. Amri pia hukuruhusu kubainisha vipengele na matoleo mahususi, kwa mfano: shehena ongeza serde -vipengele hupata shehena ongeza nom@5.
  • Imeongeza uwezo wa kutumia "#[default(Default)]" na enum ambazo chaguo-msingi hufafanuliwa kwa kutumia sifa ya "#[chaguo-msingi]". #[derive(Default)] enum Labda { #[chaguo-msingi] Hakuna, Kitu(T), }
  • Kwenye jukwaa la Linux, utekelezaji thabiti zaidi na wa haraka zaidi wa utaratibu wa upatanishi wa Mutex hutumiwa, kulingana na matumizi ya futexes iliyotolewa na kernel ya Linux. Tofauti na utekelezaji uliotumika hapo awali kulingana na maktaba ya pthreads, toleo jipya linatumia baiti 5 pekee badala ya 40 kuhifadhi hali ya Mutex. Vile vile, mifumo ya kufunga ya Condvar na RwLock imehamishiwa kwa futex.
  • Kiwango cha pili cha usaidizi kwa jukwaa lengwa la x86_64-haijulikani-hakuna limetekelezwa, iliyoundwa ili kutoa faili zinazoweza kutekelezwa ambazo zinaweza kufanya kazi bila mfumo wa uendeshaji. Kwa mfano, jukwaa la lengo maalum linaweza kutumika wakati wa kuandika vipengele vya kernel. Ngazi ya pili ya usaidizi inahusisha dhamana ya mkutano.
  • Kiwango cha tatu cha usaidizi kimetekelezwa kwa majukwaa ya aarch64-pc-windows-gnullvm na x86_64-pc-windows-gnullvm. Kiwango cha tatu kinahusisha usaidizi wa kimsingi, lakini bila majaribio ya kiotomatiki, uchapishaji wa miundo rasmi, au kuangalia ikiwa msimbo unaweza kutengenezwa.
  • Sehemu mpya ya API imehamishwa hadi kwa kitengo cha uthabiti, ikijumuisha mbinu na utekelezaji wa sifa zimeimarishwa:
    • bool::basi_baadhi
    • f32::jumla_cmp
    • f64::jumla_cmp
    • Stdin:: mistari
    • windows::CommandExt::raw_arg
    • impl thamani chaguo-msingi ya AssertUnwindSafe
    • Kutoka > kwa Rc
    • Kutoka > kwa Arc<[u8]>
    • FusedIterator ya EncodeWide

    Chanzo: opennet.ru

Kuongeza maoni