Versió del llenguatge de programació Rust 1.55

S'ha publicat el llançament del llenguatge de programació del sistema Rust 1.55, fundat pel projecte Mozilla, però ara desenvolupat sota els auspicis de l'organització independent sense ànim de lucre Rust Foundation. El llenguatge se centra en la seguretat de la memòria, proporciona una gestió automàtica de la memòria i proporciona els mitjans per aconseguir un paral·lelisme de tasques elevat sense utilitzar un col·lector d'escombraries o temps d'execució (el temps d'execució es redueix a la inicialització i manteniment bàsics de la biblioteca estàndard).

La gestió automàtica de la memòria de Rust estalvia al desenvolupador d'errors en manipular punters i protegeix dels problemes que sorgeixen a causa de la manipulació de la memòria de baix nivell, com ara accedir a una àrea de memòria després d'haver estat alliberada, desreferenciar punters nuls, desbordaments de memòria intermèdia, etc. Per distribuir biblioteques, proporcionar compilacions i gestionar dependències, el projecte desenvolupa el gestor de paquets Cargo. El repositori crates.io és compatible per allotjar biblioteques.

Principals innovacions:

  • El gestor de paquets Cargo té la capacitat de combinar errors duplicats i advertències que es produeixen durant una compilació. Quan s'executen ordres com ara "prova de càrrega" i "comprovació de càrrega --all-targets" que donen lloc a múltiples compilacions d'un paquet amb diferents paràmetres, ara es mostra a l'usuari un resum de l'ocurrència d'un problema que es repeteix, en lloc de mostrar-se. múltiples advertències idèntiques quan es construeix el mateix fitxer repetidament. $ cargo +1.55.0 check —all-targets Comprovant foo v0.1.0 advertiment: la funció no s'utilitza mai: 'foo' —> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = nota: '#[warn(dead_code)]' activat per defecte: 'foo' (lib) ha generat 1 advertiment: 'foo' (prova de lib) ha generat 1 avís (1 duplicat) Desenvolupament acabat [no optimitzat + debuginfo] objectiu (s) en 0.84 s
  • El codi d'anàlisi de coma flotant de la biblioteca estàndard s'ha mogut per utilitzar l'algorisme Eisel-Lemire més ràpid i precís, que ha resolt alguns problemes observats anteriorment amb l'arrodoniment i l'anàlisi de nombres amb un nombre molt gran de dígits.
  • S'ha estabilitzat la capacitat d'especificar intervals no tancats a les plantilles ("X..." s'interpreta com un interval que comença amb el valor X i acaba amb el valor màxim del tipus d'enter): coincideix amb x com u32 { 0 => println! ("zero!"), 1.. => println! ("número positiu!"), }
  • Variants d'error ampliades cobertes per std::io::ErrorKind (classifica els errors en categories com NotFound i WouldBlock). Anteriorment, els errors que no encaixaven en les categories existents entraven a la categoria ErrorKind::Other, que també s'utilitzava per als errors en el codi de tercers. Ara hi ha una categoria interna d'ErrorKind::Uncategorized per als errors que no encaixen en les categories existents, i la categoria ErrorKind::Other es limita als errors que no es produeixen a la biblioteca estàndard (funcions de biblioteca estàndard que retornen io::Error). ja no utilitzeu la categoria ErrorKind:: Altres).
  • Una nova part de l'API s'ha mogut a la categoria d'estable, inclosos els mètodes i les implementacions de trets s'han estabilitzat:
    • Lligat::clonat
    • Desguàs::as_str
    • IntoInnerError::into_error
    • IntoInnerError::into_parts
    • PotserUninit::assume_init_mut
    • PotserUninit::assume_init_ref
    • PotserUninit::write
    • array::mapa
    • operacions::ControlFlow
    • x86::_bittest
    • x86::_bittestandcomplement
    • x86::_bittestandreset
    • x86::_bittestandset
    • x86_64::_bittest64
    • x86_64::_bittestandcomplement64
    • x86_64::_bittestandreset64
    • x86_64::_bittestandset64
  • L'atribut "const", que determina la possibilitat d'utilitzar-lo en qualsevol context en lloc de constants, s'utilitza en el mètode str::from_utf8_unchecked.
  • El tercer nivell de suport s'ha implementat per a la plataforma powerpc64le-unknown-freebsd. El tercer nivell inclou suport bàsic, però sense proves automatitzades, publicació de compilacions oficials i verificació de la capacitat de creació del codi.

Font: opennet.ru

Afegeix comentari