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

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



Le 12241ième jour après Epoch,
Yves Rutschle écrivait:

> On Tue, Jul 08, 2003 at 01:38:58AM +0200, François TOURDE wrote:
>> N'empêche que si m4 était intégré à sendmail, mon, bind et autre, on ne
>> pourrait pas l'utiliser pour autre chose. Et en plus bonjour la mise à
>> jour. Là, tu peux upgrader m4 sans être obligé de toucher à tout.
>
> Avec le risque de détruire tes configurations sendmail, mon
> et bind donc.

J'avoue ne pas bien comprendre pourquoi. 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.

D'autre part, le fait qu'un 'module' factorisé impacte plusieurs produits
premet de déterminer ses bugs plus rapidement. Qui plus est, cela impose
un cloisonnement de fait, et évite des effets de bord qui peuvent être assez
désastreux quand ce module est intégré au produit.

>  
>> A mon avis, m4 et le pré-processeur C sont des 'factorisations' de code
>> qui permettent la réutilisation... Encore que pour C ;)
>
> Pour C, le préprocesseur est clairement là pour pallier aux
> faiblesses du langage (regardez
> /usr/src/linux/include/linux/list.h pour une oeuvre d'art).
> (En C, la réutilisation se fait normalement plutôt avec des
> fonctions.)

Je pense que cet exemple, certe un peu fouilli, ne mets pas tellement en
lumière les désavantages du préprocessing. Mais comme je le disais avant, pour
ce qui concerne le C je ne suis pas sûr que le préprocessing au dela des ifdef
et des includes soit un avantage majeur dans la clarté du langage.

La compilation conditionnelle est un avantage indéniable, mais l'utilisation de
macros pour définir des 'fonctions' me semble aussi dangereux que la mauvaise
utilisation des classes template en C++ ...

> J'ai peu de raisons de penser que ça soit différent pour les
> applications sus-citées, vu que d'autres applications (exim
> et postfix pour le mail par exemple) ont des fichiers tout à
> fait lisible. Cela dit, je ne connais que très très peu
> sendmail.

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


-- 
echo $package has manual pages available in source form.
echo "However, you don't have nroff, so they're probably useless to you."
             -- Larry Wall in Configure from the perl distribution
-- 
François TOURDE - tourde.org - 23 rue Bernard GANTE - 93250 VILLEMOMBLE
Tél: 01 49 35 96 69 - Mob: 06 81 01 81 80
eMail: mailto:francois@tourde.org - URL: http://francois.tourde.org/



Reply to: