Veröffentlichung von Tinygo 0.34, einem Compiler der Programmiersprache Go basierend auf LLVM

Die Veröffentlichung des Projekts Tinygo 0.34, das einen Compiler der Programmiersprache Go für ressourcenarme Systeme wie Mikrocontroller und eingebettete Geräte entwickelt, die eine sehr kompakte Erstellung von ausführbaren Dateien und einen geringen Ressourcenverbrauch erfordern. Die Kompilierung für unterstützte Zielplattformen erfolgt in Tinygo mithilfe von LLVM, während die Funktionsbibliotheken aus dem Hauptwerkzeug des Go-Projekts entnommen werden. Der Code wird unter der BSD-Lizenz verbreitet.

Das kompilierte Programm kann direkt auf Mikrocontrollern ausgeführt werden, was es ermöglicht, ein Subset der Programmiersprache Go zur Erstellung von Automatisierungsskripten zu verwenden. Derzeit werden über einhundert Modelle von Mikrocontrollern unterstützt, darunter verschiedene Adafruit-Platinen, Arduino, BBC micro, ESP32, M5Stack, ST Micro, Digispark, Raspberry Pi Pico, Nordic Semiconductor, SiFive HiFive1, STM32, Makerdiary und Phytec. Für die Interaktion mit Sensoren und angeschlossenen externen Geräten sowie zur Unterstützung von Schnittstellen wie I2C, GPIO und SPI stehen spezielle Treiber zur Verfügung.

Im Gegensatz zum ähnlichen Compiler emgo, der in den letzten drei Jahren nicht aktualisiert wurde, behält tinygo das ursprüngliche Speicherverwaltungskonzept von Go bei, indem ein Garbage Collector verwendet wird. Anstelle einer Kompilierung in C-Code wird LLVM zur Generierung effizienter Maschinencodes eingesetzt. Bestehender Go-Code kann unverändert verwendet werden, ebenso wie ein Großteil der Standardpakete. Neben der Generierung von Maschinencode unterstützt tinygo auch die Erstellung von WebAssembly mit der Möglichkeit, eigenständige WebAssembly-Anwendungen unter Verwendung des WASI (WebAssembly System Interface) zu entwickeln.

In der neuen Version wird die Unterstützung für die MIPS-Architektur mit Big-Endian-Byte-Reihenfolge eingeführt, sowie die Unterstützung für die RAKwireless RAK4631-Platine und das WaveShare ESP-C3-32S-Kit. Zur Exportierung von WebAssembly-Funktionen wurde die Direktive „//go:wasmexport“ hinzugefügt. Die Leistung des Garbage Collectors wurde optimiert. Neue Befehlszeilenoptionen „-C DIR“ und „-ldflags='-extldflags=…'“ wurden hinzugefügt.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster