нашри лоиҳа , ки компилятори забони Go-ро барои минтақаҳое таҳия мекунад, ки муаррифии паймоне аз коди натиҷавӣ ва истеъмоли ками захираҳо, ба монанди микроконтроллерҳо ва системаҳои паймонҳои як-протсессорро талаб мекунанд. Кодекс таҳти иҷозатномаи BSD.
Ҷамъоварӣ барои платформаҳои гуногуни мақсаднок бо истифода аз LLVM амалӣ карда мешавад ва китобхонаҳое, ки дар абзори асосии лоиҳаи Go истифода мешаванд, барои дастгирии забон истифода мешаванд. Барномаи тартибдодашуда метавонад мустақиман дар микроконтроллерҳо иҷро карда шавад, ки имкон медиҳад Go ҳамчун забон барои навиштани скриптҳои автоматикунонӣ истифода шавад.
Ҳавасмандии эҷоди лоиҳаи нав хоҳиши истифодаи забони шиноси Go дар дастгоҳҳои паймон буд - таҳиягарон бар он ақидаанд, ки агар версияи Python барои микроконтроллерҳо мавҷуд бошад, пас чаро барои забони Go версияи шабеҳро эҷод накунед. Бирав ба ҷои Rust, зеро омӯхтан осонтар аст, барои параллелизатсия дар асоси корутин дастгирии мустақили ришта таъмин мекунад ва китобхонаи васеи стандартиро пешниҳод мекунад (батареяҳо дохил карда шудаанд).
В текущем виде поддерживается 15 моделей микроконтроллеров, включая различные платы Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary и Phytec. Программы также могут быть собраны для запуска в браузере в формате WebAssembly и в виде исполняемых файлов для Linux. Поддержки контроллеров ESP8266/ESP32 , аммо лоиҳаи алоҳида барои илова кардани дастгирии чипи Xtensa дар LLVM таҳия карда мешавад, ки он то ҳол ҳамчун ноустувор қайд карда мешавад ва барои ҳамгироӣ бо TinyGo омода нест.
Ҳадафҳои асосии лоиҳа:
Дастгирии системаҳои бисёрсоҳавӣ аз ҷумлаи ҳадафҳои асосӣ нест,
оғози самараноки шумораи зиёди корутинҳо (ифтитоҳи худи корутинҳо пурра дастгирӣ карда мешавад), ноил шудан ба сатҳи кори компилятори истинод gc (оптимизатсия ба LLVM гузошта шудааст ва дар баъзе барномаҳо Tinygo метавонад аз gc тезтар бошад) ва пурра бо ҳама барномаҳои Go.
Фарқи асосӣ аз як компилятори шабеҳ кӯшиши нигоҳ доштани модели идоракунии хотираи аслии Go бо истифода аз ҷамъоварии ахлот ва истифодаи LLVM барои тавлиди коди муассир ба ҷои тартиб додани он ба намояндагии C мебошад. Tinygo инчунин як китобхонаи нави вақти корӣ пешниҳод мекунад, ки нақшакаш, системаи тақсимоти хотира ва коркардкунандагони сатрро барои системаҳои паймон оптимизатсияшуда амалӣ мекунад. Баъзе бастаҳо, аз қабили синхронизатсия ва инъикос, дар асоси вақти нав аз нав сохта шудаанд.
Дар байни тағиротҳо дар версияи 0.7 иҷрои фармони "tinygo test", таъмини дастгирии ҷамъоварии ахлот барои аксари тахтаҳои мақсаднок (дар асоси ARM Cortex-M) ва WebAssembly, дастгирии тахтаи HiFive1 rev B дар асоси RISC- V меъморӣ ва тахтаи Arduino nano33,
дастгирии мукаммали забон (дастгирии майдонҳои бит бо истифода аз гетерҳо ва танзимкунандагон, дастгирии сохторҳои номаълум).
Манбаъ: opennet.ru
