TinyGo is een compiler voor de programmeertaal Go, bedoeld voor gebruik in gebieden zoals microcontrollers, WASM, en de ontwikkeling van commandoregeltools.
TinyGo maakt gebruik van tools en bibliotheken die zijn geschreven in het Go-project, terwijl het een alternatieve methode biedt voor het compileren van programma's op basis van de ontwikkelingen binnen het LLVM-project.
Projectdoelen:
- Zorgen voor een minimale bestandsgrootte voor uitvoerbare bestanden.
- Ondersteuning voor zoveel mogelijk microcontrollers.
- Ondersteuning voor WebAssembly.
- Goede ondersteuning voor CGo.
- Ondersteuning voor origineel Go-code zonder wijzigingen.
Voorbeeldgebruik voor het schakelen van een LED op een microcontroller:
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)
}
}
Versie 0.6.0 bevat tal van wijzigingen. De belangrijkste zijn verbeteringen in de ondersteuning van CGo, js.FuncOF (Go 1.12+), en twee nieuwe ontwikkelplaten: Adafruit Feather M0 en Adafruit Trinket M0.
Een volledige lijst van wijzigingen is beschikbaar op de GitHub-pagina van het project.
Bron: linux.org.ru
