Түрлі мақсатты платформаларға арналған компиляция LLVM көмегімен жүзеге асырылады және Go жобасындағы негізгі құралдар жинағында пайдаланылатын кітапханалар тілді қолдау үшін пайдаланылады. Құрастырылған бағдарламаны тікелей микроконтроллерлерде іске қосуға болады, бұл Go тілін автоматтандыру сценарийлерін жазу тілі ретінде пайдалануға мүмкіндік береді.
Жаңа жобаны құрудың мотивациясы ықшам құрылғыларда таныс Go тілін қолдануға деген ұмтылыс болды - әзірлеушілер микроконтроллерлерге арналған Python нұсқасы болса, 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 тақтасы,
жақсартылған тілдік қолдау (гетерлер мен орнатушылардың көмегімен бит өрістерін қолдау, анонимді құрылымдарды қолдау).
Ақпарат көзі: opennet.ru