hoʻokuʻu papahana , ka mea e hoʻomohala nei i kahi mea hōʻuluʻulu ʻōlelo Go no nā wahi e koi ana i ka hōʻike paʻakikī o ke code i hopena a me ka hoʻohana haʻahaʻa haʻahaʻa, e like me nā microcontrollers a me nā ʻōnaehana hoʻonohonoho hoʻokahi. Code ma lalo o ka laikini BSD.
Hoʻokomo ʻia ka hoʻohui ʻana no nā papa kuhikuhi like ʻole me ka hoʻohana ʻana i ka LLVM, a hoʻohana ʻia nā hale waihona puke i hoʻohana ʻia i ka pahu hana nui mai ka papahana Go e kākoʻo i ka ʻōlelo. Hiki ke holo pololei ka papahana i hui ʻia ma luna o nā microcontrollers, e ʻae iā Go e hoʻohana ʻia ma ke ʻano he ʻōlelo no ke kākau ʻana i nā palapala automation.
ʻO ke kumu o ka hoʻokumu ʻana i kahi papahana hou, ʻo ia ka makemake e hoʻohana i ka ʻōlelo Go maʻamau ma nā polokalamu compact - ua manaʻo nā mea hoʻomohala inā he mana Python no nā microcontrollers, no ke aha e hana ʻole ai i kahi mea like no ka ʻōlelo Go. Hele ma kahi o Rust no ka mea maʻalahi ke aʻo ʻana, hāʻawi i ke kākoʻo kūʻokoʻa pili i ka coroutine-based parallelization, a hāʻawi i kahi waihona maʻamau maʻamau ("ua hoʻokomo ʻia nā pākahi").
Ma kona ʻano i kēia manawa, kākoʻo ʻia nā kumu hoʻohālike microcontroller 15, me nā papa like ʻole mai Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary a me Phytec. Hiki ke hōʻuluʻulu ʻia nā papahana e holo i loko o kahi polokalamu kele pūnaewele ma ke ʻano WebAssembly a ma ke ʻano he faila hoʻokō no Linux. Kākoʻo i nā mea hoʻokele ESP8266/ESP32 , akā ke kūkulu ʻia nei kahi papahana ʻokoʻa e hoʻohui i ke kākoʻo no ka chip Xtensa ma LLVM, kahi i hōʻailona ʻia ʻaʻole paʻa a mākaukau ʻole no ka hoʻohui ʻana me TinyGo.
Pahuhopu papahana nui:
ʻO ke kākoʻo no nā ʻōnaehana multi-core ʻaʻole ia i waena o nā pahuhopu nui,
ka hoʻomaka maikaʻi ʻana o kahi helu nui o nā coroutines (ua kākoʻo piha ʻia ka hoʻomaka ʻana o nā coroutines ponoʻī), ka hoʻokō ʻana i ka pae hana o ka compiler reference gc ( waiho ʻia ka optimization iā LLVM a ma kekahi mau noi ʻoi aku ka wikiwiki o Tinygo ma mua o gc) a hoʻopau. me nā polokalamu Go āpau.
ʻO ka ʻokoʻa nui mai kahi compiler like he hoʻāʻo e mālama i ke kumu hoʻokele hoʻomanaʻo hoʻomanaʻo kumu a Go me ka hoʻohana ʻana i ka ʻōpala a hoʻohana i ka LLVM e hana i nā code kūpono ma mua o ka hōʻuluʻulu ʻana i kahi hōʻike C. Hāʻawi pū ʻo Tinygo i kahi waihona runtime hou e hoʻokō ana i kahi mea hoʻonohonoho, ʻōnaehana hoʻomanaʻo hoʻomanaʻo, a me nā mea hoʻohana kaula i hoʻopaʻa ʻia no nā ʻōnaehana paʻa. Ua hana hou ʻia kekahi mau pūʻolo, e like me ka sync a me ka noʻonoʻo ʻana, ma muli o ka manawa holo hou.
Ma waena o nā hoʻololi i ka hoʻokuʻu ʻana 0.7 ka hoʻokō ʻana i ke kauoha "tinygo test", ka hoʻolako ʻana i ke kākoʻo hōʻiliʻili ʻōpala no ka hapa nui o nā papa kuhikuhi (ma muli o ARM Cortex-M) a me WebAssembly, kākoʻo no ka papa HiFive1 rev B e pili ana i ka RISC- V architecture a me ka papa Arduino nano33,
hoʻomaikaʻi i ke kākoʻo ʻōlelo (kākoʻo no nā māla bit me ka hoʻohana ʻana i nā getters a me nā mea hoʻonohonoho, kākoʻo no nā hale inoa ʻole).
Source: opennet.ru
