Bootstrapping: Go 1.5 soll nur noch Go verwenden
Das Team der Programmiersprache Go plant für die kommende Version 1.5(öffnet im neuen Fenster), so viele Werkzeuge wie möglich, idealerweise sogar alle noch verbliebenen, die die Sprache C verwenden, auf Go zu portieren. Zurzeit wird das genaue Vorgehen für dieses sogenannte Bootstrapping(öffnet im neuen Fenster) diskutiert.
Derzeit verwendet Go als grundlegende Werkzeuge noch einen Compiler, Linker, Assembler sowie das Dist-Tool(öffnet im neuen Fenster), die alle in C verfasst sind. Werden diese auf Go portiert, ergibt sich beim Erstellen aus dem Quellcode ein altbekanntes Problem der Informatik, das es zu lösen gilt, wie der Entwickler Russ Cox in einem Dokument schreibt(öffnet im neuen Fenster).
Demnach schlägt er vor, zum Erstellen von Go 1.5 eine bestehende Installation von Go 1.4 zu verwenden. Damit würden die bisher als Ausgangspunkte genutzten Compiler von GCC oder auch Clang ersetzt. Darüber hinaus würde dann die Go-Toolchain noch einmal mit sich selbst kompiliert werden. Neue Versionen von Compiler und Bibliotheken würden so durch eine ältere Version erstellt.
Möglicherweise könnte der gesamte Prozess dadurch verlangsamt werden, was aber durch die dann wegfallenden vielen Ein- und Ausgabe-Operationen der C-Kompilierung wieder ausgeglichen werden könnte. Dazu lässt sich jedoch noch keine tatsächliche Aussage treffen. Cox möchte dafür sorgen, dass die neue Vorgehensweise nicht mehr Zeit benötigt als die alte.
Cox gibt ebenfalls zu bedenken, dass bei diesem Vorgehen neue Portierungen der Sprache etwas komplexer werden. Am einfachsten ließe sich dies wohl durch ein Cross-Compiling erreichen, bei dem die Binärdateien einfach auf die Zielplattform kopiert würden und dann zum Debugging bereitstünden.
Dieser Vorgang ist für viele Programmiersprachen nicht notwendig, wird aber dennoch oft angewendet, wie etwa bei C oder mit Pypy für Python.
- Anzeige Hier geht es zu Go - Das Praxisbuch 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.



