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
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