TinyGo è un compilatore del linguaggio Go destinato all'uso in aree quali microcontrollori, WASM e sviluppo di utilità da riga di comando.
TinyGo utilizza utilità e librerie scritte nel progetto Go, fornendo allo stesso tempo un metodo alternativo per compilare programmi basati sul lavoro del progetto LLVM.
Obiettivi di progetto:
- Garantire la dimensione minima dei file eseguibili.
- Supporta il maggior numero di microcontrollori.
- Supporto per WebAssembly.
- Buon supporto CGo.
- Supporto del codice Go originale senza modifiche.
Esempio di utilizzo per accendere il LED su un microcontrollore:
pacchetto principale
importazione (
"macchina"
"tempo"
)
funzione principale() {
led := macchina.LED
led.Configure(machine.PinConfig{Modalità: machine.PinOutput})
per {
led.Basso()
tempo.Sonno(tempo.Millisecondo * 1000)
led.Alto()
tempo.Sonno(tempo.Millisecondo * 1000)
}
}
La versione 0.6.0 contiene molte modifiche. I principali riguardano il supporto migliorato per CGo, js.FuncOF (Go 1.12+), nonché due nuove schede di sviluppo: Adafruit Feather M0 e Adafruit Trinket M0.
L'elenco completo delle modifiche è disponibile su Pagina del progetto GitHub.
Fonte: linux.org.ru