Rust 1.35 Rhyddhau Iaith Rhaglennu

cymryd lle rhyddhau iaith rhaglennu system Rhwd 1.35, a ddatblygwyd gan brosiect Mozilla. Mae'r iaith yn canolbwyntio ar ddiogelwch cof, yn darparu rheolaeth cof awtomatig, ac yn darparu modd i gyflawni tasgau tebyg iawn heb ddefnyddio casglwr sbwriel neu amser rhedeg.

Mae rheolaeth cof awtomatig Rust yn rhyddhau'r datblygwr rhag trin pwyntydd ac yn amddiffyn rhag problemau sy'n deillio o drin cof lefel isel, megis mynediad cof ôl-rhad ac am ddim, cyfeiriadau pwyntydd nwl, gor-redeg byffer, ac ati. Mae rheolwr pecyn yn cael ei ddatblygu i ddosbarthu llyfrgelloedd, sicrhau cydosod a rheoli dibyniaethau gan y prosiect. Tâl, sy'n eich galluogi i gael y llyfrgelloedd sydd eu hangen ar gyfer y rhaglen mewn un clic. Cefnogir ystorfa i gynnal llyfrgelloedd cewyll.io.

Y prif arloesiadau:

  • Nodweddion FnUnwaith, FnMut и Fn gweithredu ar gyfer domen-dyranedig mathau mewn bocsys Box‹dyn FnOnce›, Box‹dyn FnMut› a Box‹dyn Fn›;
  • Wedi adio cyfle cau cau i awgrymiadau swyddogaeth anniogel (fn anniogel);
  • Wedi gweithredu'r gallu i alw'r macro yn “dbg!” heb ddadleuon dros arddangos enw'r ffeil a rhif y llinell yn stderr heb archwilio'r newidyn, sy'n gyfleus ar gyfer dadfygio gweithrediad ymadroddion amodol;
  • Ychwanegwyd dull " at fathau pwynt arnawf f32 a f64arwyddlun» copïo nod o un rhif i rif arall;
  • Wedi ychwanegu dull "yn cynnwys“, sy'n eich galluogi i wirio a yw'r gwerth penodedig o fewn yr ystod;
  • Ychwanegwyd dull Cyf:Cell:map_rhaniad, sy'n eich galluogi i adlewyrchu a gwahanu'r gwerth RefCell a fenthycwyd ar gyfer gwahanol gydrannau'r data a fenthycwyd;
  • Ychwanegwyd dull CyfCell:: disodli_gyda i ddisodli'r gwerth RefCell cyfredol a dychwelyd yr hen werth fel canlyniad;
  • Ychwanegwyd dull ptr::hash stwnsio pwyntydd neu gyfeirnod yn ôl cyfeiriad yn hytrach na'r gwerth wedi'i gyfeirio;
  • Ychwanegwyd dull Opsiwn:: wedi'i gopïo i gopïo cynnwys yr opsiynau Opsiwn‹&T› neu Option‹&mut T›;
  • Mae cyfran newydd o APIs wedi'i drosglwyddo i'r categori sefydlog, gan gynnwys dulliau sydd wedi'u sefydlogi
    f32::copi,
    f64::copi,
    CyfCell:: disodli_â,
    CyfCell::rhaniad_map,
    ptr::hash,
    Ystod::yn cynnwys,
    Ystod O::yn cynnwys,
    Ystod I:: yn cynnwys,
    RangeInclusive :: yn cynnwys,
    RangeToInclusive::yn cynnwys a
    Opsiwn::copïo;

  • Ychwanegwyd siec drop_bounds i clippy (linter), sy'n cael ei sbarduno wrth ychwanegu rhwymiad “T: Drop” i'r swyddogaeth;
  • Mae'r casglwr wedi ychwanegu cefnogaeth ar gyfer platfform targed newydd
    wasm32-unknown-wasi (rhyngwyneb Wasi i ddefnyddio WebAssembly y tu allan i'r porwr);

  • Mae'r pecyn cymorth Rust wedi'i addasu ar gyfer dosraniadau yn seiliedig ar y Musl llyfrgell C safonol.

Ffynhonnell: opennet.ru

Ychwanegu sylw