Developpez.com

Plus de 14 000 cours et tutoriels en informatique professionnelle à consulter, à télécharger ou à visionner en vidéo.

Linus Torvalds trouve un bug dans GCC 4.9 et qualifie celui-ci de « merde »
Le compilateur reçoit un prix de l'ACM

Le , par Hinault Romaric, Responsable .NET
Le compilateur GCC a fait récemment l’objet de deux événements inattendus : d’un côté la colère de Linus Torvalds, et de l’autre côté un prix de l’ACM (Association for Computing Machinery).

Le compilateur GCC (GNU Compiler Collection), très célèbre dans l’écosystème du libre et de l’open source, est utilisé pour le développement de grands projets comme le noyau Linux, dont plusieurs fonctionnalités dépendent de GCC. GCC propose une série de compilateurs pouvant prendre en charge les langages C, C++, Objective-C ou encore Java.

Lors du développement de la version 3.16 du noyau Linux, un bug a été constaté dans une fonction d’équilibrage de charge. Après plusieurs évaluations du code de Linux pour identifier le problème, Linus Torvalds s’est rendu compte que c’était le compilateur GCC 4.9 qui était la source du problème.

Dans un ton qui lui est caractéristique, Torvalds n’a pas ménagé sa colère et s’est emporté contre les développeurs de GCC. Il était dégoûté par le code généré par GCC 4.9, qu’il n’a pas manqué de qualifier de « merde ».

« Ok, je suis en train de regarder le code généré et votre compilateur est purement et absolument une *merde* », a écrit Linus Torvalds dans la liste de diffusion du projet.

Le problème indexé par Torvalds est le fait que le compilateur aurait apparemment renversé une constante lors de la génération du code sur architecture x86-64. « Le compilateur fait des choses absolument folles avec le renversement, y compris le renversement d’une constante », a critiqué Linus Torvals, avant d’enfoncer le clou. « Ce compilateur n’aurait pas dû être autorisé à sortir de la maternelle. »

La suite du message de Linus Torvalds présente de façon détaillée le bogue et les potentielles causes, ainsi que le rapprochement avec un autre bogue, avant de conclure que quoi qu’il en soit, il ne s’agit pas d’un bogue du noyau Linux. « C’est votre compilateur qui crée du code complètement cassé. », conclut Torvals, qui met ensuite en garde les développeurs de GCC. « Nous pourrions ajouter un avertissement pour nous assurer que personne ne compile avec GCC 4.9.0 et les gens de Debian devraient probablement downgrader leur brillant nouveau compilateur. »

GCC 4.9.0 est disponible depuis avril dernier. Une mise à jour (GCC 4.9.1) a été publiée récemment. Il n’est pas certain que le bug soit résolu dans cette version. Linus Torvalds a signalé le problème sur le bug tracker du projet. Pour l’instant, il est préférable d’utiliser GCC 4.8 qui est encore la version par défaut pour plusieurs distributions Linux.

Parallèlement, GCC a reçu pour la première fois un prix de l’ACM, après pratiquement 30 ans d’existence. Pour l’ACM, GCC « offre un compilateur portable, productif, conforme aux normes et optimisé, qui soutient plusieurs architectures et plusieurs langages de programmation ».

Pour rappel, le compilateur LLVM, qui existe depuis environ 10 ans, a reçu il y a 2 ans le même prix de l’ACM. Des travaux ont déjà été effectués par des développeurs pour compiler le noyau Linux avec LLVM/Clang. Dans Linux 3.15, il est pratiquement possible de compiler le Kernel avec LLVM.

Sources : message de Linus Torvalds sur LKML, ACM

Et vous ?

Que pensez-vous de la réaction de Linus Torvalds ? Justifiée ou disproportionnée ?

Utilisez-vous GCC ou LLVM ? Pourquoi ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de transgohan transgohan - Expert confirmé http://www.developpez.com
le 30/07/2014 à 8:27
Disproportionnée comme toujours. Ce bonhomme ne sait pas s'exprimer sans gueuler.
Des raisons de médiatiser autant un simple ticket de report ?
Ah mais oui... C'est parce que ce monsieur est connu qu'on médiatise le moindre de ses mots...
Allez, ouvrons un sujet de news à chaque bug trouvé sur GCC !
Avatar de imikado imikado - Rédacteur http://www.developpez.com
le 30/07/2014 à 8:38
Disproportionnée comme trop souvent, ça donne une mauvaise image de Linux, comme S. Ballmer donnait une mauvaise image de Microsoft.

Je trouve ça dommage, quand on regarde cette vidéo de lui, il parait sympathique:
Avatar de Le Vendangeur Masqué Le Vendangeur Masqué - Nouveau Candidat au Club http://www.developpez.com
le 30/07/2014 à 9:20
Citation Envoyé par Hinault Romaric  Voir le message
Que pensez-vous de la réaction de Linus Torvalds ? Justifiée ou disproportionnée ?

