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

Re: [HS] Preprocessing [Was: Re: Serveur SMTP]



On Tue, Jul 08, 2003 at 02:52:22PM +0200, François TOURDE
wrote:
> > Avec le risque de détruire tes configurations sendmail,
> > mon et bind donc.
> 
> J'avoue ne pas bien comprendre pourquoi. 

Si tu supposes que tu passes de m4 à un hupothétique m5 qui
étend le langage et est incidement incompatible, tu te
retrouves d'un coup avec les 3 services à reconfigurer et à
réecrire et retester les fichiers.

> D'autant plus que la politique Debian sur ce sujet est
> assez efficace à mon sens: unstable, testing et stable
> sont là pour éviter des soucis de ce type lors de mises en
> prod.

Certes, ça n'est sans doute qu'un danger théorique. On
s'éloigne de mon sujet de départ ("le fait qu'il faille un
langage de macro pour génerer des configs sendmail, est un
signe que les configs sendmails ne sont pas assez évoluées")
(Par contre, si il _faut_ un langage dans ce cas, utiliser
un truc standard est certainement une bonne idée).

> La compilation conditionnelle est un avantage indéniable,

Non, même ça ne justifie pas l'utilisation de #ifdef. En
fait, on ne devrait jamais utiliser #ifdef. Linux essaie de
s'en affranchir, d'ailleurs.

L'idée, maintenant, est d'utiliser l'optimisation du
compilateur. Au lieu d'écrire:

#define TOTO 1

(....)

#if TOTO
    reconfigure( toto );
#endif

tu écris:

#define TOTO 1    (on peut toujours pas faire sans)

(...)

   if (TOTO)
       reconfigure( toto );

Selon la valeur de TOTO, le compilateur conserve ou non le
code => tu fais de la compilation conditionnelle sans
#ifdef.

> mais l'utilisation de macros pour définir des 'fonctions'
> me semble aussi dangereux que la mauvaise utilisation des
> classes template en C++ ...

Ouaip, il vaut mieux utiliser des inline. 

> A mon avis, sendmail y gagne énormément avec m4, car plus
> personne ne doit jouer avec la config sendmail d'origine.

Qu'est-ce que sendmail fait, qu'Exim ne fait pas? Qu'est-ce
qui justifie l'utilisation d'un langage de macros pour
génerer sa configuration? ("L'original est trop dur" n'est
pas un bon argument, c'est ce que j'essaie d'expliquer
depuis le début).

/Y

-- 
Marbles should not normally be poked.



Reply to: