Versioni i projektit Tinygo 0.28 është në dispozicion, e cila zhvillon kompilatorin e gjuhës Go për fusha ku kërkohet një përfaqësim kompakt i kodit të rezultatit dhe konsum të ulët të burimeve, siç janë mikro-kontrollorët dhe sistemet kompakt të një procesori. Kompilimi për platforma të ndryshme të caktohet përmes LLVM, dhe për mbështetje të gjuhës përdoren bibliotekat e aplikuara gjithashtu në mjetet kryesore nga projekti Go. Kodi shpërndahet nën licencën BSD.
Programi i kompjuterizuar mund të ekzekutohet drejtpërdrejt në mikro-kontrollorë, duke lejuar që Go të përdoret si gjuhë për të shkruar skripte automatizimi. Në formën aktuale, mbështeten 94 modele mikro-kontrollorësh, duke përfshirë të ndryshmet plaka Adafruit, Arduino, BBC micro, ESP32, M5Stack, ST Micro, Digispark, Raspberry Pi Pico, Nordic Semiconductor, SiFive HiFive1, STM32, Makerdiary dhe Phytec. Për ndërveprimin me sensorët dhe pajisjet e jashtme të lidhura, si dhe për mbështetje për ndërfaqe si I2C, GPIO dhe SPI, ofrohen shoferë specialë. Programet gjithashtu mund të ndërlidhen në formatin WebAssembly (wasm/wasi) për t'u ekzekutuar në shfletues dhe si skedarë ekzekutivë 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, mbĂ«shtetja e reflektimeve Ă«shtĂ« pĂ«rmirĂ«suar ndjeshĂ«m dhe Ă«shtĂ« ofruar njĂ« implementim i vetĂ« bibliotekĂ«s reflect, qĂ« lejon arritjen e kompatibilitetit me shumĂ« paketa nga biblioteka standarde, me tĂ« cilat mĂ« parĂ« kishte probleme. PĂ«r mĂ« tepĂ«r, nĂ« versionin e ri Ă«shtĂ« shtuar mbĂ«shtetja e drejtorisĂ« "//go:wasmimport emri_i_modulit emri_i_funksionit" pĂ«r importimin e funksioneve nga WebAssembly. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r bordet e reja, siç Ă«shtĂ« bordi Gopher Badge.
Burimi: opennet.ru
