Turli maqsadli platformalar uchun kompilyatsiya LLVM yordamida amalga oshiriladi va Go loyihasining asosiy asboblar to'plamida ishlatiladigan kutubxonalar tilni qo'llab-quvvatlash uchun ishlatiladi. Kompilyatsiya qilingan dastur to'g'ridan-to'g'ri mikrokontrollerlarda ishga tushirilishi mumkin, bu Go'dan avtomatlashtirish skriptlarini yozish uchun til sifatida foydalanish imkonini beradi.
Yangi loyihani yaratishga ixcham qurilmalarda tanish Go tilidan foydalanish istagi sabab bo‘ldi - ishlab chiquvchilar agar mikrokontrollerlar uchun Python versiyasi mavjud bo‘lsa, nega Go tili uchun shunga o‘xshashini yaratmaslik kerak, degan xulosaga kelishdi. Bor
Hozirgi shaklda 15 ta mikrokontroller modellari qo'llab-quvvatlanadi, jumladan Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary va Phytec kompaniyalarining turli platalari. Dasturlarni brauzerda WebAssembly formatida va Linux uchun bajariladigan fayllar sifatida ishlash uchun kompilyatsiya qilish ham mumkin. ESP8266/ESP32 kontrollerlarini qo'llab-quvvatlaydi
Loyihaning asosiy maqsadlari:
Ko'p yadroli tizimlarni qo'llab-quvvatlash asosiy maqsadlar qatoriga kirmaydi,
juda ko'p sonli koroutinlarni samarali ishga tushirish (koroutinlarning o'zi to'liq qo'llab-quvvatlanadi), gc mos yozuvlar kompilyatorining ishlash darajasiga erishish (optimallashtirish LLVM ga qoldiriladi va ba'zi ilovalarda Tinygo gc dan tezroq bo'lishi mumkin) va to'liq
Shunga o'xshash kompilyatordan asosiy farq
0.7 versiyasidagi o'zgarishlar orasida "tinygo test" buyrug'ini amalga oshirish, ko'pgina maqsadli platalar uchun axlat yig'ishni qo'llab-quvvatlash (ARM Cortex-M asosida) va WebAssembly, RISC-ga asoslangan HiFive1 rev B platasini qo'llab-quvvatlash kiradi. V arxitekturasi va Arduino nano33 platasi,
takomillashtirilgan tilni qo'llab-quvvatlash (getterlar va sozlagichlar yordamida bit maydonlarini qo'llab-quvvatlash, anonim tuzilmalarni qo'llab-quvvatlash).
Manba: opennet.ru