Login
Login-Name Passwort


 
Newsletter
Werbung

Mo, 11. August 2014, 09:10

Software::Entwicklung

Zusammenarbeit zwischen GCC und LLVM

Auf der GCC-Entwicklerkonferenz »Cauldron« wurden im Juli Möglichkeiten der Zusammenarbeit zwischen GCC und LLVM erörtert. Trotz zahlreicher fundamentaler Differenzen der beiden Compiler-Projekte wollen sich die Entwickler zumindest über ein gemeinsames Frontend und identische Sprachstandards unterhalten.

llvm.org

Im Juli fand im englischen Cambridge die Entwicklerkonferenz GNU Tools Cauldron statt. Neben Vertretern des GCC-Projekts waren auch Entwickler von LLVM anwesend. So konnten verschiedene Aspekte der Zusammenarbeit zwischen den beiden Compiler-Projekten erörtert werden. Renato Golin von Linaro gab eine kurze Zusammenfassung der Gespräche aus LLVM-Sicht.

Die Entwickler von GCC und LLVM waren offenbar einer Zusammenarbeit sehr aufgeschlossen. Ein wichtiger Punkt dabei ist der »Treiber«, der bei beiden Projekten das Frontend darstellt, das die Kommandozeilenoptionen entgegennimmt und den richtigen eigentlichen Compiler aufruft. Beim C-Compiler von GCC beispielsweise ist das »gcc«, beim C-Compiler von LLVM »clang«. So wollen die Projekte einheitliche Bezeichnungen für die Zielplattform verwenden, wobei die gerade aufkommende AArch64-Architektur ein aktuelles Beispiel ist. Ein vereinheitlichtes Frontend-Programm für beide Projekte würde von beiden Seiten begrüßt, der Weg dorthin ist aber wohl noch weit. Denkbar wäre sogar, das Frontend in Python zu schreiben, und dem erfolgreichen Beispiel des Android-Build-Systems zu folgen.

Wenn die Compiler-Entwickler Erweiterungen implementieren, die über den offiziellen Sprachstandard hinausgehen, dann wollen sie diese entweder dem Standard-Komitee vorlegen oder gemeinsam darüber diskutieren. GCC besitzt bereits ein internes Komitee, und LLVM sollte sich an diesem beteiligen.

Kein Entwickler mag veralteten Code, aber wenn man diesen Code entfernt, könnte es Benutzer zu einer Umstellung zwingen. Das ist seitens der Benutzer selten gewünscht und wird daher von GCC tunlichst vermieden. LLVM dagegen hat kein Problem damit, solchen Code zu entfernen. Auch wenn LLVM vergrößerte Verbreitung erfährt, ist es aus Sicht der LLVM-Entwickler kaum ein Problem, denn Benutzer, die ihren Code Compiler-unabhängig halten wollen, müssen sich auf den kleinsten gemeinsamen Nenner der Compiler beschränken.

Auch künftig werden GCC und LLVM wohl eine unterschiedliche Kultur beibehalten, doch wollen die Entwickler darauf achten, dass ihre Funktionalität kompatibel bleibt. So können beide Compiler durchaus unterschiedliche Standardeinstellungen besitzen, aber zumindest sollen die Optionen zur Einstellung des Verhaltens die gleichen sein. Auch das ist ein Aspekt des möglichen gemeinsamen Frontends. Weitere Details lassen sich Golins Bericht entnehmen.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung