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.