[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: HS: C++



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 [@~##~{] 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 <dburrows@debian.org>  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.



Reply to: