Clang: Bibliothek Cosmopolitan erreicht Version 1.0

Die Bibliothek macht C-Anwendungen portabel und gilt mit Freigabe des ersten Major Release als stabil.

In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen

(Bild: Blackboard/Shutterstock.com)

Lesezeit: 2 Min.
Von
  • Madeleine Domogalla

Die Bibliothek Cosmopolitan liegt in Version 1.0 vor. Damit hat sie einen wichtigen Meilenstein erreicht, da ein 1.0-Release üblicherweise umfassende Projektstabilität signalisiert. Cosmopolitan Libc ist auf die Programmiersprache C ausgelegt und soll aus ihr eine "build-once run-anywhere"-Sprache machen – in Anlehnung an Java. Das Tool benötigt jedoch keinen Interpreter und auch keine virtuelle Maschine (VM).

Cosmopolitan passt die GNU Compiler Collection (GCC) und Clang so an, dass sie ein vom Portable Operating System Interface (POSIX) zugelassenes polyglottes Format ausgeben, das nativ auf Linux, Mac, Windows, FreeBSD, OpenBSD, NetBSD und BIOS läuft. Dabei bringt das Tool offenbar gute Leistung bei kleinstmöglichem Platzbedarf.

Das Entwicklerteam hinter Cosmopolitan hat daran gearbeitet, APE-Binärdateien in die Lage zu versetzen, ihren eigenen ZIP-Inhalt ändern zu können. APE steht für Actually Portable Executable. Darüber hinaus geben System Calls ab sofort einen EFAULT-Fehler im ASan-Modus (AddressSanitizer) zurück, wenn der Speicher ungültig ist. Cosmopolitan 1.0 hat zudem die Funktionen Sendmsg und Recvmsg im Gepäck. Die LaunchBrowser API wurde zum Webserver redbean hinzugefügt und die breite Zeichenklassifizierung unterstützt jetzt Unicode. Zudem bringt die erste Major-Version Überarbeitungen hinsichtlich der Abwärtskompatibilität zu GNU Make.

Das verantwortliche Entwicklerteam verspricht die gleichen Portabilitätsvorteile wie bei den Programmiersprachen Go und Rust. Cosmopolitan erfinde jedoch keine neue Sprache und Nutzerinnen und Nutzer sind nicht auf die Konfiguration eines CI-Systems angewiesen, um separate Binärdateien für jedes Betriebssystem erstellen zu können. Das Tool soll die Programmiersprache C "reparieren", indem es sie von den Plattformen entkoppelt. Nähere Informationen zu Cosmopolitan finden sich in den Release Notes auf GitHub, in einem separaten Beitrag sowie in der Dokumentation.

(mdo)