TinyGo to kompilator języka Go przeznaczony do użytku w takich obszarach, jak mikrokontrolery, WASM i tworzenie narzędzi wiersza poleceń.
TinyGo wykorzystuje narzędzia i biblioteki napisane w projekcie Go, zapewniając jednocześnie alternatywną metodę kompilacji programów w oparciu o prace projektu LLVM.
Cele projektu:
- Zapewnij minimalny rozmiar plików wykonywalnych.
- Obsługuje największą liczbę mikrokontrolerów.
- Obsługa zestawu WebAssembly.
- Dobre wsparcie CGo.
- Obsługa oryginalnego kodu Go bez zmian.
Przykładowe zastosowanie do przełączania diod LED na mikrokontrolerze:
pakiet główny
import(
"maszyna"
"czas"
)
funkcja główna() {
dioda := maszyna.LED
led.Configure(machine.PinConfig{Tryb: maszyna.PinOutput})
dla {
dioda.Niska()
czas.Sleep(czas.Milisekunda * 1000)
dioda.Wysoka()
czas.Sleep(czas.Milisekunda * 1000)
}
}
Wersja 0.6.0 zawiera wiele zmian. Najważniejsze z nich dotyczą usprawnionej obsługi CGo, js.FuncOF (Go 1.12+), a także dwóch nowych płytek deweloperskich: Adafruit Feather M0 i Adafruit Trinket M0.
Pełna lista zmian dostępna jest pod adresem Strona projektu GitHub.
Źródło: linux.org.ru