Rhyddhawyd Rust 1.91

Mae iaith raglennu Rust 1.91, a sefydlwyd gan brosiect Mozilla ond a ddatblygwyd bellach dan nawdd Sefydliad Rust annibynnol di-elw, wedi'i rhyddhau. Mae'r iaith yn canolbwyntio ar ddiogelwch cof ac yn darparu offer ar gyfer cyflawni cyfochrogrwydd uchel o ran gweithredu tasgau, gan wneud heb ddefnyddio casglwr sbwriel ac amser rhedeg (mae'r amser rhedeg wedi'i leihau i gychwyn sylfaenol a chynnal a chadw'r llyfrgell safonol).

Mae dulliau trin cof Rust yn arbed y datblygwr rhag gwallau wrth drin awgrymiadau ac yn amddiffyn rhag problemau sy'n codi oherwydd trin cof lefel isel, megis cyrchu man cof ar Γ΄l iddo gael ei ryddhau, dadgyfeirio awgrymiadau nwl, gor-redeg byffer, ac ati. Er mwyn dosbarthu llyfrgelloedd, darparu adeiladu a rheoli dibyniaethau, mae'r prosiect yn datblygu rheolwr pecyn Cargo. Cefnogir ystorfa crates.io ar gyfer cynnal llyfrgelloedd.

Darperir diogelwch cof yn Rust ar amser casglu trwy wirio cyfeiriadau, cadw golwg ar berchnogaeth gwrthrychau, cadw golwg ar oes gwrthrychau (scopes), ac asesu cywirdeb mynediad cof wrth weithredu cod. Mae Rust hefyd yn darparu amddiffyniad rhag gorlifiadau cyfanrif, yn gofyn am ymgychwyn gorfodol o werthoedd amrywiol cyn ei ddefnyddio, yn trin gwallau yn well yn y llyfrgell safonol, yn cymhwyso'r cysyniad o gyfeiriadau a newidynnau digyfnewid yn ddiofyn, yn cynnig teipio statig cryf i leihau gwallau rhesymegol.

Prif arloesiadau:

  • Cefnogaeth well ar gyfer systemau ARM 64-bit gyda system weithredu WindowsMae'r platfform targed "aarch64-pc-windows-msvc" wedi'i uwchraddio o lefel cymorth 2 i lefel 1. Mae lefel cymorth 2 bellach ar gael ar gyfer y pensaernΓ―aethau aarch64-pc-windows-gnullvm a x86_64-pc-windows-gnullvm. Mae lefel cymorth 1 yn cynnwys adeiladwaith deuaidd, profion cynhwysfawr, a'r warant cymorth platfform uchafβ€”mae pob newid crynhoydd yn cael ei wirio trwy redeg y gyfres brawf lawn. Mae lefel cymorth 2 yn cynnwys adeiladwaith deuaidd a gwarant adeiladu, ond nid yw'n gwarantu pasio'r gyfres brawf. Mae lefel cymorth 3 yn cynnwys cymorth sylfaenol, ond nid yw'n cynnwys profion awtomataidd, adeiladwaith swyddogol, na gwirio adeiladwaith.
  • Ychwanegwyd y rhybudd lint "dangling_pointers_from_locals" i ganfod ffwythiannau sy'n dychwelyd pwyntyddion crai crog sy'n pwyntio at ddata sydd wedi'i storio mewn newidynnau lleol a ddiffinnir yn y ffwythiant a alwyd. Caiff newidynnau o'r fath eu dileu ar Γ΄l i'r ffwythiant ddychwelyd, ac mae'r pwyntyddion crai i'r data sy'n gysylltiedig Γ’'r newidynnau hyn yn dod yn hongian, h.y., yn pwyntio at gof wedi'i ryddhau. Mae dadgyfeirio pwyntydd o'r fath wedi hynny yn arwain at ymddygiad heb ei ddiffinio. fn f() -> *const u8 { let x = 0; &x // rhybudd: bydd pwyntydd crog yn cael ei gynhyrchu oherwydd bydd y newidyn lleol "x" yn cael ei ollwng }
  • Ychwanegwyd rhybudd lint "integer_to_ptr_transmutes" i roi gwybod am drosi cyfanrifau yn bwyntyddion gan ddefnyddio'r ffwythiant std::mem::transmute.
  • Mae rheolwr pecynnau Cargo wedi sefydlogi cefnogaeth ar gyfer y paramedr "build.build-dir", sy'n nodi'r cyfeiriadur ar gyfer storio arteffactau adeiladu dros dro a grΓ«wyd gan cargo a rustc yn ystod y broses adeiladu.
  • Mae cefnogaeth ar gyfer datgan ffwythiannau amrywiadol arddull C wedi'i sefydlogi ar gyfer yr ABIs sysv64, win64, efiapi, ac aapcs.
  • Cefnogaeth cydosodwr mewnol sefydlog ar gyfer pensaernΓ―aeth LoongArch32.
  • Mae cyfran newydd o'r API wedi'i symud i'r categori stabl, gan gynnwys dulliau a gweithrediad nodweddion wedi'u sefydlogi:
    • Llwybr::rhagddodiad_ffail
    • AtomicPtr::fetch_ptr_add
    • AtomicPtr::fetch_ptr_sub
    • AtomicPtr::fetch_byte_add
    • AtomicPtr::fetch_byte_sub
    • AtomicPtr::fetch_or
    • AtomicPtr::fetch_and
    • AtomicPtr::fetch_xor
    • {gyfanrif}::ychwanegu_strict
    • {cyfanrif}::strict_sub
    • {cyfanrif}::strict_mul
    • {cyfanrif}::div_strict
    • {cyfanrif}::strict_div_euclid
    • {gyfanrif}::strict_rem
    • {cyfanrif}::strict_rem_euclid
    • {gyfanrif}::strict_neg
    • {gyfanrif}::shl_strict
    • {gyfanrif}::strict_shr
    • {gyfanrif}::strict_pow
    • i{N}::strict_add_unsigned
    • i{N}::strict_sub_unsigned
    • i{N}::strict_abs
    • u{N}::strict_ychwanegu_wedi'i lofnodi
    • u{N}::strict_is_signed
    • GwybodaethBachynPanig::llwyth_fel_str
    • craidd::iter::cadwyn
    • u{N}::gwiriwyd_wedi_llofnodi_diff
    • craidd::array::ailadrodd
    • PathBuf::ychwanegu_estynniad
    • PathBuf::gyda_estynniad_ychwanegol
    • Hyd::o_munud
    • Hyd::o_awr
    • Hafaliad Rhannol impl ar gyfer PathBuf
    • Hafaliad Rhannol impl ar gyfer PathBuf
    • Hafaliad Rhannol impl ar gyfer Llwybr
    • Hafaliad Rhannol impl ar gyfer Llwybr
    • Hafaliad Rhannol impl ar gyfer Llinyn
    • Hafaliad Rhannol impl ar gyfer Llinyn
    • Hafaliad Rhannol impl ar gyfer str
    • Hafaliad Rhannol impl ar gyfer str
    • Ipv4Addr::from_octets
    • Ipv6Addr::from_octets
    • Cyfeiriad_ipv6::o_segmentau
    • impl Diofyn ar gyfer PIN > ble Blwch : Diofyn, T: Maint ?
    • impl Diofyn ar gyfer PIN > lle Rc : Diofyn, T: Maint ?
    • impl Diofyn ar gyfer PIN > lle mae Arc : Diofyn, T: Maint ?
    • Cell::fel_arae_o_gelloedd
    • u{N}::cario_ychwanegu
    • u{N}::benthyca_is-benthyca
    • u{N}::cario_mul
    • u{N}::cario_mul_ychwanegu
    • BTreeMap::extract_if
    • BTreeSet::extract_if
    • Dadfygio impl ar gyfer windows::ffi::EncodeWide<'_>
    • str::neiliau_char_ffin
    • str::floor_char_ffin
    • Swm impl ar gyfer Dirlawn
    • impl Sum<&Hunan> ar gyfer Dirlawn
    • Cynnyrch impl ar gyfer Dirlawn
    • Cynnyrch impl<&Hunan> ar gyfer Dirlawniad
  • Defnyddir yr arwydd β€œconst” mewn swyddogaethau:
    • <[T; N]>::pob_cyf
    • <[T; N]>::pob_mut
    • OsString::newydd
    • PathBuf::new
    • MathID::o
    • ptr::gyda_tharddiad_datgeledig
    • ptr::gyda_mut_tarddiad_datgeledig
  • Mae'r crynhoydd wedi'i ddiweddaru i'r gangen LLVM 21.

Ffynhonnell: opennet.ru

Prynu gwesteio dibynadwy ar gyfer gwefannau sydd Γ’ diogelwch DDoS, gweinyddwyr VPS VDS πŸ”₯ Prynu cynnal gwefannau dibynadwy gyda diogelwch DDoS, gweinyddion VPS VDS | ProHoster