Doli Tinygo 0.40, kompileri për gjuhën Go

ËshtĂ« publikuar versioni i projektit Tinygo 0.40, qĂ« zhvillon njĂ« kompilator pĂ«r gjuhĂ«n Go. Kompilatori Ă«shtĂ« i pĂ«rshtatshĂ«m pĂ«r tĂ« gjeneruar skedarĂ« ekzekutivĂ« kompaktĂ« pĂ«r sisteme me energji tĂ« ulĂ«t, si mikrokontrollerĂ«t dhe pajisjet e integruara, pĂ«r tĂ« cilat programet duhet tĂ« konsumojnĂ« sa mĂ« pak memorie dhe burime llogaritĂ«se. Kompilimi pĂ«r platformat pĂ«rkatĂ«se mbĂ«shtetet nĂ« LLVM, ndĂ«rsa bibliotekat e funksioneve janĂ« marrĂ« nga instrumenti kryesor i projektit Go. Kodin e shpĂ«rndajnĂ« nĂ«n licencĂ«n BSD.

Programi i kompiluar mund të ekzekutohet drejtpërdrejt në mikrokontrollerë, duke lejuar përdorimin e një nënseti të gjuhës Go për shkruarjen e skenarëve të automatizimit. Mbështeten më shumë se njëqind modele mikrokontrollerësh, përfshirë platformat e ndryshme 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 të interface-ve si I2C, GPIO dhe SPI, ofrohen driverë të veçantë.

Ndryshe nga kompajleri i ngjashëm emgo, i cili nuk është përditësuar në katër vitet e fundit, në tinygo është ruajtur modeli origjinal i menaxhimit të memories Go duke përdorur mbledhësin e plehrave, dhe në vend të kompilimit në një përfaqësim në gjuhën C, është angazhuar LLVM për gjenerimin e drejtpërdrejtë të kodit makinerik. Në programet mund të përdoret pa ndryshime kodi tipik ekzistues në gjuhën Go, si dhe pjesa më e madhe e paketave standarde. Përveç gjenerimit të kodit makinerik, në tinygo është e disponueshme mbështetja për formimin e bytecode WebAssembly me mundësinë e krijimit të aplikacioneve të veçanta WebAssembly duke përdorur ndërfaqen WASI (WebAssembly System Interface).

Në këtë version të ri:

  • JanĂ« bĂ«rĂ« optimizime nĂ« mbledhĂ«sin e plehrave. Rritja e performancĂ«s arriti deri nĂ« 10%.
  • ËshtĂ« realizuar mbĂ«shtetje pĂ«r mjetin LLVM 20.
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r platformĂ«n ESP32-S3, si dhe pĂ«r bordet Xiao ESP32-S3, Gopher ARCADE dhe Pico2-Ice.
  • ËshtĂ« shtuar flagu go-compatibility dhe variabla e ambientit TINYGO_GOCOMPATIBILITY pĂ«r tĂ« çaktivizuar kontrollin e pĂ«rputhshmĂ«risĂ« me versionin e shpallur tĂ« gjuhĂ«s Go.
  • PĂ«r variable dhe funksione globale Ă«shtĂ« pĂ«rfshirĂ« pragma "//go:linkname" pĂ«rveç "//go:extern".
  • Compileri tani ka mundĂ«si pĂ«r tĂ« shĂ«nuar parametrat string si tĂ« disponueshĂ«m vetĂ«m pĂ«r lexim.
  • PĂ«r tĂ« identifikuar ciklet me thirrje tĂ« vonuara (me operatorin defer), nĂ« compiler Ă«shtĂ« pĂ«rdorur algoritmi i kĂ«rkimit tĂ« komponentĂ«ve tĂ« lidhur ngushtĂ« Tarjan.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster