C++ adicionou oficialmente suporte para a arquitetura RISC-V: o que isso significa para os desenvolvedores?
O mundo das linguagens de programação continua a evoluir. No início deste mês, o Comitê de Padronização do C++ (WG21) e as equipes de desenvolvimento dos principais compiladores (GCC, Clang/LLVM) anunciaram o suporte oficial completo para a arquitetura de hardware aberta RISC-V nas versões atuais do C++17, C++20 e no próximo C++23. Este evento marca um novo estágio no desenvolvimento da linguagem, tradicionalmente considerada o "rei" dos sistemas embarcados e da computação de alto desempenho.
Anteriormente, o C++ já tinha suporte experimental para RISC-V, mas agora ele se tornou estável. Isso significa que os desenvolvedores podem usar os recursos modernos da linguagem (templates, constexpr, corrotinas, ranges) em microcontroladores, servidores e até supercomputadores construídos nesta arquitetura, sem o risco de encontrar erros de compilação não documentados.
Por que o RISC-V é tão importante para o C++?
RISC-V não é apenas mais um processador. É uma arquitetura modular aberta que qualquer fabricante pode usar sem pagar royalties. Ao contrário do ARM ou x86, onde o ecossistema é rigidamente controlado pelos fornecedores, o RISC-V oferece total liberdade: desde startups que fabricam chips para IoT até projetos governamentais que buscam independência tecnológica.
Para o C++, este é o ambiente ideal:
- Controle de baixo nível. A linguagem permite escrever código o mais próximo possível do hardware, e o RISC-V possui um conjunto de instruções simples e previsível.
- Escalabilidade. De microcontroladores de 8 bits (RV32E) a sistemas multi-core de 64 bits (RV64GC) — o C++ funciona em todos eles.
- Segurança. Os novos padrões C++20/23 adicionam módulos, conceitos e gerenciamento de memória aprimorado, o que é crítico para dispositivos RISC-V sem MMUs complexas.
O que mudou exatamente?
As principais novidades que receberam o status de "production-ready":
- GCC 13+ e Clang 16+: suportam totalmente as extensões RISC-V (instruções vetoriais V, instruções compactadas C, operações atômicas A).
- Biblioteca padrão: adaptada para trabalhar com temporizadores de hardware, interrupções e multithreading no RISC-V.
- Ferramentas: O QEMU agora possui um modelo de referência RISC-V com suporte completo de depuração GDB para C++.
- Sistemas operacionais: Linux 6.x e FreeBSD para RISC-V suportam totalmente aplicações C++ (incluindo std::thread, std::filesystem).
Exemplos práticos de uso
Já agora, os desenvolvedores estão ativamente portando frameworks C++ complexos para RISC-V:
- Motores de jogos (Godot, Unity — experimentalmente).
- Bibliotecas de aprendizado de máquina (TensorFlow Lite, ONNX Runtime).
- Bibliotecas criptográficas (OpenSSL, Botan).
Um interesse especial é o projeto SiFive, onde chips RISC-V executam aplicações C++ completas com corrotinas para E/S assíncrona em redes IoT.
Qual é o próximo passo?
O comitê do C++ já anunciou grupos de trabalho para otimizar a ABI (Interface Binária de Aplicação) para RISC-V e adicionar atributos de hardware padrão (por exemplo, para acesso direto a registradores). Espera-se que até 2025 o RISC-V possa