TinyGo – это компилятор языка Go, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для использования Π² Ρ‚Π°ΠΊΠΈΡ… областях, ΠΊΠ°ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹, WASM, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

TinyGo ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, написанныС Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Go, ΠΏΡ€ΠΈ этом прСдоставляя Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° основС Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° LLVM.

Π—Π°Π΄Π°Ρ‡ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

  1. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ².
  2. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° наибольшСго количСства ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ².
  3. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° WebAssembly.
  4. Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° CGo.
  5. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° Go Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования для ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ LED Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅:

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)
}
}

ВСрсия 0.6.0 содСрТит мноТСство ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… относятся ΠΊ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ CGo, js.FuncOF (Go 1.12+), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π²ΡƒΡ… Π½ΠΎΠ²Ρ‹Ρ… ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚: Adafruit Feather M0 ΠΈ Adafruit Trinket M0.

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ доступСн Π½Π° GitHub страницС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: linux.org.ru