El Comité de Dirección de GCC, encargado del desarrollo del conjunto de compiladores GCC, ha aprobado la inclusión en el núcleo de GCC de la implementación del compilador del lenguaje Rust, preparada por el proyecto gccrs (GCC Rust). Después de la integración del frontend, las herramientas estándar de GCC podrán utilizarse para compilar programas en lenguaje Rust sin necesidad de instalar el compilador rustc, que se construyó utilizando desarrollos de LLVM.
Se ha recomendado a los desarrolladores de gccrs comenzar a trabajar con los equipos responsables de la revisión de cambios y la preparación de lanzamientos de GCC, para llevar a cabo la verificación final y la aprobación de los parches desde el punto de vista de conformidad con los requisitos técnicos del código que se añade a GCC. En caso de que el desarrollo de gccrs continúe según lo planeado y no se identifiquen problemas imprevistos, el frontend para el lenguaje Rust será integrado en la versión de lanzamiento de GCC 13, prevista para mayo del próximo año. La implementación de Rust en GCC 13 tendrá el estado de versión beta, mientras no esté habilitada por defecto.
El lenguaje Rust se centra en un manejo seguro de la memoria y proporciona herramientas para lograr un alto paralelismo en la ejecución de tareas. Un manejo seguro de la memoria, que evita errores como acceder a áreas de memoria después de haberlas liberado, desreferenciar punteros nulos y desbordamientos de búfer, se logra en Rust durante la compilación mediante la verificación de referencias, el seguimiento de la propiedad de los objetos, la consideración del tiempo de vida de los objetos (ámbito) y la evaluación de la corrección del acceso a la memoria durante la ejecución del código. Rust también proporciona mecanismos para proteger contra desbordamientos enteros, exige la inicialización obligatoria de los valores de las variables antes de su uso, maneja mejor los errores en la biblioteca estándar, aplica el concepto de inmutabilidad (immutable) para referencias y variables por defecto, y ofrece una fuerte tipificación estática para minimizar errores lógicos.
Fuente: opennet.ru
