Original-URL des Artikels: https://www.golem.de/news/llilc-microsoft-veroeffentlicht-llvm-basierten-compiler-fuer-net-1504-113488.html    Veröffentlicht: 14.04.2015 14:57    Kurz-URL: https://glm.io/113488

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.

Quellcode, der das .Net-Framework verwendet, wird üblicherweise erst in eine Zwischensprache ü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 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, der mit der CLR des neuen .Net Core genutzt werden kann.

Geplant ist darüber hinaus ein Ahead-of-Time-Compiler, der die Codeerzeugung zur Laufzeit und das Erstellen nativer Binärdateien erlauben soll. Letzteres erinnert vor allem an .Net Native, das 2014 vorgestellt wurde. In einem FAQ 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 bereit. Dort findet sich auch eine recht ausführliche Liste mit Arbeitsbereichen, die als Einstieg für externe Entwickler gedacht sind.  (sg)


Verwandte Artikel:
.Net-Framework: Mono-Projekt integriert freien Microsoft-Code   
(07.04.2015, https://glm.io/113347 )
Finspy: Neuer Staatstrojaner-Exploit in RTF-Dokument gefunden   
(13.09.2017, https://glm.io/130025 )
Microsoft: .Net Core 2.0 erleichtert Portierungen   
(15.08.2017, https://glm.io/129489 )
ASP.Net Core 2.0: Microsoft verärgert .Net-Entwickler mit Support-Entscheidung   
(09.05.2017, https://glm.io/127712 )
LLVM 6.0: Clang bekommt Maßnahme gegen Spectre-Angriff   
(09.03.2018, https://glm.io/133241 )

© 1997–2019 Golem.de, https://www.golem.de/