io_uring obtiene nueva funcionalidad de creación de procesos

2024-12-20

LWN.net informa sobre el desarrollo de una nueva función de creación de procesos para el subsistema io_uring. Esta funcionalidad se implementa mediante dos nuevas operaciones io_uring: IORING_OP_CLONE, que crea un nuevo proceso, e IORING_OP_EXEC, que realiza una llamada al sistema execveat() para cargar un nuevo programa. Esto promete una mayor eficiencia y permite que se ejecute una lógica más compleja, como la búsqueda de rutas, de forma asíncrona en el kernel. Sin embargo, la función aún se encuentra en sus etapas iniciales y tiene limitaciones, como la necesidad de ejecutar de forma síncrona las operaciones io_uring en el nuevo proceso. El desarrollo futuro tiene como objetivo aumentar la flexibilidad y, finalmente, fusionar la función en el kernel principal de Linux.

Leer más

Lanzamiento de Fish Shell 4.0: Reescrito en Rust para un Rendimiento Mejorado

2024-12-19

Fish shell, un shell de línea de comandos conocido por su facilidad de uso y funciones inteligentes, ha lanzado la versión 4.0. El cambio más significativo es la reescritura completa de la base de código de C++ a Rust, lo que resulta en una mejor eficiencia de computación moderna. La versión 4.0 también cuenta con muchas características nuevas, como atajos de teclado más naturales y una búsqueda de historial mejorada, diseñadas para hacer la experiencia de la línea de comandos más fácil y agradable. Para garantizar la estabilidad, el proyecto ha lanzado una versión beta pública invitando a todos los usuarios a participar en las pruebas.

Leer más
Desarrollo

Emacs con Guile: Un ambicioso proyecto de reescritura

2024-12-16

El editor Emacs es conocido por su extensibilidad, pero enfrenta limitaciones de rendimiento y expresividad con su lenguaje principal, Emacs Lisp (Elisp). Para abordar esto, el proyecto Guile-Emacs pretende reemplazar Elisp en Emacs con Guile Lisp. Después de años de desarrollo e inactividad, Guile-Emacs ha sido revivido por los desarrolladores Robin Templeton y Larry Valkama. El proyecto busca aprovechar las ventajas del compilador y el rendimiento de Guile para mejorar la velocidad y la extensibilidad de Emacs, manteniendo la compatibilidad con Elisp. El objetivo final es reescribir una parte significativa del código C de Emacs en Lisp, mejorando significativamente su capacidad de personalización. A pesar de los desafíos técnicos y políticos, el proyecto presenta posibilidades emocionantes para el futuro de Emacs.

Leer más
Desarrollo

Compilador Rust: Una arquitectura de compilación incremental basada en consultas

2024-12-13

Para abordar los problemas de eficiencia de la compilación tradicional basada en pipelines, el compilador Rust emplea una arquitectura de compilación incremental basada en consultas. Esta arquitectura descompone el proceso de compilación en una serie de consultas interdependientes, utilizando una base de datos de compilación para almacenar en caché los resultados intermedios. Esto permite recompilar solo las secciones de código necesarias. Similar a la gestión de dependencias de un sistema de construcción, esto mejora significativamente la velocidad de compilación, especialmente beneficioso en escenarios como la integración con IDE. Si bien introduce complejidad, este enfoque ofrece una experiencia de compilación incremental más estable y eficiente para Rust en comparación con las mejoras graduales a los sistemas tradicionales, siendo ahora el predeterminado para las compilaciones de desarrollo.

Leer más

El proyecto Git en un punto muerto por la integración de Rust

2024-12-13

El proyecto Git está envuelto en un acalorado debate sobre la integración del lenguaje de programación Rust. Los proponentes argumentan que la seguridad de memoria y la facilidad de refactorización de Rust mejorarían la seguridad y la experiencia del desarrollador de Git. Sin embargo, los oponentes expresan su preocupación de que la integración de Rust pueda comprometer el soporte para plataformas de nicho como NonStop, lo que podría perjudicar la viabilidad a largo plazo de Git. La prevalencia de NonStop en el sector financiero, su dependencia de Git y la falta de un compilador Rust para la plataforma complican el problema. La discusión finalmente no llegó a una resolución, dejando al proyecto Git lidiando con una decisión crítica entre mantener un amplio soporte de plataforma y mejorar la seguridad y la experiencia del desarrollador.

Leer más