Ukukhishwa kwe-Tinygo 0.7.0, i-LLVM-based Go compiler

Iyatholakala ukukhululwa kwephrojekthi I-Tinygo 0.7.0, esakha isihlanganisi solimi lwe-Go sezindawo ezidinga ukumelwa okuhlangene kwekhodi ewumphumela kanye nokusetshenziswa okuphansi kwensiza, njengezilawuli ezincane namasistimu e-compact single-processor. Ikhodi isatshalaliswa ngu ngaphansi kwelayisensi ye-BSD.

Ukuhlanganiswa kwezingxenyekazi eziqondiwe ezihlukahlukene kusetshenziswa i-LLVM, futhi imitapo yolwazi esetshenziswa kukhithi yamathuluzi eyinhloko evela kuphrojekthi ye-Go isetshenziselwa ukusekela ulimi. Uhlelo oluhlanganisiwe lungasebenza ngokuqondile kuma-microcontroller, okuvumela i-Go ukuthi isetshenziswe njengolimi lokubhala izikripthi ezizenzakalelayo.

Isisusa sokudala iphrojekthi entsha kwaba isifiso sokusebenzisa ulimi lwe-Go olujwayelekile kumadivayisi ahlangene - abathuthukisi bacabange ukuthi uma kunenguqulo ye-Python yama-microcontrollers, kungani-ke ungadali efanayo yolimi lwesi-Go. Hamba kukhethiwe esikhundleni se-Rust ngoba kulula ukuyifunda, inikeza ukwesekwa okuzimele kochungechunge lokufana okusekelwe ku-coroutine, futhi inikeza umtapo wezincwadi ojwayelekile ("kufakwe amabhethri").

Ngendlela yayo yamanje, amamodeli we-microcontroller angu-15 asekelwa, kuhlanganise namabhodi ahlukahlukene avela ku-Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary kanye nePhytec. Izinhlelo zingabuye zihlanganiswe ukuze zisebenze kusiphequluli ngefomethi ye-WebAssembly nanjengamafayela asebenzisekayo e-Linux. Isekela izilawuli ze-ESP8266/ESP32 Hhayi okwamanje, kodwa iphrojekthi ehlukile iyathuthukiswa yokwengeza usekelo lwe-chip ye-Xtensa ku-LLVM, esamakwe njengengazinzile futhi engakalungeli ukuhlanganiswa ne-TinyGo.

Imigomo yephrojekthi ebalulekile:

  • Isizukulwane samafayela asebenzisekayo ahlangene kakhulu;
  • Ukusekela amamodeli avame kakhulu amabhodi ama-microcontroller;
  • Amathuba wokufaka isicelo kuWebhu;
  • Ukusekelwa kwe-CCo nge-overhead encane lapho ubiza imisebenzi ngo-C;
  • Ukusekelwa kwamaphakheji amaningi ajwayelekile kanye nekhono lokuhlanganisa ikhodi ekhona ejwayelekile ngaphandle kokuyishintsha.

    Ukusekelwa kwezinhlelo eziningi ezibalulekile akukhona phakathi kwezinjongo eziyinhloko,
    ukwethulwa ngempumelelo kwenani elikhulu lama-coroutines (ukwethulwa kwama-coroutines ngokwako kusekelwa ngokugcwele), ukufinyelelwa kwezinga lokusebenza kwe-reference compiler gc (ukwenza kahle kushiywe ku-LLVM kanti kwezinye izinhlelo zokusebenza i-Tinygo ingase isheshe kune-gc) futhi iphelele. ukuhambisana nazo zonke izinhlelo zokusebenza ze-Go.

    Umehluko omkhulu kusukela kumhlanganisi ofanayo emgo umzamo wokulondoloza imodeli yokuphatha inkumbulo yoqobo ye-Go kusetshenziswa ukuqoqwa kukadoti nokusebenzisa i-LLVM ukuze kukhiqizwe ikhodi ephumelelayo esikhundleni sokuyihlanganisa isethulo sika-C. I-Tinygo iphinde inikeze ngelabhulali entsha yesikhathi sokusebenza esebenzisa isihleli, isistimu yokwaba inkumbulo, nezibambi zezintambo ezithuthukiselwe amasistimu ahlangene. Amanye amaphakheji, afana nokuvumelanisa nokubonisa, adalwe kabusha ngokusekelwe esikhathini esisha sokusebenza.

    Phakathi kwezinguquko ekukhishweni okungu-0.7 ukusetshenziswa komyalo “wokuhlolwa kwe-tinygo”, ukuhlinzekwa kokusekelwa kokuqoqwa kukadoti kumabhodi amaningi okuqondiwe (okusekelwe ku-ARM Cortex-M) kanye ne-WebAssembly, ukusekelwa kwebhodi le-HiFive1 rev B elisekelwe ku-RISC- V architecture kanye nebhodi le-Arduino nano33,
    ukusekelwa kolimi okuthuthukisiwe (ukusekelwa kwezinkambu ezincane kusetshenziswa ama-getters nama-setter, ukusekelwa kwezakhiwo ezingaziwa).

    Source: opennet.ru

  • Engeza amazwana