Rust 1.67 Rhyddhau Iaith Rhaglennu

Mae rhyddhau iaith raglennu pwrpas cyffredinol Rust 1.67, a sefydlwyd gan brosiect Mozilla, ond sydd bellach wedi'i datblygu dan nawdd y sefydliad dielw annibynnol Rust Foundation, wedi'i gyhoeddi. Mae'r iaith yn canolbwyntio ar ddiogelwch cof ac yn darparu'r modd i gyflawni gwaith tebyg iawn tra'n osgoi defnyddio casglwr sbwriel ac amser rhedeg (mae amser rhedeg yn cael ei leihau i gychwyn a chynnal a chadw sylfaenol y 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:

  • Ar gyfer swyddogaethau async gyda Dyfodol ::Allbwn, mae bellach yn bosibl nodi "#[must_use]" anodiadau sy'n cynnwys rhybudd os anwybyddir y gwerth dychwelyd, sy'n helpu i adnabod gwallau a achosir gan y rhagdybiaeth y bydd y ffwythiant yn newid y gwerthoedd yn hytrach na dychwelyd gwerth newydd. #[must_use] async fn bar() -> u32 { 0 } async fn galwr() { bar(). } rhybudd: allbwn dyfodol heb ei ddefnyddio a ddychwelwyd gan `bar` y mae'n rhaid ei ddefnyddio β€”> src/lib.rs:5:5 | 5 | bar().aros; | ^^^^^^^^^^^| = nodyn: `#[warn(unused_must_use)]` ymlaen yn ddiofyn
  • Mae gweithredu ciwiau FIFO std ::sync ::mpsc (defnyddiwr sengl aml-gynhyrchydd) wedi'i ddiweddaru, sydd wedi'i newid i ddefnyddio'r modiwl sianel trawsbeam wrth gynnal yr API blaenorol. Mae'r gweithrediad newydd yn cael ei wahaniaethu trwy ddatrys nifer o broblemau, perfformiad uwch a chynnal a chadw cod symlach.
  • Mae cyfran newydd o'r API wedi'i symud i'r categori stabl, gan gynnwys dulliau a gweithrediad nodweddion wedi'u sefydlogi:
    • {cyfanrif} :: checked_ilog
    • {cyfanrif}::gwiriwyd_ilog2
    • {cyfanrif}::gwiriwyd_ilog10
    • {cyfanrif}::ilog
    • {cyfanrif} ::ilog2
    • {cyfanrif} ::ilog10
    • NonZeroU*::ilog2
    • NonZeroU*::ilog10
    • NonZero*::BITS
  • Defnyddir y nodwedd β€œconst”, sy'n pennu'r posibilrwydd o'i ddefnyddio mewn unrhyw gyd-destun yn lle cysonion, yn y swyddogaethau:
    • torgoch:: o_u32
    • torgoch:: o_digid
    • torgoch::i_digid
    • craidd::char::from_u32
    • craidd:: torgoch::from_digit
  • Mae trydydd lefel o gefnogaeth wedi'i rhoi ar waith ar gyfer defnyddio Rust yn y cnewyllyn Linux (linuxkernel), yn ogystal ag ar gyfer y Sony PlayStation 1 (mipsel-sony-psx), PowerPC ag AIX (powerpc64-ibm-aix), QNX Neutrino RTOS ( aarch64-unknown-nto-) llwyfannau qnx710, x86_64-pc-nto-qnx710). Mae'r drydedd lefel yn cynnwys cefnogaeth sylfaenol, ond heb brofi awtomataidd, cyhoeddi adeiladau swyddogol, na gwirio a ellir adeiladu'r cod.

Yn ogystal, gallwn nodi bod ARM wedi cyhoeddi clytiau sy'n caniatΓ‘u defnyddio'r iaith Rust i ddatblygu gyrwyr a modiwlau cnewyllyn Linux wedi'u cydosod ar gyfer systemau sy'n seiliedig ar bensaernΓ―aeth AArch64.

Ffynhonnell: opennet.ru

Ychwanegu sylw