Login
Newsletter
Werbung

Mi, 3. Mai 2017, 13:49

Software::Entwicklung

GCC 7.1 freigegeben

Ein Jahr nach GCC 6.1 haben die Entwickler nun Version 7.1 der freien Compiler-Suite veröffentlicht. Neben zahlreichen Verbesserungen bei der Optimierung findet man Verbesserungen bei C++17 und Unterstützung für Fuchsia und RISC-V.

gnu.org

Neue GCC-Versionen erscheinen einmal im Jahr - an dieses Schema halten sich die Entwickler seit GCC 3.0 im Jahr 2001, lediglich GCC 3.2 verspätete sich um einige Monate. So steht jetzt ein Jahr nach GCC 6.1 die Version 7.1 bereit. Seit dem vorletzten Jahr umfasst die Versionierung von GCC nur noch zwei Nummern statt drei, wobei Versionen, die auf .0 enden, weggelassen werden.

GCC 7 verbessert die Code-Generierung weiter. Für alle Architekturen wirksam sind dabei die generellen Verbesserungen im Code-Optimierer. So kann GCC jetzt den Rückgabewert von sprintf ermitteln oder zumindest eingrenzen und dieses Ergebnis an weitere Optimiererläufe weitergeben. Auch Informationen, welche Bits in Variablen Null sind, und in welchem Wertebereich eine Variable liegt, werden weitergereicht. Eine neue Optimiererphase versucht, Speicher-Schreiboperationen zusammenzufassen. Code, der in allen Zweigen einer Funktion ausgeführt wird, wird nun möglichst nach vorne verschoben, was vor allem der Verringerung der Code-Größe dient.

Schleifen können nun in zwei separate Schleifen aufgeteilt werden, wenn dadurch Tests in der schleife entfallen können. Der AddressSanitizer wurde um die Option -fsanitize-address-use-after-scope erweitert. Ferner wird jetzt auch Version 5 des Standards DWARF für Debug-Informationen unterstützt.

Bei den Programmiersprachen liegen die größten Änderungen von GCC 7.1 in C und C++. Zahlreiche neue Kommandozeilenoptionen schalten zusätzliche Warnungen ein. Die Korrekturvorschläge sind nun besser als bei GCC 6. Weitere neue Warnungen und Verbesserungen sollen Pufferüberläufe und andere fehlerhafte Speicherzugriffe erkennen helfen. Es gibt neue Datentypen für Gleitkommazahlen im IEEE-Austauschformat. Der C++Compiler unterstützt die noch im Entwurf befindliche Spezifikation C++17, der Standard ist weiter C++14. Der Fortran-Compiler erhielt weitere Optionen, um Altlasten zu unterstützen, und der Go-Compiler wurde auf den Stand von Go 1.8.1 gebracht. Der Java-Compiler wurde dagegen entfernt.

Die Implementation der Spezifikation OpenACC 2.0a wurde weiter verbessert. Zusätzlich wird die Version 4.5 der OpenMP-Spezifikation nach C und C++ auch für Fortran unterstützt. Daneben bringt GCC 7 viele architekturspezifische Änderungen, darunter die Verwendung der neuesten Ausgabe des Prozeduraufruf-Standards AAPCS64 auf der 64 Bit ARM-Architektur, Unterstützung von ARMv8.3-A, und ARMv8.2-A, Unterstützung von RISC-V und zahlreiche Erweiterungen.

Neu ist auch die Unterstützung für das Betriebssystem Fuchsia. Eine Liste aller Änderungen kann man im Änderungslog des Compilers finden. Der Quellcode von GCC 7.1 kann von zahlreichen Spiegel-Servern des GNU-Projektes heruntergeladen werden.

Werbung
Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung