verkefnisútgáfu , sem er að þróa Go-þýðanda fyrir svið þar sem krafist er samþjöppunar á tilkomnum kóða og lítillar auðlindanotkunar, svo sem örstýringa og samþjöppuð kerfi með einum örgjörva. undir BSD leyfinu.
Þýðing fyrir ýmsa markvettvanga er útfærð með LLVM og tungumálastuðningur er veittur af bókasöfnum sem aðallega eru notuð í verkfærakeðju Go verkefnisins. Þýdda forritið getur keyrt beint á örstýringum, sem gerir kleift að nota Go sem tungumál til að skrifa sjálfvirkniforskriftir.
Hvatningin fyrir því að búa til nýja verkefnið var löngunin til að nota kunnuglegt Go-mál á litlum tækjum - forritararnir rökstuddu það þannig að ef það væri til Python-útgáfa fyrir örstýringar, þá hvers vegna ekki að búa til eitthvað svipað fyrir Go-málið. í stað Rust vegna þess að það er auðveldara að læra, veitir þráðaóháðan stuðning fyrir corutine-byggða samsíða virkni og býður upp á alhliða staðlað bókasafn ("rafhlöður innifaldar").
Eins og er eru 15 gerðir örstýringa studdar, þar á meðal ýmsar gerðir af borðum frá Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary og Phytec. Einnig er hægt að þýða forrit til keyrslu í vafra í WebAssembly sniði og sem Linux keyrsluskrár. Stuðningur við ESP8266/ESP32 stýringar. , en sérstakt verkefni er í þróun til að bæta við stuðningi við Xtensa örgjörvann í LLVM, sem er nú merktur sem óstöðugur og ekki tilbúinn til samþættingar við TinyGo.
Helstu markmið verkefnisins:
Stuðningur við fjölkjarna kerfi er ekki eitt af aðalmarkmiðunum,
skilvirk ræsing á gríðarlegum fjölda kórútína (ræsing kórútína sjálfrar er að fullu studd), sem nær afkastastigi viðmiðunar gc þýðandans (fínstilling er látin í LLVM og í sumum forritum getur Tinygo verið hraðari en gc) og lokið með öllum Go forritum.
Helsti munurinn frá svipuðum þýðanda Tinygo reynir að varðveita upprunalega minnisstjórnunarlíkan Go sem safnar rusli og nýtir LLVM til að búa til skilvirkan kóða í stað þess að þýða í C-framsetningu. Tinygo býður einnig upp á nýtt keyrslutímabókasafn sem útfærir tímaáætlun, minnisúthlutunarkerfi og strengjameðhöndlara sem eru fínstilltir fyrir samþjöppuð kerfi. Nokkrir pakkar, eins og sync og reflect, hafa verið endurbyggðir með nýja keyrslutímanum.
Breytingar í útgáfu 0.7 fela í sér útfærslu á skipuninni „tinygo test“, stuðning við ruslsöfnun fyrir flest markmiðskort (byggð á ARM Cortex-M) og WebAssembly, stuðning við HiFive1 rev B kortið byggt á RISC-V arkitektúr og Arduino nano33 kortið.
Bættur stuðningur við tungumál (stuðningur við bitasvið með því að nota „getters“ og „setters“, stuðningur við nafnlausar uppbyggingar).
Heimild: opennet.ru
