TinyGo è un compilatore del linguaggio Go, progettato per essere utilizzato in ambiti come microcontrollori, WASM e sviluppo di utility da riga di comando.
TinyGo utilizza strumenti e librerie scritti nel progetto Go, fornendo un metodo alternativo di compilazione dei programmi basato sui risultati del progetto LLVM.
Obiettivi del progetto:
- Garantire dimensioni minime per i file eseguibili.
- Supportare il maggior numero possibile di microcontrollori.
- Supportare WebAssembly.
- Buon supporto per CGo.
- Supportare il codice originale Go senza modifiche.
Esempio di utilizzo per accendere un LED su un microcontrollore:
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 versione 0.6.0 contiene molte modifiche. Le principali riguardano il miglioramento del supporto per CGo, js.FuncOF (Go 1.12+) e due nuove schede di debug: Adafruit Feather M0 e Adafruit Trinket M0.
L'elenco completo delle modifiche è disponibile su Pagina GitHub del progetto.
Fonte: linux.org.ru
