Zum Hauptinhalt Zur Navigation Zur Suche

LLGO: Go-Compiler auf Basis von LLVM

Der auf LLVM basierende Go-Compiler LLGo soll offiziell Teil des Compiler-Projekts werden. Damit könnten Programmierer für die Sprache drei Compiler mit jeweils unterschiedlichen Grundlagen verwenden.
/ Sebastian Grüner
Kommentare undefined News folgen (öffnet im neuen Fenster)
Gopher - das Maskottchen von Go (Bild: golang.org)
Gopher - das Maskottchen von Go Bild: golang.org

Mit LLGo(öffnet im neuen Fenster) könnte demnächst offiziell ein LLVM-Frontend als Compiler für die Programmiersprache Go bereitstehen. Das schlägt zumindest Peter Collingbourne vor(öffnet im neuen Fenster) , einer der Hauptentwickler von LLGo. Demnach soll der bisher extern gepflegte und auf LLVM aufbauende Code Bestandteil des Compiler-Projektes werden, sofern die notwendige Zustimmung dafür vorhanden ist.

Dem steht im Prinzip nichts entgegen, wie der LLVM-Gründer und Apple-Angestellte Chris Lattner mitteilt,(öffnet im neuen Fenster) der die Aufnahme des neuen Compilers in das Projekt befürwortet. Lediglich einige ursprünglich unter der GPL lizenzierten Bestandteile des Codes sollten ordnungsgemäß reimplementiert werden, um eine versehentliche Verwendung unter allen Umständen zu vermeiden.

Doch wie Collingbourne bereits in seiner ersten E-Mail erklärt, hat er die Erlaubnis aller Beitragenden, den Code vollständig unter eine eventuell neue Lizenz zu stellen. Entsprechend dem Code-Verzeichnis verwendet das Projekt derzeit die MIT-Lizenz, lediglich die aus dem Original-Go-Code übernommenen Dateien stehen unter der von Google für die Sprache benutzten BSD-Lizenz oder der GPL. Die Bedenken Lattners beziehen sich also auf jene aus externen Quellen eingebundenen Bibliotheken, die die Autoren von LLGo aber tatsächlich neu schreiben wollen, um der Lizenzproblematik gerecht zu werden.

Ziel ist es, das in Go geschriebene Compiler-Frontend in den Hauptzweig von LLVM zu integrieren. Die externen Bibliotheken aus dem Go-Projekt sollen in einem speziellen Verzeichnis zur Weiterverwendung gespiegelt werden. Sollte dies wie geplant umgesetzt werden, können Go-Entwickler auf dann drei aktiv betreute Compiler zugreifen.

Derzeit benutzt Go offiziell einen auf den Werkzeugen von Plan 9 der Bell Labs(öffnet im neuen Fenster) aufbauenden Compiler. Zudem steht ein Frontend für die GNU Compiler Collection bereit, mit der sich die Sprache übersetzen lässt.


Relevante Themen