Kutulutsidwa kwa Tinygo 0.7.0, LLVM-based Go compiler

Ipezeka kutulutsidwa kwa polojekiti Tinygo 0.7.0, yomwe ikupanga compiler ya chinenero cha Go ya madera omwe amafunikira kuyimira pang'onopang'ono kwa code yomwe imachokera komanso kugwiritsa ntchito zinthu zochepa, monga microcontrollers ndi compact single-processor systems. Kodi wogawidwa ndi pansi pa layisensi ya BSD.

Kuphatikizira kwa nsanja zosiyanasiyana zomwe amakufunirani kumayendetsedwa pogwiritsa ntchito LLVM, ndipo malaibulale omwe amagwiritsidwa ntchito pazida zazikulu za polojekiti ya Go amagwiritsidwa ntchito kuthandizira chilankhulocho. Pulogalamu yophatikizidwa imatha kuyendetsedwa mwachindunji pa ma microcontrollers, kulola Go kuti igwiritsidwe ntchito ngati chilankhulo cholembera zolemba zokha.

Cholinga chopanga pulojekiti yatsopano chinali chikhumbo chofuna kugwiritsa ntchito chinenero chodziwika bwino cha Go pazida zazing'ono - omangawo anaganiza kuti ngati pali Python version ya microcontrollers, bwanji osapanganso chinenero chofanana ndi Go. Pitani osankhidwa m'malo mwa Dzimbiri chifukwa ndizosavuta kuphunzira, zimapereka chithandizo chodziyimira pawokha ulusi kuti zigwirizane ndi coroutine, komanso zimapereka laibulale yokhazikika ("mabatire akuphatikizidwa").

Mu mawonekedwe ake amakono, zitsanzo za 15 microcontroller zimathandizidwa, kuphatikizapo matabwa osiyanasiyana ochokera ku Adafruit, Arduino, BBC micro: bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary ndi Phytec. Mapulogalamu amathanso kupangidwa kuti ayendetse mu msakatuli mumtundu wa WebAssembly komanso ngati mafayilo a Linux. Imathandizira owongolera a ESP8266/ESP32 Osati pano, koma pulojekiti ina ikupangidwa kuti iwonjezere chithandizo cha chipangizo cha Xtensa ku LLVM, chomwe chidakali chodziwika kuti ndi chosakhazikika komanso chosakonzekera kuphatikizidwa ndi TinyGo.

Zolinga zazikulu za polojekiti:

  • Mbadwo wa owona yaying'ono executable;
  • Kuthandizira kwamitundu yodziwika bwino yama board a microcontroller;
  • Kuthekera kwa kugwiritsa ntchito intaneti;
  • Thandizo la CGo yokhala ndi mutu wocheperako poyimba ntchito mu C;
  • Thandizo pamaphukusi ambiri okhazikika komanso kuthekera kophatikiza ma code omwe alipo osasintha.

    Kuthandizira machitidwe amitundu yambiri sikuli pakati pa zolinga zazikulu,
    kukhazikitsidwa bwino kwa ma coroutines ambiri (kukhazikitsidwa kwa ma coroutines kumathandizidwa mokwanira), kukwaniritsidwa kwa magwiridwe antchito a gc compiler (kukhathamiritsa kwasiyidwa ku LLVM ndipo m'mapulogalamu ena Tinygo atha kukhala mwachangu kuposa gc) ndikumaliza. kugwilizana ndi mapulogalamu onse a Go.

    Kusiyana kwakukulu kuchokera ku compiler yofanana emgo ndikuyesa kusunga kasamalidwe koyambirira kwa Go pogwiritsa ntchito kusonkhanitsa zinyalala ndikugwiritsa ntchito LLVM kuti mupange khodi yabwino m'malo moiphatikiza ku chiwonetsero cha C. Tinygo imaperekanso laibulale yatsopano yothamanga yomwe imagwiritsa ntchito ndandanda, makina ogawa kukumbukira, ndi zingwe zogwirira ntchito zokongoletsedwa ndi makina ophatikizika. Maphukusi ena, monga kulunzanitsa ndi kuwonetsera, adapangidwanso kutengera nthawi yothamanga yatsopano.

    Zina mwa zosintha pakutulutsidwa kwa 0.7 ndikukhazikitsa lamulo la "tinygo test", kupereka chithandizo chosonkhanitsira zinyalala pama board ambiri omwe mukufuna (kutengera ARM Cortex-M) ndi WebAssembly, kuthandizira HiFive1 rev B board potengera RISC- V zomangamanga ndi bolodi la Arduino nano33,
    kuthandizira kwa chilankhulo (kuthandizira magawo ang'onoang'ono pogwiritsa ntchito ma getters ndi setters, chithandizo chamagulu osadziwika).

    Source: opennet.ru

  • Kuwonjezera ndemanga