GCC 8.1, la nouvelle version majeure du compilateur libre sera disponible d�but 2018
un aper�u des fonctionnalit�s et changements attendus
GCC est une collection de compilateurs cr��s par le projet GNU. Il s�agit plus exactement d�un logiciel libre capable de compiler divers langages de programmation, dont C, C++, Objective-C, Java, Ada et Fortran. Il faut �galement noter qu�il est utilis� pour le d�veloppement de la plupart des logiciels libres.
Depuis le 20 novembre, le d�veloppement de GCC 8 a franchi une nouvelle �tape : les fonctionnalit�s ont �t� gel�es et seules les corrections de bogues et mises � jour de la documentation seront accept�es. La premi�re version stable de GCC 8, num�rot�e 8.1, sera quant � elle disponible d�but 2018.
Pour le moment, la documentation officielle des changements et nouveaut�s dans GCC 8 est assez incompl�te, mais elle sera mise � jour par les d�veloppeurs GCC (GNU Compiler Collection) au fur et � mesure qu�on se rapproche de la sortie de la nouvelle version. Toutefois, Phoronix, le site sp�cialis� dans les actualit�s GNU/Linux a pu suivre de bout en bout le d�veloppement de GCC8 pour nous proposer les principaux changements et nouveaut�s qui incluent :
- am�lioration du support de znver1 d'AMD : des patchs ont �t� apport�s au compilateur GNU pour les processeurs Ryzen / Threadripper / EPYC ; ce qui permet d'obtenir de meilleures performances sur ces processeurs ;
- support de Cannonlake, le processeur Intel de nouvelle g�n�ration succ�dant � Coffee Lake / Kaby Lake Refresh ;
- support initial pour Intel Icelake, la g�n�ration de processeurs qui va succ�der � Cannonlake. Cela inclut les instructions GFNI (Galois Field Affine Transformation) et plus encore ;
- support d'Intel CET (Control-flow Enforcement Technology) pour une meilleure s�curit�. La technologie Control-flow Enforcement vise en effet � emp�cher les attaques de type return-oriented programming (ROP) et call-jump-oriented programming (COP/JOP). La ROP, par exemple, est une technique d'exploitation avanc�e de type d�passement de pile permettant l'ex�cution de code par un attaquant, et ce en s'affranchissant plus ou moins efficacement des m�canismes de protection tels que l'utilisation de zones m�moires non ex�cutables, l'utilisation d'un espace d'adressage al�atoire ou encore la signature de code ;
- support du CPU Qualcomm Saphira. Saphira est le successeur de Falkor, une microarchitecture ARM con�ue par Qualcomm pour le march� des serveurs ;
- support du langage C17. � ne pas confondre avec C++ 17 qui apporte de nombreux ajouts et am�liorations notables, C17 sera bient�t disponible sous forme de mise � jour du langage de programmation C. La mise � jour du langage de programmation C17 est juste une � version de correction de bogue � � la norme C11. Si C17 va bient�t �tre soumis pour approbation et pourrait finir par �tre connu sous le nom de C18, GCC se pr�pare pour son arriv�e. Fin octobre, il a par exemple �t� publi� un patch initial introduisant C17/GNU17 et faisant de C17/GNU17 le nouveau standard par d�faut pour le front-end du compilateur C ;
- pr�paration pour C++ 20 / C++2A. Avec les discussions des fonctionnalit�s de C++ 20, les d�veloppeurs GCC ont �galement commenc� � se pr�parer � travailler sur les nouvelles fonctionnalit�s du compilateur pour le prochain standard qui devrait sortir dans quelques ann�es. GCC ayant d�j� un support C++ 1z / C++ 17 complet, C++ 20 deviendra rapidement une cible pour les d�veloppeurs qui travaillent sur ce compilateur open source. En pr�paration au travail qui sera effectu�, le d�veloppeur Andrew Sutton a envoy� en juillet un patch ajoutant un support pour sp�cifier la nouvelle norme C++ via -std=c++2a pour le travail C++ 20 provisoire et -std=gnu++2a pour C++20 plus les extensions GNU ;
- support ARMv8-R. Ce sous-ensemble de l'architecture ARMv8 est destin� aux applications temps r�el et aux environnements dont la s�curit� est critique, tels que le contr�le automobile et industriel et l'aviation ;
- am�lioration suppl�mentaire du support ARM pour les nouveaux processeurs Cortex ;
- am�lioration du support de la sp�cification OpenACC 2.5 ;
- mise � jour du front-end du langage Go. Il s'agit de l'une des premi�res plus grosses fusions pour GCC 8. Celle-ci met � jour le code de GCC avec celui du runtime Go 1.8 et d'autres mises � jour de Go 1.8 ;
- poursuite des am�liorations pour le support AMD HSA IL / BRIG ;
- Cilk Plus est en cours de suppression. Intel d�conseille le support multithreading de Cilk Plus avec GCC 7 et maintenant pour GCC 8, l'entreprise cherche � abandonner compl�tement ce support ;
- am�liorations significatives du back-end du compilateur Nios II.
Il faut rappeler que le projet GNU a annonc� il y a quelques mois le support du langage D dans GCC. Une dizaine de patchs de pr�s de 800 000 lignes de nouveau code a aussi �t� publi�e pour l'ajout d'un front-end D � la collection de compilateurs GNU. Ce nouveau front-end impl�mente le langage D 2.0 et prend en charge le runtime D 2.0 et les biblioth�ques partag�es. Outre les diff�rents changements et nouveaut�s annonc�s ici, on pourrait donc �galement s�attendre au support du langage D dans GCC 8.1.
Sources : Phoronix, GCC 8 Release Series
Et vous ?
Que pensez-vous de ces nouveaut�s ?
Partager