Zum Hauptinhalt Zur Navigation Zur Suche

LLILC: Microsoft veröffentlicht LLVM-basierten Compiler für .NET

Mit LLILC entsteht ein neuer Compiler für .Net auf der Basis von LLVM. Aktuelle Compiler soll das Projekt zunächst nicht ersetzen. Außerdem stehen die Arbeiten erst am Anfang.
/ Sebastian Grüner
1 Kommentare Auf Google folgen (öffnet im neuen Fenster)
Die JIT-Architektur von LLILC (Bild: Microsoft)
Die JIT-Architektur von LLILC Bild: Microsoft

Quellcode, der das .Net-Framework verwendet, wird üblicherweise erst in eine Zwischensprache(öffnet im neuen Fenster) übersetzt, dann mit Hilfe der Common Language Runtime (CLR) in Maschinensprache übertragen und ausgeführt. Alternativ zu dem bisherigen RyuJIT der CLR stellt Microsoft nun mit LLILC Werkzeuge bereit, die ähnliche Aufgaben erfüllen, aber auf LLVM basieren.

In der Ankündigung(öffnet im neuen Fenster) des Microsoft-Angestellten Russell Hadley heißt es, mit LLILC sollten die Möglichkeiten getestet werden, die ein neuer Code-Generator auf Basis von LLVM bietet. Das gelte insbesondere für die Möglichkeit zur Portierung auf neue Architekturen und Betriebssysteme. Derzeit enthält LLILC einen JIT-Compiler(öffnet im neuen Fenster), der mit der CLR des neuen .Net Core genutzt werden kann.

Geplant ist darüber hinaus ein Ahead-of-Time-Compiler(öffnet im neuen Fenster), der die Codeerzeugung zur Laufzeit und das Erstellen nativer Binärdateien erlauben soll. Letzteres erinnert vor allem an .Net Native(öffnet im neuen Fenster), das 2014 vorgestellt wurde. In einem FAQ(öffnet im neuen Fenster) schreiben die Entwickler, dass LLILC als Compiler für .Net Native genutzt werden könne, um andere Systeme als Windows zu unterstützen.

Das Projekt steht den Angaben zufolge erst am Anfang. Zwar hätten die ersten Schritte sehr schnell umgesetzt werden können, doch das Team müsse für eine bessere Unterstützung noch einige Bestandteile an LLVM anpassen oder hinzufügen. In ersten Experimenten konnten dennoch bereits rund 90 Prozent der Tests in der CoreCLR erfolgreich kompiliert werden. Für den Rest müsse aber weiter RyuJIT verwendet werden.

Der Code steht unter MIT-Lizenz auf Github(öffnet im neuen Fenster) bereit. Dort findet sich auch eine recht ausführliche Liste(öffnet im neuen Fenster) mit Arbeitsbereichen, die als Einstieg für externe Entwickler gedacht sind.


Relevante Themen