Doli për versionin e projektit Tinygo 0.32, një kompilator për gjuhën Go i dizajnuar për fusha ku kërkohet një përfaqësim kompakt i kodit përfundimtar dhe konsum i ulët i burimeve, si mikro-kontrolerët dhe sistemet e vogla me një procesor. Kompilimi për platforma të ndryshme të synuara arrihet nëpërmjet LLVM, dhe përkrahja e gjuhës realizohet me biblioteka që përdoren kryesisht në mjetet e projektit Go. Kodi shpërndahet nën licencën BSD.
Programi i kompiliuar mund të ekzekutohet drejtpërdrejt në mikro-kontrolerë, duke lejuar përdorimin e Go si gjuhë për shkruajtur skriptet për automatizim. Në formën aktuale, mbështetet më shumë se njëqind modele mikro-kontrolerësh, duke përfshirë bordet e ndryshme Adafruit, Arduino, BBC micro, ESP32, M5Stack, ST Micro, Digispark, Raspberry Pi Pico, Nordic Semiconductor, SiFive HiFive1, STM32, Makerdiary dhe Phytec. Për t'u lidhur me sensorët dhe pajisjet e jashtme, si dhe për mbështetje të interfeseve të tilla si I2C, GPIO dhe SPI, ofrohen drejtues specialë.
Programet gjithashtu mund të kompilohen në formatin WebAssembly (wasm/wasi) për të qenë të ekzekutueshme në shfletues dhe si skedarë ekzekutues për Linux.
Qëllimet kryesore të projektit:
- Mundësia për të përdorur një nëngrup të gjuhës Go që e njihni në pajisje të vogla. Gjuha Go është zgjedhur mbi Rust, sepse është më e lehtë për t'u mësuar, ofron mbështetje të pavarur nga realizimet për paralelizimin duke përdorur korutina dhe ofron një bibliotekë standarde të gjerë ("bateritë vijnë me paketë").
- Krijimi i skedarëve ekzekutivë shumë kompaktë.
- Mbështetje për modelet më të zakonshme të bordeve të mikroprocesorëve.
- Mundësia për përdorim në Web dhe krijimin e aplikacioneve të veçuara WebAssembly, duke përdorur ndërfaqen WASI (WebAssembly System Interface) për të punuar me skedarë, socket dhe funksione të tjera që ofrohen nga sistemi operativ.
- MbĂ«shtetje pĂ«r CGo me kosto minimale nĂ« thirrjet e funksioneve nĂ« gjuhĂ«n Ă.
- Mbështetje për shumicën e paketeve standarde dhe mundësia për kompaktimin e kodit ekzistues pa e ndryshuar atë.
- Ndryshe nga kompajleri emgo në gjendje të braktisur, Tinygo ruan modelin origjinal të menaxhimit të memories Go me përdorimin e mbledhësit të plehrave dhe në vend të përkthimit në një përfaqësim në gjuhën C, përdor LLVM për të gjeneruar kod mahnitës të makinerisë.
NĂ« versionin e ri Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r kartat dhe çipat Pico W, Adafruit ESP32 Feather V2, M5 Paper, PCA10059, stm32 nucleol476rg dhe Pimoroni Badger2040-W. ĂshtĂ« siguruar kompatibiliteti me LLVM 18. ĂshtĂ« realizuar mundĂ«sia pĂ«r tĂ« pĂ«rdorur hapĂ«sira nĂ« emrat e pajisjeve nĂ« formatin UF2. PĂ«r platformĂ«n esp32 Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r autobusin I2C. ĂshtĂ« zgjeruar mbĂ«shtetja pĂ«r WebAssembly.
Burimi: opennet.ru
