Versió del llenguatge de programació Rust 1.63

S'ha publicat el llançament del llenguatge de programació de propòsit general Rust 1.63, 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 i proporciona els mitjans per aconseguir un alt paral·lelisme de treballs evitant l'ús d'un col·lector d'escombraries i el temps d'execució (el temps d'execució es redueix a la inicialització bàsica i al manteniment de la biblioteca estàndard).

Els mètodes de gestió de memòria de Rust estalvien al desenvolupador d'errors en manipular els punters i protegeixen dels problemes que sorgeixen a causa del maneig de la memòria de baix nivell, com ara accedir a una àrea de memòria després d'haver-se alliberat, 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.

La seguretat de la memòria es proporciona a Rust en temps de compilació mitjançant la comprovació de referències, el seguiment de la propietat de l'objecte, el seguiment de la vida útil dels objectes (àmbits) i l'avaluació de la correcció de l'accés a la memòria durant l'execució del codi. Rust també proporciona protecció contra desbordaments d'enters, requereix la inicialització obligatòria dels valors de les variables abans de l'ús, gestiona millor els errors a la biblioteca estàndard, aplica el concepte de referències i variables immutables per defecte, ofereix una escriptura estàtica forta per minimitzar els errors lògics.

Principals innovacions:

  • S'ha afegit l'API std::thread::scope, que us permet crear fils amb àmbit. A diferència dels fils disponibles anteriorment, la nova API std::thread::scope permet passar dades no estàtiques en préstec, mentre que els fils creats amb la clàssica API std::thread::spawn eren els propietaris de tots els arguments passats i no podien rebre variables prestades. L'API std::thread::scope assegura que tots els fils generats s'acaben abans de retornar les dades, proporcionant una seguretat adequada per al mecanisme de préstec.
  • S'han proposat nous tipus d'embolcall per als descriptors de fitxers: BorrowedFd i OwnedFd, que proporcionen préstec i propietat. Els tipus estan marcats amb "#[repr(transparent)]", cosa que permet utilitzar-los directament en enllaços C externs d'una manera conscient de la propietat.
  • Proporciona la possibilitat de trucar a Condvar::new, Mutex::new i RwLock::new en el context de constants per crear valors globals de Mutex, RwLock i Condvar sense utilitzar paquets lazy_static.
  • Per a funcions com fn foo (valor: T, f: impl Copy) es permet una sintaxi com "foo::". (32, 3)”, indicant explícitament el tipus de genèric.
  • S'ha completat la transició a l'ús de la tècnica NLL (Non-Lexical Lifetimes) per identificar problemes amb variables de préstec. NLL té en compte a nivell d'un conjunt de punters en el gràfic de flux d'execució, que permet augmentar la qualitat de la comprovació de les variables de préstec (corrector de préstec) i permetre l'execució d'alguns tipus de codi correcte, l'ús de que anteriorment va provocar un error. El suport per a l'antic mecanisme que utilitzava l'enllaç de per vida a nivell lèxic s'ha eliminat completament de rustc, i l'ús de la nova NLL s'ha implementat a tot arreu.
  • 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:
    • array::de_fn
    • Box::into_pin
    • BinaryHeap::try_reserve
    • BinaryHeap::try_reserve_exact
    • OsString::try_reserve
    • OsString::try_reserve_exact
    • PathBuf::try_reserve
    • PathBuf::try_reserve_exact
    • Camí::try_exists
    • Ref::filter_map
    • RefMut::filter_map
    • NonNull::<[T]>::len
    • ToOwned::clone_into
    • Ipv6Addr::to_ipv4_mapped
    • unix::io::AsFd
    • unix::io::BorrowedFd<'fd>
    • unix::io::OwnedFd
    • windows::io::AsHandle
    • windows::io::BorrowedHandle

      Font: opennet.ru
Compreu allotjament fiable per a llocs amb protecció DDoS, servidors VPS VDS 🔥 Compra allotjament web fiable amb protecció DDoS, servidors VPS VDS | ProHoster