Udgivet Tinygo 0.32, en Go-kompiler baseret på LLVM

Tinygo 0.32 er nu tilgængelig og udvikler en Go-kompiler til applikationer, der kræver kompakt outputkode og lavt ressourceforbrug, såsom mikrocontrollere og kompakte enkeltprocessorsystemer. Kompilering til forskellige målplatforme er implementeret ved hjælp af LLVM, og biblioteker, der bruges i hovedværktøjssættet fra Go-projektet, bruges til at understøtte sproget. Koden distribueres under BSD-licensen.

Det kompilerede program kan køres direkte på mikrocontrollere, hvilket gør det muligt at bruge Go som et sprog til at skrive automatiseringsscripts. I sin nuværende form understøttes mere end hundrede modeller af mikrocontrollere, herunder forskellige Adafruit, Arduino, BBC micro, ESP32, M5Stack, ST Micro, Digispark, Raspberry Pi Pico, Nordic Semiconductor, SiFive HiFive1, STM32, Makerdiary og Phytec boards. Der leveres specielle drivere til at interagere med sensorer og tilsluttede eksterne enheder, samt til at understøtte grænseflader såsom I2C, GPIO og SPI.

Programmer kan også kompileres i WebAssembly-format (wasm/wasi) til at køre i en browser og som eksekverbare filer til Linux.

Hovedprojektmål:

  • Muligheden for at bruge en delmængde af Go-sproget, som du kender på kompakte enheder. Go blev valgt frem for Rust, fordi det er nemmere at lære, giver tråduafhængig support til coroutine-baseret parallelisering og tilbyder et omfattende standardbibliotek (batterier inkluderet).
  • Genererer meget kompakte eksekverbare filer.
  • Understøtter de mest almindelige modeller af mikrocontrollerkort.
  • Muligheden for at bruge det til internettet og oprette selvstændige WebAssembly-applikationer ved hjælp af WASI-grænsefladen (WebAssembly System Interface) til at arbejde med filer, sockets og andre funktioner leveret af operativsystemet.
  • CGo-understøttelse med minimal overhead ved opkald til C-funktioner.
  • Understøttelse af de fleste standardpakker og mulighed for at kompilere eksisterende standardkode uden at ændre den.
  • I modsætning til den forladte lignende emgo-kompiler, beholder Tinygo Go's originale hukommelseshåndteringsmodel for skraldopsamler og i stedet for at kompilere til en C-repræsentation, bruger han LLVM til at generere effektiv maskinkode.

Den nye version tilføjer understøttelse af Pico W, Adafruit ESP32 Feather V2, M5 Paper, PCA10059, stm32 nucleol476rg og Pimoroni Badger2040-W boards og chips. Kompatibilitet med LLVM 18 er blevet sikret Muligheden for at bruge mellemrum i drevnavne i UF2-format er blevet implementeret. I32C-busunderstøttelse er blevet tilføjet til esp2-platformen. WebAssembly support er blevet udvidet.

Kilde: opennet.ru

Køb pålidelig hosting til websteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster