TinyGo es un compilador del lenguaje Go, diseñado para su uso en áreas como microcontroladores, WASM y desarrollo de utilidades de línea de comandos.
TinyGo utiliza utilidades y bibliotecas escritas en el proyecto Go, proporcionando un método alternativo de compilación de programas basado en los desarrollos del proyecto LLVM.
Objetivos del proyecto:
- Garantizar un tamaño mínimo de los archivos ejecutables.
- Soporte para la mayor cantidad posible de microcontroladores.
- Soporte para WebAssembly.
- Buena compatibilidad con CGo.
- Soporte para el código original en Go sin cambios.
Ejemplo de uso para encender un LED en un microcontrolador:
package main
import (
"machine"
"time"
)
func main() {
led := machine.LED
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
for {
led.Low()
time.Sleep(time.Millisecond * 1000)
led.High()
time.Sleep(time.Millisecond * 1000)
}
}
La versión 0.6.0 incluye numerosas mejoras. Las principales se refieren a la mejora del soporte para CGo, js.FuncOF (Go 1.12+) y también a dos nuevas placas de desarrollo: Adafruit Feather M0 y Adafruit Trinket M0.
La lista completa de cambios está disponible en Página del proyecto en GitHub.
Fuente: linux.org.ru
