Rust 1.53 Yaburitswa. Google ichabatsira Rust Core Support Linux

Kuburitswa kweiyo system programming mutauro Rust 1.53, yakavambwa neMozilla purojekiti, asi iko zvino yakagadziridzwa pasi pekutsigirwa kwesangano rakazvimirira rerust Foundation, raburitswa. Mutauro unotarisana nekuchengetedza ndangariro, unopa otomatiki ndangariro manejimendi, uye inopa nzira dzekuwana yakakwira basa parallelism pasina kushandisa muunganidzi wemarara kana nguva yekumhanya (nguva yekumhanya inoderedzwa kuita yekutanga yekutanga uye kugadzirisa raibhurari yakajairwa).

Rust's otomatiki ndangariro manejimendi inobvisa zvikanganiso kana ichishandisa anongedza uye inodzivirira kubva kune yakaderera-level memory manipulation, sekuwana nzvimbo yekurangarira mushure mekunge yasunungurwa, null pointer dereferences, buffer overruns, nezvimwe. Kugovera maraibhurari, kuve nechokwadi kuungana uye kugadzirisa zvinotsamira, chirongwa ichi chiri kugadzira Cargo package maneja. Iyo crates.io repository inotsigirwa kuitisa maraibhurari.

Zvitsva zvikuru:

  • Kune arrays, iyo IntoIterator mhando inoshandiswa, iyo inokutendera iwe kuronga kudzokororwa kwezvinhu zvakarongwa nemaitiro: nekuti i mu [1, 2, 3] {.. }

    Izvo zvakare zvinokwanisika kupfuudza arrays kune nzira dzinogamuchira iterators, semuenzaniso: let set = BtreeSet ::from_iter ([1, 2, 3]); ye(a, b) in some_iterator.chain([1]).zip([1, 2, 3]) { .. }

    Kare, IntoIterator yaishandiswa chete pamareferensi akatevedzana, zvichireva kuti kudzokorodza kukosha kunodiwa uchishandisa mareferensi ("&[1, 2, 3]") kana "[1, 2, 3].iter()". Kuitwa kweIntoIterator kune arrays kwakakanganiswa nenyaya dzekuenderana dzakakonzerwa neshanduko yekutanga yemubatanidzwa we array.into_iter() nzira kuenda ku (&array).into_iter(). Nyaya idzi dzakagadziriswa nekugadzirisa: mugadziri acharamba achishandura array.into_iter() ku (&array) .into_iter() sekunge IntoIterator trait yekushandiswa yakanga isipo, asi chete pakudana nzira uchishandisa ".into_iter ()" syntax uye kusateerera kufona kwechimiro "mu [1, 2, 3, 1]", [iter. "IntoIterator:: into_iter([2, 3, 1])".

  • Zvave kugoneka kudoma mataurirwo ekuti "|" (zvinonzwisisika OR kushanda) mune chero chikamu chetemplate, semuenzaniso, pachinzvimbo che "Vamwe(1) | Vamwe(2)" unogona ikozvino kunyora "Vamwe(1 | 2)": match result {Ok(Some(1 | 2)) => { .. } Err(MyError { kind: FileNotFound | Mvumo Yaramba, .. . . . } =} =>
  • Mavara asiri-ASCII anotenderwa muzviziviso, kusanganisira chero mavara enyika anotsanangurwa muUnicode UAX 31 kutsanangurwa, asi kwete emoji mavara. Iyo compiler ichapa yambiro kana mavara akasiyana asi akafanana akashandiswa. const BLÅHAJ: &str = «🦈»; struct 人 { 名字: Tambo, } regai α = 1; regai sos = 2; yambiro: identifier pair inoonekwa seinovhiringa pakati pe's' ne's'
  • Chikamu chitsva che APIs chakaendeswa kune yakagadzikana chikamu, kusanganisira zvinotevera zvakadzikamiswa:
    • array::kubva_ref
    • array::kubva_mut
    • AtomicBool ::fetch_update
    • AtomicPtr::fetch_update
    • BtreeSet ::chengeta
    • BtreeMap::chengeta
    • BufReader::tsvaga_hama
    • cmp::min_by
    • cmp::min_by_kiyi
    • cmp::max_by
    • cmp::max_by_kiyi
    • DebugStruct ::finish_non_exhaustive
    • Nguva::ZERO
    • Nguva::MAX
    • Nguva::is_zero
    • Nguva::kugutsa_kuwedzera
    • Nguva::saturating_sub
    • Nguva::saturating_mul
    • f32::is_subnormal
    • f64::is_subnormal
    • IntoIterator kune arrays
    • {integer}::BITS
    • io::Error::Haisi kutsigirwa
    • NonZero*::leding_zero
    • NonZero*::trailing_zero
    • Sarudzo::pinza
    • Kuronga::is_eq
    • Kuraira ::haisi_kwete
    • Kuraira::is_lt
    • Kuhodha::is_gt
    • Kuraira::is_le
    • Kuhodha::is_ge
    • OsStr::make_ascii_lowercase
    • OsStr ::make_ascii_uppercase
    • OsStr::ku_ascii_lowercase
    • OsStr::to_ascii_uppercase
    • OsStr::is_ascii
    • OsStr::eq_ignore_ascii_case
    • Peekable::peek_mut
    • Rc::increment_strong_count
    • Rc::decrement_strong_count
    • slice::IterMut::as_slice
    • AsRef<[T]> yechidimbu ::IterMut
    • impl SliceIndex ye (Bound , Yakasungwa )
    • Vec::wedzera_kubva_mukati
  • Yechitatu nhanho yerutsigiro yewam64-isingazivikanwe-isingazivikanwe chikuva chaitwa. Chikamu chechitatu chinoreva rutsigiro rwekutanga, asi pasina otomatiki kuyedzwa, kushambadza magungano ehurumende, uye kutarisa kugona kuvaka kodhi.
  • Iyo Cargo package maneja yakachinjirwa kushandisa zita rekuti "main" yebazi guru reGit repository (HEAD) nekusarudzika. Dependencies inogarwa mumarepositories yakanzi main pachinzvimbo che master haichadi bazi = "main" muzvirongwa zvavo.
  • Mune iyo compiler, izvo zvinodikanwa zveiyo shoma vhezheni yeLLVM zvinosimudzwa kuLLVM 10.

Дополнительно можно отметить предоставление финансирования работы по развитию интеграции в ядро Linux средств для разработки компонентов на языке Rust. Работа будет вестись в рамках проекта Prossimo под эгидой организации ISRG (Internet Security Research Group), которая является учредителем проекта Let’s Encrypt и способствует продвижению HTTPS и развитию технологий для повышения защищённости интернета. Средства будут предоставлены компанией Google, которая оплатит работу Мигеля Охеда (Miguel Ojeda), автора проекта Rust-for-Linux. Ранее ISRG и Google уже профинансировали создание альтернативного HTTP-бэкенда для утилиты curl и разработку нового TLS-модуля для http-сервера Apache.

Sekureva kweMicrosoft neGoogle, ingangoita makumi manomwe muzana ekusagadzikana kunokonzerwa nekusachengeteka kubata ndangariro. Zvinofungidzirwa kuti kushandisa Rust mutauro kugadzira kernel zvikamu, senge madhiraivha emidziyo, kunoderedza njodzi yekusagadzikana kunokonzerwa nekusachengeteka kwekubata ndangariro uye kubvisa zvikanganiso sekuwana nzvimbo yekurangarira mushure mekunge yasunungurwa uye kuenda mhiri kwebhafa miganhu.

Memory-yakachengeteka kubata inopihwa muRust panguva yekuunganidza kuburikidza nekutarisa referensi, kuchengeta track yemuridzi wechinhu uye chinhu hupenyu hwese (chiyero), pamwe nekuongororwa kwekururama kwekuyeuka kwekuwana panguva yekodhi kodhi. Ngura inopawo dziviriro kubva pahuwandu hwekufashukira, inoda kusungirirwa kwekutanga kwemhando dzakasiyana usati washandiswa, inobata zvikanganiso zviri nani muraibhurari yakajairwa, inoshandisa iyo pfungwa yezvisingachinjiki mareferensi uye zvinosiyana nekusarudzika, inopa yakasimba static typing kuderedza zvikanganiso zvine musoro.

Source: opennet.ru

Tenga inovimbika yekutambira kwemasaiti ane DDoS dziviriro, VPS VDS maseva 🔥 Tenga webhusaiti yakavimbika ine dziviriro yeDDoS, maseva eVPS VDS | ProHoster