Müxtəlif hədəf platformalar üçün kompilyasiya LLVM-dən istifadə etməklə həyata keçirilir və Go layihəsindən əsas alət dəstində istifadə olunan kitabxanalar dili dəstəkləmək üçün istifadə olunur. Tərtib edilmiş proqram birbaşa mikrokontrollerlərdə işlədilə bilər, bu da Go-dan avtomatlaşdırma skriptlərinin yazılması üçün dil kimi istifadə edilməsinə imkan verir.
Yeni layihənin yaradılmasında motivasiya tanış Go dilindən yığcam cihazlarda istifadə etmək istəyi idi - tərtibatçılar belə əsaslandırdılar ki, əgər mikrokontrollerlər üçün Python versiyası varsa, niyə də Go dili üçün oxşarını yaratmayaq. Get
Hazırkı formada Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary və Phytec-dən müxtəlif lövhələr də daxil olmaqla 15 mikrokontroller modeli dəstəklənir. Proqramlar həmçinin WebAssembly formatında brauzerdə və Linux üçün icra edilə bilən fayllar kimi işləmək üçün tərtib edilə bilər. ESP8266/ESP32 nəzarətçiləri dəstəkləyir
Layihənin əsas məqsədləri:
Çox nüvəli sistemlərə dəstək əsas məqsədlər arasında deyil,
çoxlu sayda koroutinlərin səmərəli işə salınması (koroutinlərin işə salınması tam dəstəklənir), istinad kompilyatorunun gc performans səviyyəsinə nail olmaq (optimallaşdırma LLVM-də qalır və bəzi tətbiqlərdə Tinygo gc-dən daha sürətli ola bilər) və tam
Bənzər bir kompilyatordan əsas fərq
0.7 buraxılışındakı dəyişikliklər arasında "tinygo test" əmrinin həyata keçirilməsi, əksər hədəf lövhələri üçün zibil toplama dəstəyinin təmin edilməsi (ARM Cortex-M əsasında) və WebAssembly, RISC- əsasında HiFive1 rev B lövhəsi üçün dəstək var. V memarlıq və Arduino nano33 lövhəsi,
təkmilləşdirilmiş dil dəstəyi (alıcı və təyinedicilərdən istifadə edərək bit sahələrinə dəstək, anonim strukturlara dəstək).
Mənbə: opennet.ru