Rust 1.52 Programazio Lengoaia kaleratzea

Mozilla proiektuak sortutako Rust 1.52 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:

  • "Cargo check" eta "Cargo Clippy" komandoen exekuzio-ordenari lotzea kendu zaio. Aurretik, " zama clippy " deitzeak " zama egiaztatzeko " ondoren ez zuen clippy erabilgarritasuna abiarazi (linter) egiaztapen modu hauetarako cachearen bereizketa falta zela eta. Orain arazo hau konpondu da eta "karga clippy" eta "karga check" deitzen diren ordenak ez du axola.
  • APIaren zati berri bat kategoria egonkorrera transferitu da, eta honako metodo hauek egonkortu dira:
    • Argudioak::as_str
    • char::MAX
    • char::REPLACEMENT_CHARACTER
    • char::UNICODE_VERSION
    • char::decode_utf16
    • char::from_digit
    • char::from_u32_unchecked
    • char::from_u32
    • slice::partizio_puntua
    • str::rsplit_once
    • str::split_behin
  • Metodoetan erabiltzen da "const" atributua, konstanteen ordez edozein testuingurutan erabiltzeko aukera zehazten duena:
    • char::len_utf8
    • char::len_utf16
    • char::to_ascii_maiuskulaz
    • char::to_ascii_minuskulaz
    • char::eq_ignore_ascii_case
    • u8::a_ascii_maiuskulak
    • u8::a_ascii_minuskulaz
    • u8::eq_ignore_ascii_case
  • Lint check unsafe_op_in_unsafe_fn gehitu da, funtzio ez-seguruetan erabiltzen den kode seguruak bloke ez-seguruek osatzen duten ala ez zehazteko.
  • Erakusle aldagarriak matrizeetara igortzea onartzen da array-elementu motaren erakusle moduan. utzi mut x: [erabili; 2] = [0, 0]; utzi p = &mut x gisa *mut use; utzi p = &mut x as *const use;
  • 9 txeke berri gehitu dira clippy-ra (linter).
  • Karga-paketeen kudeatzaileak "manifest_path" eremua onartzen du JSON-n paketeetarako. Lizentzien informazioa SPDX 3.11 formatuan zehazteko laguntza gehitu da crates.io biltegian.
  • Probak exekutatzen direnean iragazki anitz zehaztea onartzen da, adibidez "zama proba - foo barra" exekutatzen "foo" eta "bar" maskarekin bat datozen proba guztiak egingo dira.
  • LLVM tresna-kit lehenetsia LLVM 12ra eguneratu da.
  • Hirugarren laguntza-maila s390x-unknown-linux-musl, riscv32gc-unknown-linux-musl, riscv64gc-unknown-linux-musl eta powerpc-unknown-openbsd plataformetarako 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