lundi 4 mai 2015

Vivement gcc 5.1

Les petits gars de Debian sont en train de bosser d'arrache pied sur le paquet gcc 5.1. Déjà disponible en experimental, il ne devrait pas tarder à atterrir en Testing, ce qui va me donner plein d'occasions pour poster, car il va y en avoir à expérimenter. En particulier, le support de C++14 sera complet, et l'on commencera à voir des fonctionnalités de c++17 (encore appelé c++1z par les pessimistes).

Supporté depuis un moment déjà, mais amélioré à chaque release, c'est la "link time optimization" avec laquelle il va me falloir sérieusement expérimenter. Pour faire simple, au lieu de générer du code machine lors de la transformation de chaque fichier source en fichier objet (.o), gcc génère un fichier au format "Gimple", qui est la représentation intermédiaire du code. Lors de la phase d'éditions de liens, il y a donc beaucoup plus d'informations disponibles pour permettre une optimisation entre les modules, par exemple passer certaines fonctions inline bien que leur corps soit dans le fichier source plutôt que l'en-tête. La contrepartie, c'est que cette phase d'édition de lien peut prendre un temps considérable. C'est là qu'intervient le Gold Linker, avec son mode incrémental et son support du parallélisme.

Aucun commentaire: