BookinglyTech News
Software

TinyGo 0.42: panics recuperables, target UEFI y primer kit de hardware

El compilador de Go para microcontroladores cierra su mayor brecha con el runtime estándar gracias a defer y recover, se apoya en Go 1.27 y LLVM 22 y estrena placa propia junto a Seeed Studio.

2 min de lecturaInfoQ0 vistas

TinyGo ha publicado la versión 0.42, y para quien programa microcontroladores en Go es la actualización más relevante en años. La novedad central son los panics recuperables en runtime: ahora se pueden atrapar fallos como desreferencias de puntero nulo, accesos fuera de rango a slices y mapas, o divisiones por cero usando defer y recover, igual que en Go estándar. La versión compila contra Go 1.27 y LLVM 22, y añade un target UEFI.

Panics que ya se pueden atrapar

No todo es recuperable: los fallos por falta de memoria siguen siendo fatales. Pero con los panics atrapables, las suites de test de la librería estándar pueden usar Goexit, SkipNow y FailNow, algo que hasta ahora no era viable. Quien venía reescribiendo idioms de Go o gestionando panics a mano en entornos con pocos recursos nota el alivio de inmediato.

El target UEFI permite ejecutar código Go como aplicación UEFI antes de que arranque el sistema operativo. Llega después de la 0.41, centrada en radio nativa: Wi-Fi y Bluetooth para las familias ESP32-C3 y ESP32-S3 a través de la librería espradio, y despliegue más simple con la utilidad espflasher. Esa entrega también sumó soporte para placas híbridas como la Arduino UNO Q, que combina un MPU de Qualcomm con un MCU STM32.

En WebAssembly, TinyGo compila Go a binarios .wasm y WASI compactos. Con Asyncify de Binaryen soporta goroutines estándar con GOMAXPROCS=1 dentro de runtimes Wasm, y el proyecto ha exhibido la compilación completa de typescript-go, el compilador de TypeScript de Microsoft escrito en Go. Hay guías separadas para navegador y para integración en el edge del lado servidor.

Hardware para empezar sin breadboard

El primer paquete de hardware oficial es el TinyGo Starter Kit con Seeed Studio XIAO. Monta la placa XIAO ESP32-C3 sobre una Grove Base, así que no hacen falta breadboard ni cables de puente, y trae once periféricos Grove: sensores de tacto, temperatura y luz, zumbador, tiras LED RGB y una pantalla OLED. Patricio Whittingslow, del equipo del proyecto, firma la serie de tutoriales que va del primer flasheo a la integración de sensores y la comunicación inalámbrica.

En r/golang y en Hacker News la recepción fue buena. En el segundo, el hilo se tituló "Recover Is Real" y hubo bastante interés en levantar un servidor HTTP completo sobre un microcontrolador de unos pocos dólares.

TinyGo sigue siendo un proyecto de nicho frente a las toolchains de toda la vida, y el kit no cambia eso. Lo que sí cambia es que la distancia con Go estándar se acorta: menos código reescrito y menos casos especiales. Para quien mantiene el mismo código entre un microcontrolador, un runtime edge y el navegador, cada versión que recorta esa distancia se traduce en tiempo ahorrado.