Rust 1.38 scaoileadh teanga cláir

foilsithe scaoileadh teanga ríomhchláraithe an chórais Meirge 1.38, a bhunaigh an tionscadal Mozilla. Díríonn an teanga ar shábháilteacht chuimhne, soláthraíonn bainistíocht cuimhne uathoibríoch, agus cuireann sé bealach ar fáil chun comhthreomhaireacht ard-tasc a bhaint amach gan bailitheoir truflais nó am rite a úsáid.

Déanann bainistíocht cuimhne uathoibríoch Rust an forbróir a shaoradh ó ionramháil pointeora agus cosnaíonn sé i gcoinne fadhbanna a eascraíonn as ionramháil cuimhne ísealleibhéil, amhail rochtain saor ó chuimhne iar-saor in aisce, dereferences pointeoir nialasach, róchaiteachas maoláin, agus a leithéidí. Tá bainisteoir pacáiste á fhorbairt chun leabharlanna a dháileadh, tionól a chinntiú agus spleáchais an tionscadail a bhainistiú. Cargo, rud a ligeann duit na leabharlanna atá ag teastáil don chlár a fháil i gcliceáil amháin. Tacaítear le stór chun leabharlanna a óstáil cliathbhoscaí.io.

An príomh- nuálaíochtaí:

  • Cuireadh modh tiomsaithe píblíne leis (píblíneáilte), ina gcuirtear tús le tógáil pacáiste cliathbhosca cleithiúnach a luaithe a bhíonn na meiteashonraí spleáchais ar fáil, gan fanacht lena dtiomsú a chur i gcrích. Agus pacáiste á thiomsú agat, ní gá duit na spleáchais go léir a bheith curtha le chéile agat; Cuirtear meiteashonraí ar fáil go luath sa phróiseas tiomsaithe, mar sin is féidir pacáistí nasctha a thiomsú i bhfad níos luaithe anois. Nuair a bhíonn pacáistí aonair á dtógáil, ní dhéanann an modh molta difear don fheidhmíocht, ach má chlúdaíonn an tógáil pacáistí le spleáchais brainseach, is féidir an t-am tógála iomlán a laghdú 10-20%;
  • Cinntíonn sé úsáid mhícheart feidhmeanna a bhrath std::mem::unitialized и std::mem::nialas. Mar shampla, tá std::mem::uninitialized áisiúil chun eagair a chruthú go tapa, ach cuireann sé an tiomsaitheoir amú toisc go ndealraíonn sé go bhfuil sé tosaithe, ach i ndáiríre tá an luach gan bhunús. Tá an mem::feidhm uninitialized marcáilte cheana féin mar fheidhm atá i léig agus moltar cineál idirmheánach a úsáid ina ionad B'fhéidirAonad. Maidir le mem::nialas, féadann an fheidhm seo fadhbanna a chruthú le cineálacha nach bhfuil in ann glacadh le luachanna nialasacha.

    Chun cabhrú le hiompar neamhshainithe a aithint, cuireann an scaoileadh nua seiceáil lint leis an tiomsaitheoir a aimsíonn roinnt fadhbanna le mem::uninitialized nó mem::zeroed. Mar shampla, faigheann tú earráid anois agus tú ag iarraidh mem a úsáid::uninitialized or mem::zeroed le cineálacha &T agus Box‹T›, a sheasann do réada pointeora nach bhfuil in ann glacadh le luachanna null;

  • Leathnaíodh an aitreabúid “#[deprecated]” chun gur féidir pacáistí cliathbhoscaí a mharcáil imithe i léig agus a sceidealú lena scriosadh amach anseo. Amhail meirge 1.38, is féidir an tréith seo a úsáid freisin le haghaidh macraí;
  • Cuireadh leis an gcumas an tréith “#[global_allocator]” a úsáid i bhfo-mhodúil;
  • Feidhm curtha leis std::aon::type_name, a ligeann duit ainm an chineáil a fháil amach, is féidir a bheith úsáideach chun críocha debugging. Mar shampla, le linn cur i gcrích an chláir is féidir leat a fháil amach cén cineál ar a dtugtar an fheidhm:

    fn gen_value‹T: Réamhshocrú>() -› T {
    println!("Ásc de {} a thionscnamh", std::any ::type_name::‹T›());
    Réamhshocrú::default()
    }

    fn príomh() {
    lig _: i32 = gen_value(); Priontálfar # "i32".
    lig _: Teaghrán = gen_value(); Priontálfaidh # "alloc::string ::String"
    }

  • Feidhmeanna leathnaithe na gnáthleabharlainne:
    • slice:: Is féidir le {concat, connect, join} an luach &[T] a ghlacadh anois chomh maith le &T;
    • Cuir "*const T" agus "*mut T" i bhfeidhm anois marcáil::Unpin;
    • Cuireann “Arc‹[T]›” agus “Rc‹[T]›” FromIterator‹T› i bhfeidhm anois;
    • iter::{Stepby, Peekable, Take} cuir DoubleEndedIterator i bhfeidhm anois.
    • ascii::Cuireann EscapeDefault Clón agus Taispeáin i bhfeidhm.
  • Aistríodh cuid nua de APInna chuig an gcatagóir chobhsaí, lena n-áirítear modhanna atá cobhsaithe
    • ‹*const T › ::cast, ‹ *mut T › ::cast,
    • Fad:: as_secs_f{32|64},
    • Fad:: div_duration_f{32|64},
    • Fad:: div_f{32|64},
    • Fad:: ó_secs_f{32|64},
    • Fad::mul_f{32|64},
    • oibríochtaí rannáin leis an gcuid eile
      div_euclid agus rem_euclid do gach primitives slánuimhir;

  • Tacaíocht bhreise chun an rogha “--features” a shonrú go minic chun gnéithe éagsúla a chumasú sa bhainisteoir pacáiste lasta;
  • Soláthraíonn an tiomsaitheoir an tríú cuid leibhéal tacaíocht d'ardáin sprice aarch64-uwp-windows-msvc, i686-uwp-windows-gnu, i686-uwp-windows-msvc, x86_64-uwp-windows-gnu, x86_64-uwp-windows-msvc spriocanna, armv7-unknown-linux -gnueabi, armv7-anaithnid-linux-musleabi, heicseagán-anaithnid-linux-musl agus riscv32i-anaithnid-none-elf. Tá tacaíocht bhunúsach i gceist leis an tríú leibhéal, ach gan tástáil uathoibrithe agus foilsiú na tógála oifigiúla.

Foinse: oscailtenet.ru

Add a comment