lage pwojè , ki ap devlope yon du langaj Go pou zòn ki mande pou reprezantasyon kontra enfòmèl ant kòd la ki kapab lakòz ak konsomasyon resous ki ba, tankou mikrokontwolè ak sistèm kontra enfòmèl ant yon sèl-prosesè. Kòd anba lisans BSD.
Konpilasyon pou plizyè platfòm sib aplike lè l sèvi avèk LLVM, epi yo itilize bibliyotèk yo itilize nan bwat zouti prensipal pwojè Go a pou sipòte langaj la. Pwogram konpile a ka dirèkteman kouri sou mikrokontwolè, sa ki pèmèt Go yo dwe itilize kòm yon lang pou ekri Scripts automatisation.
Motivasyon pou kreye yon nouvo pwojè se te dezi a sèvi ak lang Go abitye sou aparèy kontra enfòmèl ant - devlopè yo te rezone ke si te gen yon vèsyon Python pou mikrokontroleur, Lè sa a, poukisa yo pa kreye yon sèl menm jan an pou lang Go a. Ale olye de Rust paske li pi fasil pou aprann, li bay sipò endepandan fil pou paralelizasyon ki baze sou koroutin, epi li ofri yon bibliyotèk estanda anpil ("pil enkli").
Nan fòm aktyèl li yo, 15 modèl mikrokontwolè yo sipòte, ki gen ladan divès kalite ankadreman soti nan Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nòdik Semiconductor, Makerdiary ak Phytec. Pwogram yo kapab tou konpile pou yo kouri nan yon navigatè nan fòma WebAssembly ak kòm dosye ègzèkutabl pou Linux. Sipòte contrôleur ESP8266/ESP32 , men yon pwojè separe ap devlope pou ajoute sipò pou chip Xtensa nan LLVM, ki toujou make kòm enstab epi li pa pare pou entegrasyon ak TinyGo.
Objektif kle pwojè yo:
Sipò pou sistèm milti-debaz se pa nan mitan objektif prensipal yo,
lansman efikas nan yon gwo kantite coroutines (lansman de coroutines tèt li konplètman sipòte), reyalizasyon nan nivo pèfòmans nan referans a du gc (optimizasyon kite LLVM ak nan kèk aplikasyon Tinygo ka pi vit pase gc) ak konplè. ak tout aplikasyon Go.
Diferans prensipal la soti nan yon du menm jan an se yon tantativ pou konsève modèl jesyon memwa orijinal Go a lè l sèvi avèk koleksyon fatra epi sèvi ak LLVM pou jenere kòd efikas olye pou yo konpile li nan yon reprezantasyon C. Tinygo ofri tou yon nouvo bibliyotèk ekzekite ki aplike yon pwogramasyon, sistèm alokasyon memwa, ak moun kap okipe kòd optimize pou sistèm kontra enfòmèl ant. Gen kèk pakè, tankou senkronize ak reflete, yo te rkree ki baze sou nouvo ègzekutabl la.
Pami chanjman ki fèt nan lage 0.7 yo genyen aplikasyon kòmand "tinygo test", dispozisyon sipò pou koleksyon fatra pou pifò tablo sib (ki baze sou ARM Cortex-M) ak WebAssembly, sipò pou tablo HiFive1 rev B ki baze sou RISC-. V achitekti ak tablo Arduino nano33 la,
sipò lang amelyore (sipò pou jaden bit lè l sèvi avèk getters ak setters, sipò pou estrikti anonim).
Sous: opennet.ru
