Ар кандай максаттуу платформалар үчүн компиляция LLVM аркылуу ишке ашырылат, ал эми Go долбоорунан негизги инструменттер топтомунда колдонулган китепканалар тилди колдоо үчүн колдонулат. Түзүлгөн программаны түздөн-түз микроконтроллерлерде иштетсе болот, бул Go программасын автоматташтыруу сценарийлерин жазуу тили катары колдонууга мүмкүндүк берет.
Жаңы долбоорду түзүүгө мотивация катары тааныш Go тилин компакттуу түзүлүштөрдө колдонуу каалоосу болгон - иштеп чыгуучулар эгерде микроконтроллерлор үчүн Python версиясы бар болсо, анда Go тили үчүн да окшошун түзүүгө эмне үчүн болбосун деп ойлошкон. Go
Учурдагы түрүндө 15 микроконтроллердин моделдери колдоого алынат, анын ичинде Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary жана Phytecтин ар кандай такталары. Программаларды WebAssembly форматындагы браузерде жана Linux үчүн аткарылуучу файлдар катары иштетүү үчүн да түзсө болот. ESP8266/ESP32 контроллерлорун колдойт
Долбоордун негизги максаттары:
Көп ядролуу системаларды колдоо негизги максаттардын арасында эмес,
көп сандагы корутиндерди эффективдүү ишке киргизүү (корутиндердин өзүн ишке киргизүү толугу менен колдоого алынат), gc шилтеме компиляторунун иштөө деңгээлине жетишүү (оптималдаштыруу LLVMге калтырылган жана кээ бир тиркемелерде Tinygo gcге караганда тезирээк болушу мүмкүн) жана толук
Окшош компилятордон негизги айырмачылык
0.7 релизиндеги өзгөрүүлөрдүн арасында "tinygo test" буйругун ишке ашыруу, көпчүлүк максаттуу такталар үчүн таштанды чогултууну колдоо (ARM Cortex-M негизинде) жана WebAssembly, RISC-ге негизделген HiFive1 rev B тактасын колдоо. V архитектурасы жана Arduino nano33 тактасы,
жакшыртылган тилди колдоо (гетерлерди жана орнотууларды колдонуу менен бит талааларын колдоо, анонимдүү структураларды колдоо).
Source: opennet.ru