gccrs se estará integrando en GCC 13
Se dio a conocer hace poco que el proyecto «gccrs», cuyo objetivo es proporcionar una interfaz para el lenguaje Rust a GCC (GNU Compiler Collection), está en camino de integrarse en GCC 13. En la conferencia de desarrolladores FOSDEM a principios de este mes, el ingeniero Arthur Cohen hizo una presentación sobre gccrs que describe el estado actual del trabajo.
Para quienes desconocen del proyecto gccrs, deben saber que este es una implementación alternativa completa del lenguaje Rust sobre GCC con el objetivo de convertirse completamente en la cadena de herramientas GNU.
El origen de este proyecto es un esfuerzo de la comunidad hace varios años, cuando Rust aún estaba en la versión 0.9; el lenguaje creado por Mozilla estuvo sujeto a tantos cambios que se hizo difícil que un esfuerzo de la comunidad se pusiera al día.
Ahora que el lenguaje es estable, es hora de crear compiladores alternativos:
“Empezó en 2014 (y se relanzó en 2019), el esfuerzo ha estado en curso desde 2020 y hemos hecho mucho esfuerzo y mucho progreso. Hemos subido la primera versión de gccrs dentro de GCC. Entonces, la próxima vez que instale GCC 13, tendrá gccrs dentro.
Puede usarlo y puede comenzar a piratearlo, puede informar los problemas cuando inevitablemente se bloquee y muera horriblemente. Una gran cosa que estamos haciendo es trabajar para que el conjunto de pruebas de rustc funcione”, dijo Arthur Cohen durante su presentación en la conferencia FOSDEM a principios de este mes.
La capacidad de ejecutar con éxito el conjunto de pruebas del compilador rustc también sigue siendo un objetivo. Según Cohen, la interfaz GCC de Rust también apunta a la versión anterior de Rust libcore 1.49.
Las preguntas frecuentes del proyecto gccrs señalan que todas las tecnologías de compilación de LLVM, que utiliza Rust, «carecen de algunos backends compatibles con GCC, por lo que una implementación de gccrs puede llenar los vacíos para su uso en el desarrollo integrado«.
Sin embargo, tenga en cuenta que el compilador Rust-GCC (gccrs) aún se encuentra en una etapa muy temprana y aún no se puede utilizar para compilar programas reales de Rust.
El equipo de GCC votó en julio pasado para aprobar la integración de gccrs como una suite de compilación. La importancia de este proyecto radica en su importancia para el kernel de Linux. De hecho, el kernel de Linux generalmente se construye con GCC, pero los planes para permitir que el lenguaje Rust se use junto con C para el código del kernel, por razones de seguridad de la memoria, están progresando constantemente.
El proyecto «Rust for Linux» se fusionó oficialmente con el árbol principal de Linux 6.1 Git en octubre pasado, lo que convirtió a Rust en el segundo lenguaje dedicado al desarrollo de Linux, después de 31 años de desarrollo exclusivamente basado en C.
“Queremos que gccrs sea un verdadero compilador de Rust y no un proyecto de juguete o algo que compile un lenguaje que se parece a Rust, pero que no es Rust; realmente estamos tratando de hacer que este conjunto de pruebas funcione”, agregó. Durante la presentación, Cohen también dijo que si bien la interfaz Rust de GCC 13 ha tenido un buen comienzo, todavía queda mucho trabajo por hacer. El código de verificación prestado está notablemente ausente en este momento, el soporte para módulos integrados e intrínsecos aún está en curso, y aún no se ha alcanzado el hito importante de compilar el código de Rust para Linux.
Como recordatorio, el proyecto «Rust for Linux» tiene como objetivo introducir un nuevo lenguaje de programación del sistema en el kernel de Linux. Según los expertos, el lenguaje Rust tiene una propiedad clave que hace que sea muy interesante considerarlo como el segundo lenguaje del kernel de Linux: asegura que no se produzca ningún comportamiento indefinido (siempre que el código inseguro esté cuerdo).
Esto incluye la ausencia de errores como uso after-free, double frees, carreras de datos, etc. Los debates relacionados giran en torno a la posibilidad de desechar C a favor del lenguaje Rust. Pero Linus Torvalds, el creador de Linux, dijo que ese no es el objetivo declarado del proyecto Rust for Linux.
Finalmente, cabe mencionar que aunque la interfaz de gccrs se fusionó para la próxima versión de GCC 13, aún no se encuentra en un estado en el que la mayoría de los desarrolladores de Rust puedan realmente utilizarla como una alternativa al compilador LLVM oficial de Rust.
No debería ser hasta el próximo año, al menos con GCC 14 al menos.
Fuente: https://fosdem.org/