kutolewa kwa mradi , ambayo inaunda mkusanyiko wa lugha ya Go kwa maeneo ambayo uwakilishi thabiti wa msimbo unaotokana na matumizi ya chini ya rasilimali inahitajika, kama vile vidhibiti vidogo na mifumo ya kichakataji kimoja. Kanuni chini ya leseni ya BSD.
Ukusanyaji wa mifumo mbalimbali inayolengwa hutekelezwa kwa kutumia LLVM, na usaidizi wa lugha hutolewa na maktaba zinazotumiwa hasa katika msururu wa zana za mradi wa Go. Programu iliyokusanywa inaweza kuendeshwa moja kwa moja kwenye vidhibiti vidogo, na kuruhusu Go itumike kama lugha ya kuandika hati za otomatiki.
Kichocheo cha kuunda mradi mpya kilikuwa nia ya kutumia lugha inayojulikana ya Go kwenye vifaa vya kompakt - wasanidi programu walisababu kwamba ikiwa kuna toleo la Python la vidhibiti vidogo, basi kwa nini usiunde kitu sawa kwa lugha ya Go. badala ya Kutu kwa sababu ni rahisi kujifunza, hutoa usaidizi wa uchunguzi wa nyuzi kwa usawazishaji unaotegemea kanuni, na hutoa maktaba ya kawaida ya kina ("betri pamoja").
В текущем виде поддерживается 15 моделей микроконтроллеров, включая различные платы Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary и Phytec. Программы также могут быть собраны для запуска в браузере в формате WebAssembly и в виде исполняемых файлов для Linux. Поддержки контроллеров ESP8266/ESP32 , lakini mradi tofauti unatayarishwa ili kuongeza usaidizi kwa chipu ya Xtensa kwa LLVM, ambayo kwa sasa imetiwa alama kuwa isiyo imara na ambayo haiko tayari kuunganishwa na TinyGo.
Malengo makuu ya mradi:
Msaada kwa mifumo ya msingi nyingi sio moja ya malengo kuu,
uzinduzi wa ufanisi wa idadi kubwa ya coroutines (uzinduzi wa coroutines yenyewe unaungwa mkono kikamilifu), kufikia kiwango cha utendaji cha mkusanyiko wa kumbukumbu ya gc (uboreshaji umeachwa kwa LLVM na katika programu zingine Tinygo inaweza kuwa haraka kuliko gc) na kukamilika. na maombi yote ya Go.
Tofauti kuu kutoka kwa mkusanyaji sawa Tinygo inajaribu kuhifadhi kielelezo asili cha usimamizi wa kumbukumbu iliyokusanywa ya Go na kutumia LLVM kutoa msimbo unaofaa badala ya kujumuisha uwakilishi wa C. Tinygo pia hutoa maktaba mpya ya wakati wa utekelezaji ambayo hutekelezea kipanga ratiba, mfumo wa ugawaji kumbukumbu, na vishikizi vya kamba vilivyoboreshwa kwa mifumo thabiti. Vifurushi kadhaa, kama vile kusawazisha na kutafakari, vimejengwa upya kwa kutumia muda mpya wa utekelezaji.
Mabadiliko katika toleo la 0.7 yanajumuisha utekelezaji wa amri ya "tinygo test", usaidizi wa ukusanyaji wa takataka kwa bodi nyingi lengwa (ARM Cortex-M based) na WebAssembly, usaidizi wa bodi ya HiFive1 rev B kulingana na usanifu wa RISC-V na bodi ya Arduino nano33,
Usaidizi wa lugha ulioboreshwa (msaada kwa sehemu ndogo kwa kutumia getters na seti, usaidizi wa miundo isiyojulikana).
Chanzo: opennet.ru
