LLVM-Konkurrenz: GCC bekommt JIT-Compiler

Das Projekt, ein JIT-Compiler-API(öffnet im neuen Fenster) für die GNU Compiler Collection (GCC) zu erstellen, ist offiziell im Hauptentwicklungszweig von GCC eingepflegt(öffnet im neuen Fenster) worden. Vor über einem Jahr war es von dem Red-Hat-Mitarbeiter David Malcolm gestartet worden . Die Bibliothek soll sich dynamisch in Bytecode-Interpreter linken lassen oder in ähnliche Programme, die Maschinencode zur Laufzeit erstellen wollen.
Damit rückt GCC dem Funktionsumfang des zweiten großen freien Compilerprojektes, LLVM, wieder etwas näher. Letzteres bietet eine solche Möglichkeit seit Jahren, die unter anderem auch den Code noch weiter optimieren kann. Eingesetzt wird dies von vielen verschiedenen Programmen wie zum Beispiel in dem neuen Javascript-Backend von Webkit oder bei dem von Dropbox initiierten Pyston , einer Implementierung von Python 2.7.
Aufbauend auf einer selbsterstellten Sprachanbindung an Python demonstrierte Malcolm die Funktionen von GCC-Jit(öffnet im neuen Fenster) auf der diesjährigen GNU Tools Cauldron Konferenz. Mit Coconut(öffnet im neuen Fenster) steht ein experimenteller Compiler bereit, der CPython-Bytcode über eine Zwischenschicht in Maschinencode umwandelt. Genutzt werden könnte diese Technik aber natürlich auch für andere Sprachen, und Malcolm ruft dazu auf, sich entsprechend an den Arbeiten zu beteiligen.
Einen kurzen Überblick über die Funktionsweise der Jit-Bibliothek von GCC bietet das Projekt-Wiki(öffnet im neuen Fenster) sowie die Onlinedokumentation von Malcolm(öffnet im neuen Fenster) selbst. Noch wird der Code offiziell als Alpha bezeichnet, und es wird auf mögliche Änderungen des API hingewiesen. Mit der Aufnahme in den Hauptzweig ist aber davon auszugehen, dass der Code mit der kommenden Version 5 der Compilersammlung im nächsten Jahr erscheinen wird.
Der Quellcode steht via Svn zum Download(öffnet im neuen Fenster) bereit, Git-Spiegelserver(öffnet im neuen Fenster) gibt es ebenfalls.