Google hat Go 1.7 veröffentlicht

Go 1.7
Kommentare

Google, genauer gesagt das Team hinter der C-Alternative Go, hat Go 1.7 veröffentlicht. Auch wenn es wenig Änderungen an der Sprache gibt, stecken dennoch viele Neuerungen im aktuellen Release.

Das Team hinter der C-Alternative Go hat Go 1.7 veröffentlicht. Neben einem neuen Port für IBMs z-Systeme sowie ein neues Context-Package gibt es vor allem einige Verbesserungen im Compiler zu vermelden – vor allem das SSA-basierte Compiler-Backend findet in der Community Beachtung, kommt es doch mit zahlreichen Tools, die es Entwicklern ermöglichen, direkt damit zu interagieren.

Go 1.7

Ein Jahr, nachdem Googles Go C über Bord geworfen und den Compiler direkt in Go implementiert hat, hat das Team nun Go 1.7 veröffentlicht. Bemerkenswert an diesem Release ist vor allem die Tatsache, dass es kaum Änderungen an der Sprache selbst gibt – dafür wurde unter der Haube an einigen Schrauben gedreht, die sich vor allem am Compiler-Backend bemerkbar machen, dass nun der Static-Single-Assignment-Form folgt, die das letzte Jahr über entwickelt wurde.

Der Vorteil des neuen Backends liegt vor allem darin, dass es in der Lage ist, fortgeschrittene Optimierungen wie beispielsweise die Bounds Check Elimination in kürzerer Zeit durchzuführen. Aktuell steht der Compiler, bei dem das Team einen Performance-Boost zwischen fünf und 35 Prozent beobachten konnte, nur für die amd64-Architektur zur Verfügung. Das Team arbeitet jedoch daran, in künftigen Releases weitere Backends zu SSA zu konvertieren.

Einen ersten Überblick über die Funktionsweise von SSA und die für Entwickler zur Verfügung stehenden Tools bietet Paul Smiths Blogpost, in dem er sich ausführlich mit dem Thema auseinandergesetzt hat.

Weitere Neuerungen

Im Frontend des Compilers wurde auf ein kompakteres Export-Format gesetzt, das wesentlich effizienter verarbeitet werden kann. Dadurch für die für das Compiling notwendige Zeit verkürzt. Außerdem sollten Entwickler eine Verkleinerung der Binaries von etwa 20 bis 30 Prozent bemerken.

Durch Arbeiten am Garbage Collector sowie Optimierungen an der Standardbibliothek sollten in Go geschriebene Programme in Go 1.7 außerdem etwas schneller ausgeführt werden.

Eine weitere wichtige Änderung betrifft das Package Context, das nun vom x/net-Repository als context in die Standardbibliothek integriert wurde. Der Support für context wurde außerdem auf die Packages net, net/http und os/exec ausgeweitet.

Gute Neuigkeiten gibt es auch im Bereich des Testings und der Benchmark; die Zauberformel lautet hierarchische Tests und Benchmarks. In Go 1.7 ist es Entwicklern nun möglich, Subtests und Sub-Benchmarks zu definieren, ohne dafür eigene Funktionen schreiben zu müssen.

Alle weiteren Neuerungen rund um Go 1.7 findet man in den Release Notes. Go 1.7 steht ab sofort auf der Projektseite zum Download zur Verfügung.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -