Rust 1.55 Programazio Lengoaia kaleratzea

Mozilla proiektuak sortutako Rust 1.55 sistemaren programazio-lengoaia argitaratu da, baina orain irabazi asmorik gabeko Rust Foundation erakunde independentearen babespean garatua. Lengoaiak memoriaren segurtasunean oinarritzen da, memoria automatikoki kudeatzea eskaintzen du eta zereginen paralelismo handia lortzeko bitartekoak eskaintzen ditu zabor-biltzaile edo exekuzio-denbora erabili gabe (exekuzio-denbora liburutegi estandarraren hasierako oinarrizko hasierara eta mantentzera murrizten da).

Rust-en memoria-kudeaketa automatikoak akatsak ezabatzen ditu erakusleak manipulatzean eta maila baxuko memoriaren manipulaziotik sortzen diren arazoetatik babesten du, hala nola, memoria-eskualde batera atzitzea askatu ondoren, erakusle nuluen deserreferentziak, buffer gainditzeak, etab. Liburutegiak banatzeko, muntaia ziurtatzeko eta mendekotasunak kudeatzeko, Cargo paketeen kudeatzailea garatzen ari da proiektua. crates.io biltegia liburutegiak ostatatzeko onartzen da.

Berrikuntza nagusiak:

  • Karga paketeen kudeatzaileak eraikuntza batean gertatzen diren errore eta abisu bikoiztuak batzeko gaitasuna du. Parametro desberdinak dituzten pakete baten hainbat eraikuntza sortzen dituzten "karga-proba" eta "karga-proba --all-targets" bezalako komandoak exekutatzen direnean, erabiltzaileari arazo errepikakor baten agerraldiaren laburpena erakusten zaio, erakutsi beharrean. abisu berdin anitz gauza bera behin eta berriz eraikitzean.fitxategia. $ cargo +1.55.0 check β€”all-targets foo v0.1.0 egiaztatzea abisua: funtzioa ez da inoiz erabiltzen: 'foo' β€”> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = oharra: '#[warn(dead_code)]' aktibatuta abisua lehenespenez: 'foo' (lib) abisu 1 sortu du abisu: 'foo' (lib test) abisu 1 sortu (bikoiztu 1) Dev [optimizatu gabe + debuginfo] xede amaituta (s) 0.84 segundotan
  • Liburutegi estandarreko koma mugikorreko analisi-kodea mugitu da Eisel-Lemire algoritmo azkarrago eta zehatzagoa erabiltzeko, eta horrek aldez aurretik ikusitako zenbait arazo konpondu ditu zifra-kopuru oso handiak dituzten zenbakiak biribiltzeko eta analizatzeko.
  • Txantiloietan itxi gabeko barrutiak zehazteko gaitasuna egonkortu da (β€œX..” X balioarekin hasi eta osoko motaren gehienezko balioarekin amaitzen den barruti gisa interpretatzen da): match x as u32 { 0 => println! ("zero!"), 1.. => println! ("zenbaki positiboa!"), }
  • Std::io::ErrorKind-ek estaltzen dituen errore-aldaera hedatuak (erroreak NotFound eta WouldBlock bezalako kategorietan sailkatzen ditu). Aurretik, lehendik zeuden kategorietan sartzen ez ziren erroreak ErrorKind::Other kategorian sartzen ziren, hirugarrenen kodean akatsetarako ere erabiltzen zena. Badago orain barne kategoria bereizi bat ErrorKind::Uncategorized lehendik dauden kategorietan sartzen ez diren akatsetarako, eta ErrorKind::Other kategoria liburutegi estandarrean gertatzen ez diren akatsetara mugatzen da (io::Error itzultzen duten liburutegiko funtzio estandarrak jada ez erabili ErrorKind:: kategoria Beste batzuk).
  • APIaren zati berri bat egonkorren kategoriara eraman da, eta ezaugarrien metodoak eta inplementazioak egonkortu dira:
    • Lotua::klonatua
    • Hustuketa::as_str
    • IntoInnerError::into_error
    • IntoInnerError::to_parts
    • AgianUninit::assume_init_mut
    • AgianUninit::assume_init_ref
    • AgianUninit::idatzi
    • array::mapa
    • ops::ControlFlow
    • x86::_bittest
    • x86::_bittestandcomplement
    • x86::_bittestandreset
    • x86::_bittestandset
    • x86_64::_bittest64
    • x86_64::_bittestandcomplement64
    • x86_64::_bittestandreset64
    • x86_64::_bittestandset64
  • "const" atributua, konstanteen ordez edozein testuingurutan erabiltzeko aukera zehazten duena, str::from_utf8_unchecked metodoan erabiltzen da.
  • Hirugarren laguntza-maila powerpc64le-unknown-freebsd plataformarako inplementatu da. Hirugarren mailak oinarrizko euskarria dakar, baina proba automatizatu gabe, eraikuntza ofizialak argitaratu edo kodea eraiki daitekeen egiaztatu gabe.

Iturria: opennet.ru

Gehitu iruzkin berria