Utilisez-vous GCC ou LLVM ? Pourquoi ?

Bon c'est du Torvalds tout craché…

Quand à LLVM puisque Apple l'emploi dans Xcode j'ai suivi le mouvement, et je n'ai pas eu de raison de m'en plaindre. On notera que ça fait un bon bout de temps qu'Apple a migré de l'un à l'autre, et peut-être pas que pour des raisons de performance.
Avatar de arnolddumas arnolddumas - Rédacteur/Modérateur http://www.developpez.com
le 30/07/2014 à 9:28
Citation Envoyé par Le Vendangeur Masqué  Voir le message
Quand à LLVM puisque Apple l'emploi dans Xcode j'ai suivi le mouvement, et je n'ai pas eu de raison de m'en plaindre. On notera que ça fait un bon bout de temps qu'Apple a migré de l'un à l'autre, et peut-être pas que pour des raisons de performance.

La licence BSD a sûrement (euphémisme) joué en faveur de LLVM.
Avatar de digitkiller digitkiller - Membre du Club http://www.developpez.com
le 30/07/2014 à 9:29
Toujours disproportionné, c'est sa marque de fabrique, le gars est doué, mais a aussi une très haute estime de lui. GCC est utilisé depuis probablement la première version du noyau, le noyau 3.16 est-il exempt de bugs (sauf celui provoqué par le compilo) ? Est-ce pour autant une "merde", je ne crois pas.
Avatar de Kropernic Kropernic - Membre expert http://www.developpez.com
le 30/07/2014 à 9:42
Bah... C'est sa marque de fabrique... On le sait qu'il démarre au quart de tour. Donc tout va bien :-)
Avatar de Traroth2 Traroth2 - Expert éminent http://www.developpez.com
le 30/07/2014 à 11:05
A force de pousser des gueulantes et d'insulter tout le monde, il va finir par entamer sa propre crédibilité...
Avatar de Derf59 Derf59 - Membre régulier http://www.developpez.com
le 30/07/2014 à 11:33
Si la forme de sa gueulante peut laisser à désirer, dans le fond je suis totalement d'accord avec lui.

Imaginer que ce que vous développer ne fonctionne pas à cause du compilateur/machine virtuelle (Java ou .Net) et on verra comment vous réagirez
Avatar de ustensile ustensile - Membre régulier http://www.developpez.com
le 30/07/2014 à 11:39
Theo de Raadt est comme ça aussi
Avatar de Juda-Priest Juda-Priest - Membre actif http://www.developpez.com
le 30/07/2014 à 11:40
Citation Envoyé par digitkiller  Voir le message
Toujours disproportionné, c'est sa marque de fabrique, le gars est doué, mais a aussi une très haute estime de lui. GCC est utilisé depuis probablement la première version du noyau, le noyau 3.16 est-il exempt de bugs (sauf celui provoqué par le compilo) ? Est-ce pour autant une "merde", je ne crois pas.

Citation Envoyé par Kropernic  Voir le message
Bah... C'est sa marque de fabrique... On le sait qu'il démarre au quart de tour. Donc tout va bien :-)

Citation Envoyé par Traroth2  Voir le message
A force de pousser des gueulantes et d'insulter tout le monde, il va finir par entamer sa propre crédibilité...

xD ! Bien au contraire ! Linus à juste un franc parler, et pour ce qui est du choix des mots, c'est assez typiques des pays Nordiques (Sans non plus faire une généralisation, mais j'ai deux collégues norvégiens qui parle anglais avec autant de "virulence" que Linus) où des mots comme "bitch", "fag", "shit" ne sont pas aussi provoquant ou choquant auprès de gens de la "bonne éducation". Tout ceux qui suivent le fil de thread du kernel, ont compris qu'il n'aime passer par 4 chemins.

Et avant de blamer GCC, il a bien debugger/d'analyser la bêbete, il démarre au 1/4 de tour en mode diesel . Il a même pris le temps de créer un ticket, et de continuer le debug par la suite.

Pour ce qui est sa haute estime de lui même, beaucoup de confiance en lui ok, mais c'est encore juste un ragot qui lui colle à la peau "Oh il nomme son noyau d'après son nom", "Il vient toujours prendre les gens de haut" etc. Rien que le choix du nom de "GIT" devrait vous prouvez le contraire

>
> Please note that the data produced by "-g -fvar-tracking" is consumed
> by tools like systemtap, perf, crash, and makes a significant
> difference to the observability of debug AND non-debug kernels.

Yeah, and compared to having a buggy kernel, I care exactly this much: "".

En bonus je vous rajoute même une de ses répliques à une des personnes de la convo'
Offres d'emploi IT
Expert Business Analyst EDI
non renseigné - Provence Alpes Côte d'Azur - Marseille (13000)
Directeur technique et ingénierie h/f
Florian Mantione Institut - Languedoc Roussillon - Montpellier (34000)
Développeur dotnet h/f
Atos - Lorraine - Metz (57000)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil