Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Liens connexes

Dépêche modérée par

Dépêche éditée par

Développeur : Sortie de GCC 4.3

Posté par patrick_g (page perso, ). Modéré le 10 mars 2008.
GNU
La nouvelle version 4.3 de GCC (GNU Compiler Collection) vient de sortir.
Cette version du compilateur du projet GNU, initié par Richard Stallman, est particulièrement importante et a été testée depuis des mois de façon intensive par les distributions car elle sera le compilateur utilisé par Fedora 9, par OpenSuse 11.0 et par Debian Lenny - ce message détaillé donne une bonne idée du travail ayant lieu actuellement chez Debian pour pouvoir utiliser GCC 4.3 dans la future version stable de la distribution.

Ci-dessous, les nouveautés concernant GCC, gfortran, gcj et les optimisations mises en oeuvre.

> Lire la dépêche (137 commentaires, moyenne: 3,4).  


Pour la suite...
Après la sortie en mai dernier de la précédente version 4.2 de GCC, s'est déroulé en juillet le sommet annuel 2007 des développeurs. Les lecteurs intéressés pourront lire le gros fichier pdf (162 pages) compilant l'ensemble des articles techniques ainsi que ce fil sur la mailing-list GCC pour faire le point sur les nouveautés envisagées pour le futur GCC 4.4.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Fortran

Posté par ciol () le 10/03/2008 à 13:28. (lien). Évalué à 7.

"I don’t know what the language of the year 2000 will look like, but it will be called Fortran", Tony Hoare, 1982.

[ Répondre ]

Merci pour cette news !

Posté par Maxime (Jabber id, ) le 10/03/2008 à 13:40. (lien). Évalué à 10.

Encore une fois un très bon travail. Bien rédigé et intéressant.

Merci Patrick.

[ Répondre ]

Bug avec le kernel Linux

Posté par yannig (page perso, ) le 10/03/2008 à 13:43. (lien). Évalué à 3.

Apparemment, cette nouvelle version entrainerait un bug qui n'aurait pas été vu jusque là au niveau des flags de gestion des processeurs x86 (direction flag = DF). Ce flag a une importance sur des accès à la mémoire (voir lien ci-dessous pour plus de détail).

Le bug a été remonté par Aurélien Jarno le 5 mars dernier (http://lwn.net/Articles/272204/). A remarquer qu'apparemment, les *BSD sont concernés mais pas Solaris. Un patch a déjà été mis en ligne par Aurélien Jarno pour le corriger (http://lwn.net/Articles/272203/).

A prioris, le risque de faille de sécurité est faible mais pas inexistant. A suivre ...

[ Répondre ]

Surtout...

Posté par Francois Revol (page perso, ) le 10/03/2008 à 13:54. (lien). Évalué à 0.

est-ce qu'il arrive à compiler ffmpeg ?
sinon ça vaut même pas la peine :)

[ Répondre ]

Auto vectorisation

Posté par Ontologia (page perso, ) le 10/03/2008 à 15:44. (lien). Évalué à 10.

Comme précisé dans cette news somptueuse, l'autovectorisation est en standard dans Gcc 4.3. On l'attendait avec impatience.

Qu'est-ce que c'est exactement :

Pour pas mal de type de boucle (celle-ci : http://gcc.gnu.org/projects/tree-ssa/vectorization.html#vect(...) ) Gcc va être capable de produire du code MMMX, SSE, ou altivec sur powerPC. Voire, d'après ce que j'ai compris, du SPU du cell.
Ceux qui veulent lire des vidéos HD sur leur linux installé sur la PS3 vont être content (parce que pour avoir passé une après midi à essayer de le faire marcher, faire accéder au codec le spu du cell, c'est mission impossible).

D'après cette note http://gcc.gnu.org/wiki/AutovectBranchOptimizations , la vectorisation est automatique. Gcc détecte ce qui est optimisable dans le code.

Ca veut dire, que ça risque d'être très intéressant de recompiler pas mal de logiciels gourmand en calcul avec cette nouvelle version de gcc.

La 4.2 gérai un peu de vectorisation, mais de manière très limitée et à condition qu'on active le switch correspondant.

Il va y avoir des benchs à refaire...

[ Répondre ]

closures

Posté par Guillaume Gimenez (page perso, ) le 10/03/2008 à 16:15. (lien). Évalué à 1.

Euh... toujours pas de closures à l'horizon ? snif

[ Répondre ]

gcc lave plus blanc ?

Posté par Philippe Fremy (page perso, ) le 10/03/2008 à 19:14. (lien). Évalué à 8.

Je vois toujours des références à du « code propre » et j'avoue que ça m'agace un peu.

On vante les mérites de gcc qui respecte au poil les standards C et C++ et qui refuse donc de compiler du « code sale ».

J'avoue que la terminologie a le don de m'énerver. Non pas que je sois un fan du code pas propre, mais pour moi, code propre et respect des standards du C++ et de C sont deux choses distinctes.

Par exemple, aujourd'hui, il n'existe aucun compilateur C++ qui supporte à 100% et sans bug le standard du C++. Donc un code qui serait « parfaitement propre » (d'après cette définition) et qui utiliserait toutes les fonctionnalités du standard ne marcherait nulle part. Trop cool !

D'un autre côté, un code qui supporterait un très large panel de compilateur et de plate-forme marchera sur plein de machines, en supportant les divers bugs et sous implémentation du standard sera « sale » mais beaucoup plus utile.

Dans cette catégorisation, il est à noter que le code de gcc est sale, tout comme le code de Linux (et la news le rappelle à juste titre).

Pour certains on a l'impression que le respect absolu des standards du C++ est un but en soi, le développement d'un logiciel n'étant qu'accessoire. Et bien non, le but c'est développer un logiciel, et le respect de certains standards, ce n'est qu'un moyen pour assurer dans certains cas une portabilité. Côté développement logiciel, c'est d'ailleurs plutôt le non-respect des standards qui assure une certaine portabilité.

Et un développeur peut avoir des trucs plus intéressants à faire (ajouter une fonctionnalité demandée par des utilisateurs, corriger un bug important) que modifier son logiciel pour qu'il compile avec la dernière version de gcc.

Bref, le respect du standard, mais il faut aussi se mettre au niveau des besoins pratiques des gens, et le respect strict à 100% du standard n'est peut-être pas le besoin le plus criant.

[ Répondre ]