Avaldatud Tinygo 0.32, Go keele kompilaator LLVM baasil.

Ilmunen Tinygo 0.32 versioon, mis arendab Go keele kompilaatorit valdkondades, kus on vajalik lähtekoodi kompaktne esitamine ja madalressursitarbimine, näiteks mikrokontrollerid ja kompaktsed üheprotsessorilised süsteemid. Erinevatele sihtplatvormidele kompileerimine on teostatud LLVM abil ning keele toetamiseks kasutatakse peamiseks tööriistade komplektiks Go projekti raamatukogusid. Kood on litsentsitud BSD all.

Kompileeritud programm saab käivituda otse mikrokontrolleritel, võimaldades Go-d kasutada automatiseerimisskripti kirjutamise keeleks. Praeguses versioonis toetatakse üle saja mikrokontrolleri mudeli, sealhulgas erinevad Adafruit, Arduino, BBC micro, ESP32, M5Stack, ST Micro, Digispark, Raspberry Pi Pico, Nordic Semiconductor, SiFive HiFive1, STM32, Makerdiary ja Phytec. Anduritega ja välisseadmetega suhtlemiseks, samuti selliste liidesete nagu I2C, GPIO ja SPI toe tagamiseks on saadaval spetsiaalsed draiverid.

Programmid võivad samuti olla kokku pandud WebAssembly (wasm/wasi) formaati, et käivituda brauseris, ja teostusfailidena Linuxile.

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 lisatud tugi Pico W, Adafruit ESP32 Feather V2, M5 Paper, PCA10059, stm32 nucleol476rg ja Pimoroni Badger2040-W plaatidele ja kiipidele. Tagatud on ühilduvus LLVM 18-ga. On rakendatud võimalus kasutada ruume salvestite nimedes UF2 formaadis. ESP32 platvormi jaoks on lisatud I2C bussitugi. WebAssembly toimet on laiendatud.

Allikas: opennet.ru

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