Cosmopolitan 3.0: Escribe una vez, ejecuta en cualquier lugar (¡y más rápido!)

2025-02-01
Cosmopolitan 3.0: Escribe una vez, ejecuta en cualquier lugar (¡y más rápido!)

¡La biblioteca Cosmopolitan versión 3.0 ya está aquí! Después de casi un año de desarrollo, esta versión supone un cambio radical. Un único ejecutable ahora se ejecuta en arquitecturas AMD64 y ARM64 en Linux, macOS, Windows, FreeBSD, OpenBSD y NetBSD. Esto se debe a un nuevo enlazador, apelink.c, que combina inteligentemente los formatos de archivo PE, ELF, Mach-O y PKZIP. Cosmopolitan 3.0 también ofrece mejoras sustanciales en la compatibilidad con Windows y macOS, además de importantes ganancias en velocidad y eficiencia de memoria. Se incluye una "distribución Linux gruesa", Cosmos, con herramientas como Emacs, Vim y CoreUtils. Este enfoque innovador proporciona no solo una portabilidad sin precedentes, sino también un rendimiento superior.

Leer más
Desarrollo ejecutable

Intérprete de Cálculo Lambda Binario en 383 Bytes

2025-01-15
Intérprete de Cálculo Lambda Binario en 383 Bytes

Esta entrada de blog presenta una nueva implementación de 383 bytes de un intérprete de cálculo lambda binario como un ejecutable ELF de Linux x86-64. Este intérprete minúsculo logra realizar recolección de basura, listas perezosas y recursión de cola. Los programas se codifican en un formato binario notablemente pequeño; por ejemplo, su evaluador metacircular tiene solo 232 bits. El autor proporciona código C portátil y binarios precompilados para otras plataformas. Este proyecto es una herramienta de aprendizaje divertida para el cálculo lambda y muestra la posibilidad de implementar computación compleja en entornos con recursos extremadamente limitados.

Leer más
Desarrollo

Minimización extrema: Creando un ejecutable multiplataforma de menos de 400 bytes

2025-01-07

Esta entrada de blog detalla trucos de optimización de tamaño del proyecto Cosmopolitan Libc, utilizando ensamblador x86 y técnicas de compilación inteligentes para reducir drásticamente el tamaño del ejecutable. Los métodos principales que se discuten incluyen la codificación de longitud de ejecución, las secciones descentralizadas, la eliminación de código muerto, la codificación δzd, las funciones superpuestas y la optimización de printf. ¿El resultado final? Un ejecutable ELF de menos de 400 bytes que se ejecuta en Linux, FreeBSD, NetBSD y OpenBSD. Esto demuestra el uso eficiente de los recursos y ofrece nuevas perspectivas sobre la escalabilidad de las bases de código grandes.

Leer más