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

Iyafumaneka ukukhutshwa kweprojekthi I-Tinygo 0.7.0, ephuhlisa i-Go language compiler kwimimandla efuna ukubonakaliswa okuhlangeneyo kwekhowudi yesiphumo kunye nokusetyenziswa kwemithombo ephantsi, efana ne-microcontrollers kunye ne-compact single-processor systems. Ikhowudi isasazwa ngu phantsi kwelayisensi ye-BSD.

Ukuqulunqwa kwamaqonga ahlukeneyo ekujoliswe kuwo kuphunyezwa kusetyenziswa i-LLVM, kwaye amathala eencwadi asetyenziswa kwizixhobo eziphambili ezivela kwiprojekthi yeGo asetyenziselwa ukuxhasa ulwimi. Inkqubo ehlanganisiweyo inokuqhutywa ngokuthe ngqo kwi-microcontrollers, ivumela i-Go isetyenziswe njengolwimi lokubhala izikripthi ezizenzekelayo.

Inkuthazo yokudala iprojekthi entsha yayingumnqweno wokusebenzisa ulwimi oluqhelekileyo lweGo kwizixhobo ezixineneyo - abaphuhlisi baqiqa ngelokuba ukuba kukho inguqulelo yePython yee-microcontrollers, kutheni ungadali efanayo yolwimi lwesiGo. Hamba kukhethwe endaweni yeRust kuba kulula ukuyifunda, ibonelela ngenkxaso engaxhomekekanga kumsonto kwi-parallelization-based coroutine, kwaye inikezela ngethala leencwadi eliqhelekileyo elibanzi ("ibhetri zibandakanyiwe").

Kwifom yayo yangoku, iimodeli ze-microcontroller ze-15 zixhaswa, kubandakanywa iibhodi ezahlukeneyo ze-Adafruit, i-Arduino, i-BBC micro: bit, i-ST Micro, i-Digispark, i-Nordic Semiconductor, i-Makerdiary kunye ne-Phytec. Iinkqubo zinokuqulunqwa ukuze ziqhube kwisikhangeli kwifomathi yeWebAssembly kunye neefayile eziphunyezwayo zeLinux. Ixhasa abalawuli be-ESP8266/ESP32 Ayikenzeki, kodwa iprojekthi eyahlukileyo iyaphuhliswa ukongeza inkxaso yechip ye-Xtensa kwi-LLVM, esaphawulwe njengengazinzanga nengekakulungeli ukudityaniswa ne-TinyGo.

Iinjongo zeprojekthi eziphambili:

  • Ukuveliswa kweefayile ezisebenzisekayo ezihlangeneyo;
  • Inkxaso yeemodeli eziqhelekileyo zeebhodi ze-microcontroller;
  • Ukubanakho kwesicelo kwiWebhu;
  • Inkxaso ye-CGo enentloko encinci xa ufowunela imisebenzi kwi-C;
  • Inkxaso yeepakethe ezininzi ezisemgangathweni kunye nokukwazi ukuqokelela ikhowudi ekhoyo esemgangathweni ngaphandle kokuyitshintsha.

    Inkxaso yeenkqubo ezininzi ezingundoqo ayikho phakathi kweenjongo eziphambili,
    ukuqaliswa okusebenzayo kwenani elikhulu lee-coroutines (ukuqaliswa kwee-coroutines ngokwazo kuxhaswa ngokupheleleyo), ukufezekiswa komgangatho wokusebenza we-reference compiler i-gc (ukulungiswa kushiywe kwi-LLVM kwaye kwezinye izicelo i-Tinygo inokukhawuleza kune-gc) kwaye igqibe. ukuhambelana nazo zonke Go izicelo.

    Umahluko ophambili ukusuka kumqokeleli ofanayo emgo yinzame yokugcina imodeli yoqobo yolawulo lwememori ye-Go usebenzisa ingqokelela yenkunkuma kwaye usebenzise i-LLVM ukuvelisa ikhowudi esebenzayo endaweni yokuyihlanganisa kumelo lwe-C. I-Tinygo ikwabonelela ngethala leencwadi elitsha lexesha lokusebenza eliphumeza umcwangcisi, inkqubo yokwabiwa kwememori, kunye nabaphangi beentambo ezilungiselelwe iinkqubo ezixineneyo. Ezinye iipakethe, ezifana nongqamaniso kunye nomboniso, zenziwe kwakhona ngokusekelwe kwixesha elitsha lokuqhutywa.

    Phakathi kweenguqu ekukhutshweni kwe-0.7 kukuphunyezwa komyalelo "wovavanyo lwe-tinygo", ukunikezelwa kwenkxaso yokuqokelela inkunkuma kwiibhodi ezininzi ezijoliswe kuyo (ezisekelwe kwi-ARM Cortex-M) kunye ne-WebAssembly, inkxaso ye-HiFive1 rev B ibhodi esekelwe kwi-RISC- Uyilo lweV kunye nebhodi yeArduino nano33,
    ukuphuculwa kwenkxaso yolwimi (inkxaso yeenkalo zebit kusetyenziswa ii-getters kunye neeseta, inkxaso yezakhiwo ezingaziwa).

    umthombo: opennet.ru

  • Yongeza izimvo