Solod 0.4 mejora la interoperabilidad con C y soporta Windows

Fuentes: Solod 0.4: Better C interop

Solod 0.4 es una actualización de Solod, un subconjunto de Go que se traduce a C estándar sin tiempo de ejecución y con gestión manual de memoria. Esta versión está diseñada para ofrecer a los desarrolladores de Go un control de bajo nivel sin aprender otro lenguaje, y a los de C un estilo de programación familiar. La novedad principal es la facilidad para llamar a bibliotecas C de terceros mediante un generador de bindings automático llamado Sobind, que analiza archivos de cabecera (.h) y emite código fuente de Solod con las estructuras, constantes y funciones necesarias. Esto permite integrar librerías populares como libuv, raylib, sodium y sqlite sin sobrecarga, ya que el código de Solod es, en el fondo, C regular. Además, la biblioteca estándar de Solod ahora cuenta con 37 paquetes, de los cuales 31 funcionan en modo freestanding, es decir, independientes de cualquier implementación de libc o sistema operativo específico. Esto incluye paquetes esenciales como bufio, bytes, encoding/json, math/rand y strings, lo que hace viable el uso de Solod para programación bare metal. La actualización también introduce soporte para aserciones de tipo con la sintaxis comma-ok, lo que permite verificar el tipo de un interfaz no vacío de forma segura. En cuanto a la interoperabilidad, el paquete c ahora soporta tipos comunes de C como size_t, ssize_t y long double, además de funciones de cast útiles como c.Bitcast y c.SliceData, que simplifican la conversión de punteros y datos. La herramienta de pruebas so test permite ejecutar pruebas de múltiples paquetes en una sola traducción y compilación, mejorando significativamente la velocidad. Se han añadido nuevas banderas para so build, so test, so bench y so run, incluyendo -target para la compilación cruzada (soportando plataformas como x86_64-windows-gnu y wasm32-freestanding) y -check para análisis de código con sanitizers y analizadores estáticos. Por último, se ha implementado un soporte limitado para Windows en arquitecturas amd64 y arm64, aunque no es tan completo como el de Go, ya que los paquetes que dependen de POSIX no están disponibles. Esta versión posiciona a Solod como una herramienta robusta para quienes buscan la productividad de Go con el control de C.