On Tue, Nov 09, 2004 at 02:44:04PM +0000, Jean-Luc Coulon (f5ibh) wrote: > Le 09.11.2004 14:01:46, Gabriel Paubert a écrit : > >On Tue, Nov 09, 2004 at 12:45:20PM +0100, Laurent Martelli wrote: > > [ ... ] > > > >- messages d'erreur complètement (abs)cons et déroutants de g++ > >sur des choses aussi simples qu'une parenthèse oubliée avant un > >point virgule et autres bêtises d'édition aussi triviales. > > La plupart des compilateurs gébèrent des messages aussi (abc)cons (sic) > que g++ sur des erreurs aussi [EMAIL PROTECTED] que ça.
Pourquoi le (sic)? Pour l'autre d'accord, mais celui-là? > Mais lorsqu'on utilise ce genre d'outils pour développer (c'est-à-dire > pas seulement pour compiler le travaild es autres), l'indication de > l'emplacement de l'erreur est suffisant pour retreouver la "bêtise > aussi triviale" (sic). Je ne treouve(sic) pas ça si facile. Surtout quand tu te bats pour la première fois avec à la fois C++ et libsigc++ (l'un des summums des templates) et que la ligne qui indique l'erreur dans ton source est perdue au milieu de plusieurs écrans (de 50 lignes) de messages concernant les instantiations embriquées de templates. J'ai fini par trouver le truc: c'est en général la ligne la plus courte! Mais ça impressionne le novice en C++ comme moi qui n'a guère que 25 ans de programmation derrière lui (et non, programmer n'est pas mon job, du moins pas officiellement et certainement pas uniquement). > Un compilateur n'est pas un programme trivial mais celui-ci à > l'avantage d'être open source, je pense qu'un patch pour résoudre de > problème serait apprécié de la communauté toute entière. Je ne peux pas juger pour le moment avec 3.4 ou 4.0, puisque le code ne compile pas. Le problème est justement libsigc++, et toutes les erreurs concernent des templates, mais ça ne devrait pas durer puisque dans sid: libsigc++-2.0 (2.0.6-1) unstable; urgency=low * New upstream release. - Fixes compilation problems with g++-3.4. (Closes: #278985) -- Daniel Burrows <[EMAIL PROTECTED]> Sat, 30 Oct 2004 16:37:25 -0400 Il est fort possible que les diagnostics soient devenus bien meilleurs, puisqu'il a bien fallu se rendre à l'évidence: les générateurs automatiques d'analyseurs lexicaux ne marchent que pour les cas simples (personnellement je les hais et n'ai jamais réussi à les comprendre), pas pour quelque chose d'aussi compliqué que C++. L'analyseur d'Ada, écrit depuis le début à la main, donne des diagnostics autrement plus compréhensibles, et a nettement moins tendance à produire des centaines de lignes de messages d'erreur pour un seul point-virgule manquant. Enfin, je pense bientôt pouvoir parler des diagnostics de 3.4 ou 4.0 en connaissance de cause. Gabriel.