Linguaxe de programación Rust versión 1.69

Publicouse o lanzamento da linguaxe de programación de propósito xeral Rust 1.69, fundada polo proxecto Mozilla, pero agora desenvolvida baixo os auspicios da organización independente sen ánimo de lucro Rust Foundation. A linguaxe céntrase na seguridade da memoria e proporciona os medios para conseguir un alto paralelismo de traballos evitando o uso dun colector de lixo e o tempo de execución (o tempo de execución redúcese á inicialización básica e ao mantemento da biblioteca estándar).

Os métodos de manexo da memoria de Rust salvan ao desenvolvedor de erros ao manipular os punteiros e protexen contra os problemas que xurdan debido ao manexo de memoria de baixo nivel, como acceder a unha área de memoria despois de liberarse, desreferenciar punteiros nulos, exceder o búfer, etc. Para distribuír bibliotecas, proporcionar compilacións e xestionar dependencias, o proxecto desenvolve o xestor de paquetes Cargo. O repositorio crates.io é compatible para hospedar bibliotecas.

A seguridade da memoria ofrécese en Rust no momento da compilación mediante a comprobación de referencias, o seguimento da propiedade do obxecto, o seguimento da vida útil dos obxectos (ámbitos) e a avaliación da corrección do acceso á memoria durante a execución do código. Rust tamén ofrece protección contra desbordamentos de enteiros, require a inicialización obrigatoria dos valores variables antes do seu uso, manexa mellor os erros na biblioteca estándar, aplica o concepto de referencias e variables inmutables por defecto, ofrece unha forte escritura estática para minimizar os erros lóxicos.

Principais novidades:

  • O xestor de paquetes Cargo implementa a detección de avisos que se poden resolver automaticamente e as recomendacións adecuadas para executar "cargo fix" ou "cargo clippy --fix". aviso: importación non utilizada: 'std::hash::Hash' --> src/main.rs:1:5 | 1 | use std::hash::hash; | ^^^^^^^^^^^^^^^^^ | = nota: '#[warn(unused_imports)]' activado por defecto aviso: 'foo' (bin "foo") xerou 1 aviso (executa "cargo fix --bin "foo"' para aplicar 1 suxestión)
  • Engadiuse Cargo para mostrar unha recomendación para usar o comando "cargo add" cando se tenta instalar unha biblioteca co comando "cargo install".
  • Para reducir o tempo de compilación, a información de depuración nos scripts de compilación desactivouse de forma predeterminada. Se os scripts de compilación se executan correctamente, o cambio non fará ningunha diferenza visible, pero se falla, o volcado de traza inversa conterá menos información. Para devolver o comportamento antigo a Cargo.toml, engade: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
  • Unha nova parte da API trasladouse á categoría de estable, incluíndo os métodos e implementacións de trazos estabilizados:
    • CStr::from_bytes_until_nul
    • core::ffi::FromBytesUntilNulError
  • O atributo "const", que determina a posibilidade de usalo en calquera contexto en lugar de constantes, úsase nas funcións:
    • SocketAddr::novo
    • SocketAddr::ip
    • SocketAddr::port
    • SocketAddr::is_ipv4
    • SocketAddr::is_ipv6
    • SocketAddrV4::novo
    • SocketAddrV4::ip
    • SocketAddrV4::porto
    • SocketAddrV6::novo
    • SocketAddrV6::ip
    • SocketAddrV6::porto
    • SocketAddrV6::flowinfo
    • SocketAddrV6::scope_id
  • Engadida a posibilidade de usar marcas verdadeiras e falsas nos argumentos do compilador.

Fonte: opennet.ru

Engadir un comentario