TinyGo este un compilator pentru limbajul Go, destinat utilizării în domenii precum microcontrolere, WASM, precum și dezvoltarea utilitarelor de linie de comandă.
TinyGo folosește utilitare și biblioteci scrise în proiectul Go, oferind în același timp o metodă alternativă de compilare a programelor bazată pe realizările proiectului LLVM.
Obiectivele proiectului:
- Asigurarea unei dimensiuni minime a fișierelor executabile.
- Suport pentru cele mai multe microcontrolere.
- Suport pentru WebAssembly.
- Suport bun pentru CGo.
- Suport pentru codul original Go fără modificări.
Exemplu de utilizare pentru comutarea LED-ului pe un microcontroler:
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)
}
}
Versiunea 0.6.0 conține numeroase modificări. Cele mai importante se referă la îmbunătățirea suportului pentru CGo, js.FuncOF (Go 1.12+) și două plăci de dezvoltare noi: Adafruit Feather M0 și Adafruit Trinket M0.
Lista completă a modificărilor este disponibilă pe pagina de GitHub a proiectului.
Sursa: linux.org.ru
