Google: Portable-Native-Client-Code für LLVM
Das neue Emscripten-Backend Fastcomp(öffnet im neuen Fenster) verwendet die Compile-Schritte von Googles Portable Native Client (PNaCL). Deshalb wäre es für die Zusammenarbeit beider Projekte hilfreich, wenn diese Code-Bestandteile im Hauptzweig von LLVM verfügbar wären statt in einem eigenen Entwicklungszweig. Deshalb diskutiert ein Google-Entwickler mit dem LLVM-Team über die Möglichkeit zur Aufnahme des Codes(öffnet im neuen Fenster).
Der von Google geschriebene Code soll den LLVM-eigenen wesentlich vereinfachen, indem komplexe Funktionen auf einfachere heruntergebrochen werden. Der Code von Google sei zudem modular aufgebaut. So könnten weitere Projekte entscheiden, welche der Einzelteile sie unterstützen wollen. Zudem sei der Code durch die Modularität einfach zu warten und zu testen.
Code vielfach verwendbar
Emscripten oder auch jedes andere Projekt kann diese Funktionen von Google verwenden, um ein neues LLVM-Backend zu schreiben. Dabei werde die Anzahl der verschiedenen Möglichkeiten, die das Backend beachten muss, aber im Vergleich zum jetzigen LLVM-Code deutlich reduziert – was Emscripten-Entwickler Alon Zakai in der Diskussion(öffnet im neuen Fenster) bestätigt.
Zakai sieht auch weitere Szenarien, in denen LLVM-Zwischencode (IR) einfach in etwas anderes übersetzt werden soll. So könnten Studenten etwa Compiler-Optimierungen gelehrt werden, indem diese LLVM IR in eine ihnen schon bekannte Sprache übersetzen müssten.
Googles PNaCl kompiliert C- und C++-Code ebenfalls in eine Zwischenschicht, die eine Teilmenge von LLVMs IR ist. So wird architekturabhängiger Code erzeugt, der in eine portable, ausführbare Datei gepackt werden kann, um "native" Web-Apps zu erstellen. Das Android-Projekt Renderscript(öffnet im neuen Fenster) nutzt ebenfalls die IR von PNaCL.
Ob der Code von Google letztendlich in LLVM landet, ist noch nicht entschieden. So hegen einige Entwickler etwa große Zweifel(öffnet im neuen Fenster) an dem Vorhaben.
- Anzeige Hier geht es zum Handbuch für Softwareentwickler bei Amazon Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.