Release of Tinygo 0.28, a Go language compiler based on LLVM

Väljaanne Tinygo 0.28 on nüüd saadaval, arendades Go keele kompilaatorit valdkondades, kus on vajalik kompaktne lõpukoodi esitamine ja madal ressursikasutus, näiteks mikrokontrollerite ja kompaktsete üheahelaliste süsteemide jaoks. Erinevate sihtplatvormide jaoks toimub kompileerimine LLVM-i abil ning keele toetamiseks kasutatakse Go projekti peamiselt tööriistade seadmeid. Kood levitatakse BSD litsentsi alusel.

Kompileeritud programm saab otse töötada mikrokontrollerites, mis võimaldab Go-d kasutada automatiseerimise skripti kirjutamise keelenä. Praegu toetatakse 94 mudelit mikrokontrolleritest, sealhulgas erinevaid Adafruit ja Arduino plaate, BBC micro, ESP32, M5Stack, ST Micro, Digispark, Raspberry Pi Pico, Nordic Semiconductor, SiFive HiFive1, STM32, Makerdiary ja Phytec. Sensorite ja ühendatud välisseadmetega suhtlemiseks ning I2C, GPIO ja SPI liideste toetamiseks pakutakse spetsiaalseid draivereid. Programme saab ka kokku panna WebAssembly (wasm/wasi) formaadis brauseris käitamiseks ja Linuxi täitmist failideks.

Projekti peamised eesmärgid:

  • Võimalus kasutada tuttavat Go keele alamsüsteemi kompaktsetes seadmetes. Go keel on valitud Rusti asemel, kuna see on lihtsam õppida, pakub rakendustele sõltumatult vooge toetavat koostööd ja omab ulatuslikku standardteeki ("aku on kaasas").
  • Äärmiselt kompaktsete täitmisfailide genereerimine.
  • Tugi kõige levinumatele mikroprotsessorite mudelitele.
  • Võimalus rakendada Webi ja luua iseseisvaid WebAssembly rakendusi, kasutades WASI (WebAssembly System Interface) liidest failide, sokettide ja teiste operatsioonisüsteemi pakutavate funktsioonide haldamiseks.
  • CGo toe minimaalsete kuludega C keeles funktsioonide kutsumisel.
  • Enamik standardpakettide toetamine ja võimalus kompilatsiooniks olemasoleva koodi muutmata.
  • Erinevalt nüüdseks mahajäetud sarnastest kompilaatoritest, on Tinygo-s säilinud Go algne mäluhaldusmudel, kasutades jäätmete kogumise süsteemi, ning LLVM-d efektiivse masina koodi genereerimiseks C keeles esitusvormingus kompileerimise asemel.

Uues versioonis on oluliselt parandatud peegelduste tuge ja pakutakse välja oma rakendus reflecti raamatukogust, mis võimaldas saavutada ühilduvust paljude standardraamatukogudega, millega olid varem probleemid. Lisaks on uues versioonis lisatud toetust direktiivile „//go:wasmimport module_nimi funktsiooni_nimi“ funktsioonide importimiseks WebAssembly'st. Uued plaadid, näiteks Gopher Badge, on samuti toetatud.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster