C++ agregó oficialmente soporte para la arquitectura RISC-V: ¿qué significa esto para los desarrolladores?
El mundo de los lenguajes de programación continúa evolucionando. A principios de este mes, el Comité de Estandarización de C++ (WG21) y los equipos de desarrollo de los principales compiladores (GCC, Clang/LLVM) anunciaron el soporte oficial completo para la arquitectura de hardware abierta RISC-V en las versiones actuales de C++17, C++20 y el próximo C++23. Este evento marca una nueva etapa en el desarrollo del lenguaje, tradicionalmente considerado el "rey" de los sistemas embebidos y la computación de alto rendimiento.
Anteriormente, C++ ya tenía soporte experimental para RISC-V, pero ahora se ha vuelto estable. Esto significa que los desarrolladores pueden usar las capacidades modernas del lenguaje (plantillas, constexpr, corrutinas, ranges) en microcontroladores, servidores e incluso supercomputadoras construidas con esta arquitectura, sin riesgo de encontrarse con errores de compilación no documentados.
¿Por qué es tan importante RISC-V para C++?
RISC-V no es solo otro procesador. Es una arquitectura modular abierta que cualquier fabricante puede usar sin regalías de licencia. A diferencia de ARM o x86, donde el ecosistema está estrictamente controlado por los proveedores, RISC-V ofrece total libertad: desde startups que fabrican chips IoT hasta proyectos gubernamentales que buscan independencia tecnológica.
Para C++, este es el entorno ideal:
- Control de bajo nivel. El lenguaje permite escribir código muy cercano al hardware, y RISC-V tiene un conjunto de instrucciones simple y predecible.
- Escalabilidad. Desde microcontroladores de 8 bits (RV32E) hasta sistemas multinúcleo de 64 bits (RV64GC) — C++ funciona en todas partes.
- Seguridad. Los nuevos estándares C++20/23 agregan módulos, conceptos y una mejor gestión de la memoria, lo cual es crítico para dispositivos RISC-V sin MMU complejas.
¿Qué cambió exactamente?
Las principales novedades que han alcanzado el estado "production-ready":
- GCC 13+ y Clang 16+: son totalmente compatibles con las extensiones RISC-V (instrucciones vectoriales V, instrucciones comprimidas C, operaciones atómicas A).
- Biblioteca estándar: adaptada para trabajar con temporizadores de hardware, interrupciones y multitarea en RISC-V.
- Herramientas: QEMU ahora tiene un modelo de referencia RISC-V con soporte completo de depuración GDB para C++.
- Sistemas operativos: Linux 6.x y FreeBSD para RISC-V son totalmente compatibles con aplicaciones C++ (incluyendo std::thread, std::filesystem).
Ejemplos prácticos de uso
Ya ahora los desarrolladores están portando activamente frameworks complejos de C++ a RISC-V:
- Motores de juegos (Godot, Unity — experimentalmente).
- Bibliotecas de aprendizaje automático (TensorFlow Lite, ONNX Runtime).
- Bibliotecas criptográficas (OpenSSL, Botan).
Especial interés despierta el proyecto SiFive, donde en chips RISC-V se ejecutan aplicaciones C++ completas con corrutinas para E/S asíncrona en redes IoT.
¿Qué sigue?
El comité de C++ ya ha anunciado grupos de trabajo para optimizar la ABI (interfaz binaria) para RISC-V y agregar atributos de hardware estándar (por ejemplo, para acceso directo a registros). Se espera que para 2025 RISC-V pueda