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.

Répondre à