Tinygo 0.7.0, LLVM-pÔhise Go kompilaatori vÀljalase

Saadaval projekti vĂ€ljalase Tinygo 0.7.0, mis arendab Go keele kompilaatorit valdkondade jaoks, mis nĂ”uavad saadud koodi kompaktset esitust ja vĂ€hest ressursikulu, nagu mikrokontrollerid ja kompaktsed ĂŒhe protsessoriga sĂŒsteemid. Kood jaotatud BSD litsentsi alusel.

Erinevate sihtplatvormide kompileerimine toimub LLVM-i abil ja keele toetamiseks kasutatakse Go projekti pÔhitööriistakomplektis kasutatavaid teeke. Koostatud programmi saab otse mikrokontrolleritel kÀivitada, vÔimaldades Go-d kasutada automatiseerimisskriptide kirjutamise keelena.

Uue projekti loomise ajendiks oli soov kasutada kompaktsetes seadmetes tuttavat Go keelt - arendajad pÔhjendasid, et kui mikrokontrolleritele oli Pythoni versioon, siis miks mitte luua samasugune ka Go keele jaoks. Mine valitud Rusti asemel, sest seda on lihtsam Ôppida, see pakub lÔimest sÔltumatut tuge korutiinipÔhiseks paralleelstamiseks ja pakub ulatuslikku standardteeki ("kaasas akud").

Praegu toetatakse 15 mikrokontrolleri mudelit, sealhulgas mitmesuguseid Adafruiti, Arduino, BBC micro:biti, ST Micro, Digisparki, Nordic Semiconductori, Makerdiary ja Phyteci plaate. Programme saab kompileerida ka brauseris kÀivitamiseks WebAssembly vormingus ja kÀivitatavate failidena. LinuxESP8266/ESP32 kontrollerite tugi Mitte veel, kuid töötatakse vÀlja eraldi projekt, et lisada tugi LLVM-is Xtensa kiibile, mis on endiselt mÀrgitud ebastabiilseks ega ole valmis TinyGoga integreerimiseks.

Projekti peamised eesmÀrgid:

  • VĂ€ga kompaktsete kĂ€ivitatavate failide genereerimine;
  • Mikrokontrolleriplaatide levinumate mudelite tugi;
  • Rakenduse vĂ”imalus veebis;
  • CGo tugi minimaalse ĂŒldkuluga funktsioonide C-s helistamisel;
  • Enamiku standardpakettide tugi ja vĂ”imalus kompileerida standardset olemasolevat koodi ilma seda muutmata.

    Mitmetuumaliste sĂŒsteemide toetamine ei kuulu peamiste eesmĂ€rkide hulka,
    tohutu hulga korutiinide tĂ”hus kĂ€ivitamine (korutiinide kĂ€ivitamine ise on tĂ€ielikult toetatud), etalonkompilaatori gc jĂ”udlustaseme saavutamine (optimeerimine on jĂ€etud LLVM-i hooleks ja mĂ”nes rakenduses vĂ”ib Tinygo olla kiirem kui gc) ja lĂ”petamine ĂŒhilduvus kĂ”igi Go rakendustega.

    Peamine erinevus sarnasest kompilaatorist emgo on katse sĂ€ilitada Go algne mĂ€luhaldusmudel, kasutades prĂŒgikogumist ja kasutada LLVM-i tĂ”husa koodi genereerimiseks, selle asemel et kompileerida see C-esitusse. Tinygo pakub ka uut kĂ€itusaja teeki, mis rakendab kompaktsete sĂŒsteemide jaoks optimeeritud planeerijat, mĂ€lujaotussĂŒsteemi ja stringikĂ€sitlejaid. MĂ”ned paketid, nagu sĂŒnkroonimine ja peegeldamine, on uue kĂ€itusaja pĂ”hjal uuesti loodud.

    VĂ€ljalaske 0.7 muudatuste hulgas on kĂ€su "tinygo test" rakendamine, prĂŒgikoristustoe pakkumine enamikule sihtplaatidele (ARM Cortex-M baasil) ja WebAssembly, tugi RISC-pĂ”hisele HiFive1 rev B plaadile. V arhitektuur ja Arduino nano33 plaat,
    tĂ€iustatud keeletugi (tugi bitivĂ€ljadele, kasutades gettereid ja settereid, tugi anonĂŒĂŒmsetele struktuuridele).

    Allikas: opennet.ru

  • Ostke DDoS-kaitsega saitide jaoks usaldusvÀÀrne hostimine, VPS VDS-serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega, VPS VDS serverid | ProHoster