Rust 1.71 lançado com melhorias de estabilização, e muito mais

E foi lançada a Rust 1.71 com melhorias de estabilização, e muito mais. Confira as novidades e veja como instalar no Linux.

Rust é uma linguagem de programação multiprocessal compilada, de propósito geral, que está sendo desenvolvida pela Mozilla e apoiada pela LLVM.

Rust se concentra na segurança da memória e fornece os meios para alcançar alto paralelismo de trabalho, evitando o uso de coletor de lixo e tempo de execução (o tempo de execução é reduzido à inicialização básica e à manutenção padrão da biblioteca).

Esta linguagem foi concebida para ser “uma linguagem segura, concorrente e prática” e, acima de tudo, para substituir as linguagens C e C++.

A sintaxe de Rust é semelhante à de C e C++, com blocos de código delimitados por chaves e estruturas de controle de fluxo, como if, else, do, while e for.

Rust é uma linguagem de programação de código aberto que suporta programação funcional pura, processual, imperativa e orientada a objetos.

Essa linguagem de programação funciona de maneira extremamente rápida, evita os segfaults (falhas de segmentação) e garante a segurança dos subprocessos (threads).

Ela suporta abstrações de custo zero, semântica de movimento, segurança de memória garantida, encadeamentos genéricos baseados em recursos e não baseados em dados e correspondência de padrões, e também suporta inferência de tipos, tempo mínimo de execução, bem como links C eficientes.

Rust pode ser executado em um grande número de plataformas e está sendo usado na produção de empresas/organizações, como Dropbox, CoreOS, NGP e muitos mais.

O objetivo do Rust é ser uma boa linguagem para a criação de grandes programas no lado do cliente e do servidor que são executados na Internet.

Isso levou a um conjunto de recursos com ênfase em segurança, controle de distribuição de memória e simultaneidade.

Novidades do Rust 1.71

Rust 1.71 lançado com melhorias de estabilização, e muito mais
Rust 1.71 lançado com melhorias de estabilização, e muito mais

Esta nova versão do Rust 1.71 observa que a ABI externa “C-unwind” foi estabilizada, o que difere da ABI sem o sufixo “-unwind” (“extern “C”‘) mantendo um comportamento seguro se o processo de desenrolamento iniciado por uma falha do programa ou o lançamento de uma exceção no estilo C++ cruza um limite da ABI.

Deve-se observar que uma versão futura do Rust procurará modificar essas ABIs para corresponder ao comportamento especificado como parte final da estabilização desse recurso.

Outra mudança notável é o suporte estabilizado para os atributos ‘#[debug_visualizer(natvis_file = “…”)]’ e ‘#[debug_visualizer(gdb_script_file = “…”)]’, que permitem incorporar metadados Microsoft Natviz e scripts GDB em bibliotecas Rust para melhorar a saída de depuração ao inspecionar estruturas de dados criadas por bibliotecas.

Esses scripts já estão incluídos na biblioteca padrão e agora é possível incluí-los em bibliotecas de terceiros.

Além disso, também é observado que o Cargo otimiza seu uso sob rustup e que, quando o Cargo detecta que o rustc será executado apontando para um proxy Rustup, ele tentará ignorar o proxy e usar o binário subjacente diretamente.

Existem suposições sobre a interação com rustup e RUSTUP_TOOLCHAIN. No entanto, não se espera que afete usuários normais.

Por outro lado, no Windows, é possível usar funções de bibliotecas dinâmicas que não estão disponíveis em tempo de compilação (por exemplo, para evitar a instalação de bibliotecas desnecessárias no ambiente de compilação e simplificar a compilação cruzada).

Também é importante notar que o suporte de terceiro nível para a plataforma h-apple-darwin x86_64 foi implementado. O terceiro nível envolve suporte básico, mas sem testes automatizados, lançamento de compilações oficiais e verificação da capacidade de compilar o código.

Das outras mudanças que se destacam nesta nova versão:

  • As plataformas de destino que usam a biblioteca Musl C foram migradas para Musl versão 1.2.3 (anteriormente era usada a versão 1.1.24), que permite o uso do tipo time64 em sistemas de 32 bits.
  • A biblioteca padrão fornece uma variante da macro thread_local que é inicializada com o atributo “const”, que pode ser usado em contexto em vez de constantes, permitindo gerar um código mais ideal.
  • Uma nova parte da API foi movida para estável, incluindo os métodos e implementações de características que foram estabilizadas:
  • O atributo “const”, que determina a possibilidade de uso em qualquer contexto ao invés de constantes, é utilizado em funções:
  • O gerenciador de pacotes Cargo permite especificar opções denominadas debuginfo no arquivo Cargo.toml.
  • Flatten-format-args é ativado por padrão.
  • Rust também oferece suporte a links para símbolos fornecidos pela DLL por ordinal em vez de símbolo nomeado, usando o novo atributo #[link_ordinal].
  • Adicionada a opção workspace_default_members aos metadados. Ao executar os comandos “cargo new” e “cargo init”, os campos da área de trabalho são automaticamente herdados.
  • O suporte de segundo nível foi implementado para a plataforma de destino loongarch64-unknown-linux-gnu.

Para saber mais sobre essa versão do Rust, acesse a nota de lançamento.

Como instalar ou atualizar o Rust 1.71

Para instalar a versão mais recente do Rust nas principais distribuições Linux, use esse tutorial:
Como instalar a linguagem de programação Rust no Linux

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.

1 comentário em “Como converter imagens para vídeo no Linux”

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.