Hoʻokuʻu ʻia ʻo Tinygo 0.7.0, LLVM-based Go compiler

Loaʻa hoʻokuʻu papahana Tinygo 0.7.0, 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 mahele ʻia e 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 koho ʻia 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 Koe aku, 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:

  • Hoʻokumu i nā faila hiki ke hoʻokō ʻia;
  • Kākoʻo no nā hiʻohiʻona maʻamau o nā papa microcontroller;
  • Hiki ke noi no ka Pūnaewele;
  • Kākoʻo Cgo me ka liʻiliʻi o ke poʻo i ke kāhea ʻana i nā hana ma C;
  • Kākoʻo no ka hapa nui o nā pūʻolo maʻamau a me ka hiki ke hōʻuluʻulu i nā code maʻamau me ka hoʻololi ʻole.

    ʻ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. kūlike me nā polokalamu Go āpau.

    ʻO ka ʻokoʻa nui mai kahi compiler like emgo 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

  • Pākuʻi i ka manaʻo hoʻopuka