En news:g6274t$mf0$, Marc Espie va escriure:In article <g623ii$mo4$, Antoine Leca wrote:Exemple pratique : sur certaines architectures, les adresses sont des
adresses de int/click/cluster/que_sais_je, donc un pointeur vers
char (et donc un void*) est plus « gros », à l'adresse classique se
rajoute une sous-adresse pour savoir de quel char il s'agit à
l'intérieur du machin dont on a l'adresse.
Évidemment, dans ce cas-là, sizeof(char*) > sizeof(T*).
[...] Cependant la cause la plus claire de problème est
le cas indirect : comme le void* est plus gros, cela décale les
paramètres suivants; donc en lisant le T* on va lire l'adresse de
objet et c'est OK, on récupère ce que l'on veut; par contre la
sous-adresse qui suit n'a pas été dépilée, et quand la fonction
variadique va lire l'argument suivant, BOUM.
Il me semble me souvenir que c'est explicitement interdit par la
norme, que les cast d'objets vers void* and back preservent la
valeur...
Certes, mais pas la représentation.
Cast vers void* : on rajoute une sous-adresse à 0, et le pointeur résultant
est plus gros.
Cast depuis void* : on vérifie éventuellement que la sous-adresse est à 0
(en fait si elle ne l'est pas on est en plein comportement indéfini, c'est
tout le propos du morceau de norme auquel tu fais référence), on laisse
tomber la sous-adresse et on revient au pointeur maigre original.
En news:g6274t$mf0$1@biggoron.nerim.net, Marc Espie va escriure:
In article <g623ii$mo4$1@shakotay.alphanet.ch>, Antoine Leca wrote:
Exemple pratique : sur certaines architectures, les adresses sont des
adresses de int/click/cluster/que_sais_je, donc un pointeur vers
char (et donc un void*) est plus « gros », à l'adresse classique se
rajoute une sous-adresse pour savoir de quel char il s'agit à
l'intérieur du machin dont on a l'adresse.
Évidemment, dans ce cas-là, sizeof(char*) > sizeof(T*).
[...] Cependant la cause la plus claire de problème est
le cas indirect : comme le void* est plus gros, cela décale les
paramètres suivants; donc en lisant le T* on va lire l'adresse de
objet et c'est OK, on récupère ce que l'on veut; par contre la
sous-adresse qui suit n'a pas été dépilée, et quand la fonction
variadique va lire l'argument suivant, BOUM.
Il me semble me souvenir que c'est explicitement interdit par la
norme, que les cast d'objets vers void* and back preservent la
valeur...
Certes, mais pas la représentation.
Cast vers void* : on rajoute une sous-adresse à 0, et le pointeur résultant
est plus gros.
Cast depuis void* : on vérifie éventuellement que la sous-adresse est à 0
(en fait si elle ne l'est pas on est en plein comportement indéfini, c'est
tout le propos du morceau de norme auquel tu fais référence), on laisse
tomber la sous-adresse et on revient au pointeur maigre original.
En news:g6274t$mf0$, Marc Espie va escriure:In article <g623ii$mo4$, Antoine Leca wrote:Exemple pratique : sur certaines architectures, les adresses sont des
adresses de int/click/cluster/que_sais_je, donc un pointeur vers
char (et donc un void*) est plus « gros », à l'adresse classique se
rajoute une sous-adresse pour savoir de quel char il s'agit à
l'intérieur du machin dont on a l'adresse.
Évidemment, dans ce cas-là, sizeof(char*) > sizeof(T*).
[...] Cependant la cause la plus claire de problème est
le cas indirect : comme le void* est plus gros, cela décale les
paramètres suivants; donc en lisant le T* on va lire l'adresse de
objet et c'est OK, on récupère ce que l'on veut; par contre la
sous-adresse qui suit n'a pas été dépilée, et quand la fonction
variadique va lire l'argument suivant, BOUM.
Il me semble me souvenir que c'est explicitement interdit par la
norme, que les cast d'objets vers void* and back preservent la
valeur...
Certes, mais pas la représentation.
Cast vers void* : on rajoute une sous-adresse à 0, et le pointeur résultant
est plus gros.
Cast depuis void* : on vérifie éventuellement que la sous-adresse est à 0
(en fait si elle ne l'est pas on est en plein comportement indéfini, c'est
tout le propos du morceau de norme auquel tu fais référence), on laisse
tomber la sous-adresse et on revient au pointeur maigre original.
Les quelques avantages de cmake.
- il genere tout seul des trucs qui passent tres bien a travers un
make parallele.
- il remplace autoconf/automake/libtool. Surtout libtool, en fait.
Au moins il sait pondre des bibliotheques sans se planter, et
surtout il ne multiplie pas les temps de compilation par deux grace
a un shell-script fourre au milieu.
- le systeme de cache de valeurs fonctionne, et est standardisee.
- il n'y a pas l'immense bibliotheque de *.m4 d'autoconf, ce qui est a la
fois un inconvenient et une chance, vu qu'il n'y a pas les bugs qui vont
avec.
Sur des projets existants, plus le projet est complet, plus son
infrastructure de build est a moitie cassee, plus ca va etre dur de
reverse-engineerer pour nettoyer et passer a cmake
<mauvaise langue>ca doit etre le cas de mpfr, par exemple</mauvaise langue>.
A cote de ca, certains tres gros projets ont adopte cmake, kde en tete,
et en sont fort contents... entre autres parce que leur build va
incroyablement plus vite, il n'y a qu'a comparer kde3 avec un autotools
*amenage pour essayer d'aller plus vite* et kde4 avec cmake *qui compile
reellement plus vite*, surtout sur des machines multi-processeurs.
La difference est flagrante.
cmake fonctionne avec d'autres choses que des outils gnu.
Il ne necessite pas d'utiliser gnu-make, il ne reclame pas
l'installation de gnu-m4,
et il sait meme pondre des bibliotheques pour MacOS X.
Bref, tu risques d'attendre tres longtemps avant de voir du cmake dans
tout projet vaguement affilie a la FSF. La ligne du parti etant que
autoconf/automake/libtool c'est bien, et que leurs defauts sont lies
a la complexite de ce qu'ils doivent gerer (tu parles, leur defaut,
c'est surtout un design foireux qui a passe la date de peremption de
10 ans ou a peu pres. Ecrire du meta-truc en perl*4*, en m4, et en Bourne
Shell, il y a de quoi se flinguer).
cote scons, je connais tres mal.
Le plus gros probleme de scons, c'est sans doute qu'il faut un python
d'installe pour s'en servir, tandis que cmake, une fois compile,
fonctionne avec un systeme de base...
Les quelques avantages de cmake.
- il genere tout seul des trucs qui passent tres bien a travers un
make parallele.
- il remplace autoconf/automake/libtool. Surtout libtool, en fait.
Au moins il sait pondre des bibliotheques sans se planter, et
surtout il ne multiplie pas les temps de compilation par deux grace
a un shell-script fourre au milieu.
- le systeme de cache de valeurs fonctionne, et est standardisee.
- il n'y a pas l'immense bibliotheque de *.m4 d'autoconf, ce qui est a la
fois un inconvenient et une chance, vu qu'il n'y a pas les bugs qui vont
avec.
Sur des projets existants, plus le projet est complet, plus son
infrastructure de build est a moitie cassee, plus ca va etre dur de
reverse-engineerer pour nettoyer et passer a cmake
<mauvaise langue>ca doit etre le cas de mpfr, par exemple</mauvaise langue>.
A cote de ca, certains tres gros projets ont adopte cmake, kde en tete,
et en sont fort contents... entre autres parce que leur build va
incroyablement plus vite, il n'y a qu'a comparer kde3 avec un autotools
*amenage pour essayer d'aller plus vite* et kde4 avec cmake *qui compile
reellement plus vite*, surtout sur des machines multi-processeurs.
La difference est flagrante.
cmake fonctionne avec d'autres choses que des outils gnu.
Il ne necessite pas d'utiliser gnu-make, il ne reclame pas
l'installation de gnu-m4,
et il sait meme pondre des bibliotheques pour MacOS X.
Bref, tu risques d'attendre tres longtemps avant de voir du cmake dans
tout projet vaguement affilie a la FSF. La ligne du parti etant que
autoconf/automake/libtool c'est bien, et que leurs defauts sont lies
a la complexite de ce qu'ils doivent gerer (tu parles, leur defaut,
c'est surtout un design foireux qui a passe la date de peremption de
10 ans ou a peu pres. Ecrire du meta-truc en perl*4*, en m4, et en Bourne
Shell, il y a de quoi se flinguer).
cote scons, je connais tres mal.
Le plus gros probleme de scons, c'est sans doute qu'il faut un python
d'installe pour s'en servir, tandis que cmake, une fois compile,
fonctionne avec un systeme de base...
Les quelques avantages de cmake.
- il genere tout seul des trucs qui passent tres bien a travers un
make parallele.
- il remplace autoconf/automake/libtool. Surtout libtool, en fait.
Au moins il sait pondre des bibliotheques sans se planter, et
surtout il ne multiplie pas les temps de compilation par deux grace
a un shell-script fourre au milieu.
- le systeme de cache de valeurs fonctionne, et est standardisee.
- il n'y a pas l'immense bibliotheque de *.m4 d'autoconf, ce qui est a la
fois un inconvenient et une chance, vu qu'il n'y a pas les bugs qui vont
avec.
Sur des projets existants, plus le projet est complet, plus son
infrastructure de build est a moitie cassee, plus ca va etre dur de
reverse-engineerer pour nettoyer et passer a cmake
<mauvaise langue>ca doit etre le cas de mpfr, par exemple</mauvaise langue>.
A cote de ca, certains tres gros projets ont adopte cmake, kde en tete,
et en sont fort contents... entre autres parce que leur build va
incroyablement plus vite, il n'y a qu'a comparer kde3 avec un autotools
*amenage pour essayer d'aller plus vite* et kde4 avec cmake *qui compile
reellement plus vite*, surtout sur des machines multi-processeurs.
La difference est flagrante.
cmake fonctionne avec d'autres choses que des outils gnu.
Il ne necessite pas d'utiliser gnu-make, il ne reclame pas
l'installation de gnu-m4,
et il sait meme pondre des bibliotheques pour MacOS X.
Bref, tu risques d'attendre tres longtemps avant de voir du cmake dans
tout projet vaguement affilie a la FSF. La ligne du parti etant que
autoconf/automake/libtool c'est bien, et que leurs defauts sont lies
a la complexite de ce qu'ils doivent gerer (tu parles, leur defaut,
c'est surtout un design foireux qui a passe la date de peremption de
10 ans ou a peu pres. Ecrire du meta-truc en perl*4*, en m4, et en Bourne
Shell, il y a de quoi se flinguer).
cote scons, je connais tres mal.
Le plus gros probleme de scons, c'est sans doute qu'il faut un python
d'installe pour s'en servir, tandis que cmake, une fois compile,
fonctionne avec un systeme de base...
> ce qui veut dire que sur ces archis, tu dois reserver de la
> place en plus pour tes void* pour permettre les cast.
C'est toujours vrai (je crois que l'on peut montrer que sizeof(void*) majore
sizeof() de tous les pointeurs vers objets, en tous cas c'est une propriété
souvent utilisée pour déterminer les « alignements universels »).
Mais je n'arrive pas à en déduire que pour les fonctions variadiques
dont nous parlions, on est obligé de passer _tous_ les pointeurs
comme des pointeurs void*.
> ce qui veut dire que sur ces archis, tu dois reserver de la
> place en plus pour tes void* pour permettre les cast.
C'est toujours vrai (je crois que l'on peut montrer que sizeof(void*) majore
sizeof() de tous les pointeurs vers objets, en tous cas c'est une propriété
souvent utilisée pour déterminer les « alignements universels »).
Mais je n'arrive pas à en déduire que pour les fonctions variadiques
dont nous parlions, on est obligé de passer _tous_ les pointeurs
comme des pointeurs void*.
> ce qui veut dire que sur ces archis, tu dois reserver de la
> place en plus pour tes void* pour permettre les cast.
C'est toujours vrai (je crois que l'on peut montrer que sizeof(void*) majore
sizeof() de tous les pointeurs vers objets, en tous cas c'est une propriété
souvent utilisée pour déterminer les « alignements universels »).
Mais je n'arrive pas à en déduire que pour les fonctions variadiques
dont nous parlions, on est obligé de passer _tous_ les pointeurs
comme des pointeurs void*.
Dans l'article <g61qf9$lhq$,
Marc Espie écrit:Les quelques avantages de cmake.
- il genere tout seul des trucs qui passent tres bien a travers un
make parallele.
C'est la moindre des choses. Personnellement je compile systématiquement
avec "make -j2", je ne n'ai jamais vu de problème avec les autotools.
- il remplace autoconf/automake/libtool. Surtout libtool, en fait.
Au moins il sait pondre des bibliotheques sans se planter, et
surtout il ne multiplie pas les temps de compilation par deux grace
a un shell-script fourre au milieu.
C'est une bonne chose. Maintenant est-ce que ça a été utilisé sur
autant de plateformes et avec autant de configurations que libtool?
Je demande à voir...
- le systeme de cache de valeurs fonctionne, et est standardisee.
À ma connaissance, le système de cache de valeurs fonctionne aussi
avec les autotools. Mais je le trouve très lourd et inintuitif à
utiliser, ce qui peut poser des problèmes aux développeurs.
- il n'y a pas l'immense bibliotheque de *.m4 d'autoconf, ce qui est a la
fois un inconvenient et une chance, vu qu'il n'y a pas les bugs qui vont
avec.
Mais d'un autre côté, si les développeurs sont obligés de réimplémenter
ce que fait la bibliothèque des *.m4, ils risquent aussi d'ajouter des
bugs, d'autant plus que leur propre code sera moins testé.
Sur des projets existants, plus le projet est complet, plus son
infrastructure de build est a moitie cassee, plus ca va etre dur de
reverse-engineerer pour nettoyer et passer a cmake
<mauvaise langue>ca doit etre le cas de mpfr, par exemple</mauvaise langue>.
On n'a pas de connaissance de problème avec l'infrastructure de build
de MPFR, excepté trois bugs de libtool et la dépendance à l'utilitaire
"diff" ("diff" n'existe pas en standard sur Maemo). Le premier bug est
la détection automatique des flags nécessaire au ld sur de vieilles
versions de Solaris[*] (mais je ne suis pas sûr que cmake sache faire
cela automatiquement). Le 2e problème est que les dernières versions
d'icc ne reconnaissent plus l'option -KPIC (idem, cmake sait-il faire
la différence entre les différentes versions de icc?). Et le 3e est
que libtool pense que sur une machine Linux/SuSE/PowerPC, le RPATH
est prioritaire sur le LD_LIBRARY_PATH, alors que sur cette machine
particulière, c'est l'inverse.
Mais si tu lis les archives de kde-buildsystem, tu verras qu'il y a
des problèmes avec cmake, e.g.
http://mail.kde.org/pipermail/kde-buildsystem/2007-October/004213.html
Bref, tu risques d'attendre tres longtemps avant de voir du cmake dans
tout projet vaguement affilie a la FSF. La ligne du parti etant que
autoconf/automake/libtool c'est bien, et que leurs defauts sont lies
a la complexite de ce qu'ils doivent gerer (tu parles, leur defaut,
c'est surtout un design foireux qui a passe la date de peremption de
10 ans ou a peu pres. Ecrire du meta-truc en perl*4*, en m4, et en Bourne
Shell, il y a de quoi se flinguer).
Il n'y a aucune dépendance à perl4 (ou autre version). Mais tout à fait
d'accord sur la remarque concernant m4 et le Bourne shell (en fait,
plutôt /bin/sh, qui peut soit être un Bourne shell traditionnel, soit
être un POSIX shell).
Dans l'article <g61qf9$lhq$1@biggoron.nerim.net>,
Marc Espie <espie@lain.home> écrit:
Les quelques avantages de cmake.
- il genere tout seul des trucs qui passent tres bien a travers un
make parallele.
C'est la moindre des choses. Personnellement je compile systématiquement
avec "make -j2", je ne n'ai jamais vu de problème avec les autotools.
- il remplace autoconf/automake/libtool. Surtout libtool, en fait.
Au moins il sait pondre des bibliotheques sans se planter, et
surtout il ne multiplie pas les temps de compilation par deux grace
a un shell-script fourre au milieu.
C'est une bonne chose. Maintenant est-ce que ça a été utilisé sur
autant de plateformes et avec autant de configurations que libtool?
Je demande à voir...
- le systeme de cache de valeurs fonctionne, et est standardisee.
À ma connaissance, le système de cache de valeurs fonctionne aussi
avec les autotools. Mais je le trouve très lourd et inintuitif à
utiliser, ce qui peut poser des problèmes aux développeurs.
- il n'y a pas l'immense bibliotheque de *.m4 d'autoconf, ce qui est a la
fois un inconvenient et une chance, vu qu'il n'y a pas les bugs qui vont
avec.
Mais d'un autre côté, si les développeurs sont obligés de réimplémenter
ce que fait la bibliothèque des *.m4, ils risquent aussi d'ajouter des
bugs, d'autant plus que leur propre code sera moins testé.
Sur des projets existants, plus le projet est complet, plus son
infrastructure de build est a moitie cassee, plus ca va etre dur de
reverse-engineerer pour nettoyer et passer a cmake
<mauvaise langue>ca doit etre le cas de mpfr, par exemple</mauvaise langue>.
On n'a pas de connaissance de problème avec l'infrastructure de build
de MPFR, excepté trois bugs de libtool et la dépendance à l'utilitaire
"diff" ("diff" n'existe pas en standard sur Maemo). Le premier bug est
la détection automatique des flags nécessaire au ld sur de vieilles
versions de Solaris[*] (mais je ne suis pas sûr que cmake sache faire
cela automatiquement). Le 2e problème est que les dernières versions
d'icc ne reconnaissent plus l'option -KPIC (idem, cmake sait-il faire
la différence entre les différentes versions de icc?). Et le 3e est
que libtool pense que sur une machine Linux/SuSE/PowerPC, le RPATH
est prioritaire sur le LD_LIBRARY_PATH, alors que sur cette machine
particulière, c'est l'inverse.
Mais si tu lis les archives de kde-buildsystem, tu verras qu'il y a
des problèmes avec cmake, e.g.
http://mail.kde.org/pipermail/kde-buildsystem/2007-October/004213.html
Bref, tu risques d'attendre tres longtemps avant de voir du cmake dans
tout projet vaguement affilie a la FSF. La ligne du parti etant que
autoconf/automake/libtool c'est bien, et que leurs defauts sont lies
a la complexite de ce qu'ils doivent gerer (tu parles, leur defaut,
c'est surtout un design foireux qui a passe la date de peremption de
10 ans ou a peu pres. Ecrire du meta-truc en perl*4*, en m4, et en Bourne
Shell, il y a de quoi se flinguer).
Il n'y a aucune dépendance à perl4 (ou autre version). Mais tout à fait
d'accord sur la remarque concernant m4 et le Bourne shell (en fait,
plutôt /bin/sh, qui peut soit être un Bourne shell traditionnel, soit
être un POSIX shell).
Dans l'article <g61qf9$lhq$,
Marc Espie écrit:Les quelques avantages de cmake.
- il genere tout seul des trucs qui passent tres bien a travers un
make parallele.
C'est la moindre des choses. Personnellement je compile systématiquement
avec "make -j2", je ne n'ai jamais vu de problème avec les autotools.
- il remplace autoconf/automake/libtool. Surtout libtool, en fait.
Au moins il sait pondre des bibliotheques sans se planter, et
surtout il ne multiplie pas les temps de compilation par deux grace
a un shell-script fourre au milieu.
C'est une bonne chose. Maintenant est-ce que ça a été utilisé sur
autant de plateformes et avec autant de configurations que libtool?
Je demande à voir...
- le systeme de cache de valeurs fonctionne, et est standardisee.
À ma connaissance, le système de cache de valeurs fonctionne aussi
avec les autotools. Mais je le trouve très lourd et inintuitif à
utiliser, ce qui peut poser des problèmes aux développeurs.
- il n'y a pas l'immense bibliotheque de *.m4 d'autoconf, ce qui est a la
fois un inconvenient et une chance, vu qu'il n'y a pas les bugs qui vont
avec.
Mais d'un autre côté, si les développeurs sont obligés de réimplémenter
ce que fait la bibliothèque des *.m4, ils risquent aussi d'ajouter des
bugs, d'autant plus que leur propre code sera moins testé.
Sur des projets existants, plus le projet est complet, plus son
infrastructure de build est a moitie cassee, plus ca va etre dur de
reverse-engineerer pour nettoyer et passer a cmake
<mauvaise langue>ca doit etre le cas de mpfr, par exemple</mauvaise langue>.
On n'a pas de connaissance de problème avec l'infrastructure de build
de MPFR, excepté trois bugs de libtool et la dépendance à l'utilitaire
"diff" ("diff" n'existe pas en standard sur Maemo). Le premier bug est
la détection automatique des flags nécessaire au ld sur de vieilles
versions de Solaris[*] (mais je ne suis pas sûr que cmake sache faire
cela automatiquement). Le 2e problème est que les dernières versions
d'icc ne reconnaissent plus l'option -KPIC (idem, cmake sait-il faire
la différence entre les différentes versions de icc?). Et le 3e est
que libtool pense que sur une machine Linux/SuSE/PowerPC, le RPATH
est prioritaire sur le LD_LIBRARY_PATH, alors que sur cette machine
particulière, c'est l'inverse.
Mais si tu lis les archives de kde-buildsystem, tu verras qu'il y a
des problèmes avec cmake, e.g.
http://mail.kde.org/pipermail/kde-buildsystem/2007-October/004213.html
Bref, tu risques d'attendre tres longtemps avant de voir du cmake dans
tout projet vaguement affilie a la FSF. La ligne du parti etant que
autoconf/automake/libtool c'est bien, et que leurs defauts sont lies
a la complexite de ce qu'ils doivent gerer (tu parles, leur defaut,
c'est surtout un design foireux qui a passe la date de peremption de
10 ans ou a peu pres. Ecrire du meta-truc en perl*4*, en m4, et en Bourne
Shell, il y a de quoi se flinguer).
Il n'y a aucune dépendance à perl4 (ou autre version). Mais tout à fait
d'accord sur la remarque concernant m4 et le Bourne shell (en fait,
plutôt /bin/sh, qui peut soit être un Bourne shell traditionnel, soit
être un POSIX shell).
In article <20080721195615$,
Vincent Lefevre <vincent+ wrote:
>C'est la moindre des choses. Personnellement je compile systématiquement
>avec "make -j2", je ne n'ai jamais vu de problème avec les autotools.
Il y en a pourtant un enorme, tres visible sur des gros projets genre KDE,
qui utilisent fortement du make recursif...
Tu disais `utilise sur autant de plateformes' ?
>> - le systeme de cache de valeurs fonctionne, et est standardisee.
>À ma connaissance, le système de cache de valeurs fonctionne aussi
>avec les autotools. Mais je le trouve très lourd et inintuitif à
>utiliser, ce qui peut poser des problèmes aux développeurs.
Me suis mal exprime, c'est plutot la facon d'activer/desactiver certaines
options qui est merdique. Genre, tu as un logiciel installe sur ta machine,
et tu veux qu'autoconf l'ignore... la plupart du temps, tu es oblige d'aller
voir le script, et une fois sur deux, ca merdoie.
vu les bugs existants dans la bibliotheque existante, je ne sais pas si
c'est important. Encore un exemple du meme tonneau: les test
d'internationalisation sont buggues jusqu'a l'os, ils cherchent un
libintl.so, qui n'existent pas chez nous, et decident de linker ensuite
en ajouter /usr/local/lib/libintl.a, au lieu de betement vers un -lintl.
je ne compte plus les logiciels ou il a fallu changer ca a la main...
sans compter que, meme si tu corriges a la source, ca va prendre quinze
plombes pour se propager a tous les logiciels qui s'en servent...
faut dire que le mecanisme d'aclocal.m4 et consorts est un peu complique.
Allez, de tete, c'est quoi qui depend de quoi et est regenere par quel
outil ?
>Il n'y a aucune dépendance à perl4 (ou autre version). Mais tout à fait
>d'accord sur la remarque concernant m4 et le Bourne shell (en fait,
>plutôt /bin/sh, qui peut soit être un Bourne shell traditionnel, soit
>être un POSIX shell).
Ah oui, tu as raison, automake est finalement passe a perl5, et autoconf
aussi. Bon, c'est du perl tout moche (il y a quelqu'un qui n'a pas compris
que les prototypes ne servent pas a ce qu'il pense), mais c'est mieux que
rien...
In article <20080721195615$19a5@ay.vinc17.org>,
Vincent Lefevre <vincent+news@vinc17.org> wrote:
>C'est la moindre des choses. Personnellement je compile systématiquement
>avec "make -j2", je ne n'ai jamais vu de problème avec les autotools.
Il y en a pourtant un enorme, tres visible sur des gros projets genre KDE,
qui utilisent fortement du make recursif...
Tu disais `utilise sur autant de plateformes' ?
>> - le systeme de cache de valeurs fonctionne, et est standardisee.
>À ma connaissance, le système de cache de valeurs fonctionne aussi
>avec les autotools. Mais je le trouve très lourd et inintuitif à
>utiliser, ce qui peut poser des problèmes aux développeurs.
Me suis mal exprime, c'est plutot la facon d'activer/desactiver certaines
options qui est merdique. Genre, tu as un logiciel installe sur ta machine,
et tu veux qu'autoconf l'ignore... la plupart du temps, tu es oblige d'aller
voir le script, et une fois sur deux, ca merdoie.
vu les bugs existants dans la bibliotheque existante, je ne sais pas si
c'est important. Encore un exemple du meme tonneau: les test
d'internationalisation sont buggues jusqu'a l'os, ils cherchent un
libintl.so, qui n'existent pas chez nous, et decident de linker ensuite
en ajouter /usr/local/lib/libintl.a, au lieu de betement vers un -lintl.
je ne compte plus les logiciels ou il a fallu changer ca a la main...
sans compter que, meme si tu corriges a la source, ca va prendre quinze
plombes pour se propager a tous les logiciels qui s'en servent...
faut dire que le mecanisme d'aclocal.m4 et consorts est un peu complique.
Allez, de tete, c'est quoi qui depend de quoi et est regenere par quel
outil ?
>Il n'y a aucune dépendance à perl4 (ou autre version). Mais tout à fait
>d'accord sur la remarque concernant m4 et le Bourne shell (en fait,
>plutôt /bin/sh, qui peut soit être un Bourne shell traditionnel, soit
>être un POSIX shell).
Ah oui, tu as raison, automake est finalement passe a perl5, et autoconf
aussi. Bon, c'est du perl tout moche (il y a quelqu'un qui n'a pas compris
que les prototypes ne servent pas a ce qu'il pense), mais c'est mieux que
rien...
In article <20080721195615$,
Vincent Lefevre <vincent+ wrote:
>C'est la moindre des choses. Personnellement je compile systématiquement
>avec "make -j2", je ne n'ai jamais vu de problème avec les autotools.
Il y en a pourtant un enorme, tres visible sur des gros projets genre KDE,
qui utilisent fortement du make recursif...
Tu disais `utilise sur autant de plateformes' ?
>> - le systeme de cache de valeurs fonctionne, et est standardisee.
>À ma connaissance, le système de cache de valeurs fonctionne aussi
>avec les autotools. Mais je le trouve très lourd et inintuitif à
>utiliser, ce qui peut poser des problèmes aux développeurs.
Me suis mal exprime, c'est plutot la facon d'activer/desactiver certaines
options qui est merdique. Genre, tu as un logiciel installe sur ta machine,
et tu veux qu'autoconf l'ignore... la plupart du temps, tu es oblige d'aller
voir le script, et une fois sur deux, ca merdoie.
vu les bugs existants dans la bibliotheque existante, je ne sais pas si
c'est important. Encore un exemple du meme tonneau: les test
d'internationalisation sont buggues jusqu'a l'os, ils cherchent un
libintl.so, qui n'existent pas chez nous, et decident de linker ensuite
en ajouter /usr/local/lib/libintl.a, au lieu de betement vers un -lintl.
je ne compte plus les logiciels ou il a fallu changer ca a la main...
sans compter que, meme si tu corriges a la source, ca va prendre quinze
plombes pour se propager a tous les logiciels qui s'en servent...
faut dire que le mecanisme d'aclocal.m4 et consorts est un peu complique.
Allez, de tete, c'est quoi qui depend de quoi et est regenere par quel
outil ?
>Il n'y a aucune dépendance à perl4 (ou autre version). Mais tout à fait
>d'accord sur la remarque concernant m4 et le Bourne shell (en fait,
>plutôt /bin/sh, qui peut soit être un Bourne shell traditionnel, soit
>être un POSIX shell).
Ah oui, tu as raison, automake est finalement passe a perl5, et autoconf
aussi. Bon, c'est du perl tout moche (il y a quelqu'un qui n'a pas compris
que les prototypes ne servent pas a ce qu'il pense), mais c'est mieux que
rien...
Dans l'article <g62vgd$sn7$,
Marc Espie écrit:In article <20080721195615$,
Vincent Lefevre <vincent+ wrote:
>C'est la moindre des choses. Personnellement je compile systématiquement
>avec "make -j2", je ne n'ai jamais vu de problème avec les autotools.Il y en a pourtant un enorme, tres visible sur des gros projets genre KDE,
qui utilisent fortement du make recursif...
Tu as des références? Parce que sans rien citer, c'est juste du FUD.
Et ce n'est pas parce que ça foire pour KDE que c'est forcément un
problème des autotools, puisqu'à part un certain nombre de règles de
base générées par les autotools, les règles spécifiques sont écrites
par les développeurs du projet, et c'est là qu'il peut y avoir un
problème (au passage, Mutt avait un bug de ce genre pour la génération
de la documentation[*]).
[*] http://dev.mutt.org/trac/ticket/2538Tu disais `utilise sur autant de plateformes' ?
En tout cas, avec MPFR, on n'a pas de problème, que ce soit sous Linux
(excepté la machine particulière SuSE), Solaris, Mac OS X, NetBSD,
FreeBSD, IRIX. Tu peux le voir par les plateformes supportées et les
divers paquets:
http://www.mpfr.org/mpfr-2.3.1/
>> - le systeme de cache de valeurs fonctionne, et est standardisee.>À ma connaissance, le système de cache de valeurs fonctionne aussi
>avec les autotools. Mais je le trouve très lourd et inintuitif à
>utiliser, ce qui peut poser des problèmes aux développeurs.Me suis mal exprime, c'est plutot la facon d'activer/desactiver certaines
options qui est merdique. Genre, tu as un logiciel installe sur ta machine,
et tu veux qu'autoconf l'ignore... la plupart du temps, tu es oblige d'aller
voir le script, et une fois sur deux, ca merdoie.
Je ne comprends pas.
Là, MPFR n'est pas concerné.je ne compte plus les logiciels ou il a fallu changer ca a la main...
sans compter que, meme si tu corriges a la source, ca va prendre quinze
plombes pour se propager a tous les logiciels qui s'en servent...
C'est pareil pour tout système de build.
Dans l'article <g62vgd$sn7$1@biggoron.nerim.net>,
Marc Espie <espie@lain.home> écrit:
In article <20080721195615$19a5@ay.vinc17.org>,
Vincent Lefevre <vincent+news@vinc17.org> wrote:
>C'est la moindre des choses. Personnellement je compile systématiquement
>avec "make -j2", je ne n'ai jamais vu de problème avec les autotools.
Il y en a pourtant un enorme, tres visible sur des gros projets genre KDE,
qui utilisent fortement du make recursif...
Tu as des références? Parce que sans rien citer, c'est juste du FUD.
Et ce n'est pas parce que ça foire pour KDE que c'est forcément un
problème des autotools, puisqu'à part un certain nombre de règles de
base générées par les autotools, les règles spécifiques sont écrites
par les développeurs du projet, et c'est là qu'il peut y avoir un
problème (au passage, Mutt avait un bug de ce genre pour la génération
de la documentation[*]).
[*] http://dev.mutt.org/trac/ticket/2538
Tu disais `utilise sur autant de plateformes' ?
En tout cas, avec MPFR, on n'a pas de problème, que ce soit sous Linux
(excepté la machine particulière SuSE), Solaris, Mac OS X, NetBSD,
FreeBSD, IRIX. Tu peux le voir par les plateformes supportées et les
divers paquets:
http://www.mpfr.org/mpfr-2.3.1/
>> - le systeme de cache de valeurs fonctionne, et est standardisee.
>À ma connaissance, le système de cache de valeurs fonctionne aussi
>avec les autotools. Mais je le trouve très lourd et inintuitif à
>utiliser, ce qui peut poser des problèmes aux développeurs.
Me suis mal exprime, c'est plutot la facon d'activer/desactiver certaines
options qui est merdique. Genre, tu as un logiciel installe sur ta machine,
et tu veux qu'autoconf l'ignore... la plupart du temps, tu es oblige d'aller
voir le script, et une fois sur deux, ca merdoie.
Je ne comprends pas.
Là, MPFR n'est pas concerné.
je ne compte plus les logiciels ou il a fallu changer ca a la main...
sans compter que, meme si tu corriges a la source, ca va prendre quinze
plombes pour se propager a tous les logiciels qui s'en servent...
C'est pareil pour tout système de build.
Dans l'article <g62vgd$sn7$,
Marc Espie écrit:In article <20080721195615$,
Vincent Lefevre <vincent+ wrote:
>C'est la moindre des choses. Personnellement je compile systématiquement
>avec "make -j2", je ne n'ai jamais vu de problème avec les autotools.Il y en a pourtant un enorme, tres visible sur des gros projets genre KDE,
qui utilisent fortement du make recursif...
Tu as des références? Parce que sans rien citer, c'est juste du FUD.
Et ce n'est pas parce que ça foire pour KDE que c'est forcément un
problème des autotools, puisqu'à part un certain nombre de règles de
base générées par les autotools, les règles spécifiques sont écrites
par les développeurs du projet, et c'est là qu'il peut y avoir un
problème (au passage, Mutt avait un bug de ce genre pour la génération
de la documentation[*]).
[*] http://dev.mutt.org/trac/ticket/2538Tu disais `utilise sur autant de plateformes' ?
En tout cas, avec MPFR, on n'a pas de problème, que ce soit sous Linux
(excepté la machine particulière SuSE), Solaris, Mac OS X, NetBSD,
FreeBSD, IRIX. Tu peux le voir par les plateformes supportées et les
divers paquets:
http://www.mpfr.org/mpfr-2.3.1/
>> - le systeme de cache de valeurs fonctionne, et est standardisee.>À ma connaissance, le système de cache de valeurs fonctionne aussi
>avec les autotools. Mais je le trouve très lourd et inintuitif à
>utiliser, ce qui peut poser des problèmes aux développeurs.Me suis mal exprime, c'est plutot la facon d'activer/desactiver certaines
options qui est merdique. Genre, tu as un logiciel installe sur ta machine,
et tu veux qu'autoconf l'ignore... la plupart du temps, tu es oblige d'aller
voir le script, et une fois sur deux, ca merdoie.
Je ne comprends pas.
Là, MPFR n'est pas concerné.je ne compte plus les logiciels ou il a fallu changer ca a la main...
sans compter que, meme si tu corriges a la source, ca va prendre quinze
plombes pour se propager a tous les logiciels qui s'en servent...
C'est pareil pour tout système de build.
In article <20080721235703$,
Vincent Lefevre <vincent+ wrote:
>Dans l'article <g62vgd$sn7$,
> Marc Espie écrit:
>
>> In article <20080721195615$,
>> Vincent Lefevre <vincent+ wrote:
>> >C'est la moindre des choses. Personnellement je compile systématiquement
>> >avec "make -j2", je ne n'ai jamais vu de problème avec les autotools.
>
>> Il y en a pourtant un enorme, tres visible sur des gros projets genre KDE,
>> qui utilisent fortement du make recursif...
>
>Tu as des références? Parce que sans rien citer, c'est juste du FUD.
C'est la vitesse sur les repertoires multiples,
puisqu'autoconf/automake/libtool est sequentiel a ce niveau.
Tu veux faire du packaging reproductible -> il faut pouvoir expliquer
a autoconf `prend-moi ca, ca, et ca comme applications, et ne detecte
surtout pas le reste'. C'est le truc qui merdoie regulierement dans nos
builds de packages.
J'aurais un debut de systeme de packaging qui prend tout ca en
compte... Les principaux blocages sont au niveau de libtool et
pkg-config, qu'il va falloir serieusement charcuter pour avoir la
moindre chance que ca fonctionne.
>> je ne compte plus les logiciels ou il a fallu changer ca a la main...
>> sans compter que, meme si tu corriges a la source, ca va prendre quinze
>> plombes pour se propager a tous les logiciels qui s'en servent...
>
>C'est pareil pour tout système de build.
Et non, pas pour cmake. Evidemment, tu te paies le cout de la compilation
de cmake une fois, mais ce dernier est suffisamment rapide pour generer
ce dont il a besoin au vol: tu ne distribues aucun fichier genere, tu
comptes sur la personne pour installer cmake...
In article <20080721235703$7cd9@ay.vinc17.org>,
Vincent Lefevre <vincent+news@vinc17.org> wrote:
>Dans l'article <g62vgd$sn7$1@biggoron.nerim.net>,
> Marc Espie <espie@lain.home> écrit:
>
>> In article <20080721195615$19a5@ay.vinc17.org>,
>> Vincent Lefevre <vincent+news@vinc17.org> wrote:
>> >C'est la moindre des choses. Personnellement je compile systématiquement
>> >avec "make -j2", je ne n'ai jamais vu de problème avec les autotools.
>
>> Il y en a pourtant un enorme, tres visible sur des gros projets genre KDE,
>> qui utilisent fortement du make recursif...
>
>Tu as des références? Parce que sans rien citer, c'est juste du FUD.
C'est la vitesse sur les repertoires multiples,
puisqu'autoconf/automake/libtool est sequentiel a ce niveau.
Tu veux faire du packaging reproductible -> il faut pouvoir expliquer
a autoconf `prend-moi ca, ca, et ca comme applications, et ne detecte
surtout pas le reste'. C'est le truc qui merdoie regulierement dans nos
builds de packages.
J'aurais un debut de systeme de packaging qui prend tout ca en
compte... Les principaux blocages sont au niveau de libtool et
pkg-config, qu'il va falloir serieusement charcuter pour avoir la
moindre chance que ca fonctionne.
>> je ne compte plus les logiciels ou il a fallu changer ca a la main...
>> sans compter que, meme si tu corriges a la source, ca va prendre quinze
>> plombes pour se propager a tous les logiciels qui s'en servent...
>
>C'est pareil pour tout système de build.
Et non, pas pour cmake. Evidemment, tu te paies le cout de la compilation
de cmake une fois, mais ce dernier est suffisamment rapide pour generer
ce dont il a besoin au vol: tu ne distribues aucun fichier genere, tu
comptes sur la personne pour installer cmake...
In article <20080721235703$,
Vincent Lefevre <vincent+ wrote:
>Dans l'article <g62vgd$sn7$,
> Marc Espie écrit:
>
>> In article <20080721195615$,
>> Vincent Lefevre <vincent+ wrote:
>> >C'est la moindre des choses. Personnellement je compile systématiquement
>> >avec "make -j2", je ne n'ai jamais vu de problème avec les autotools.
>
>> Il y en a pourtant un enorme, tres visible sur des gros projets genre KDE,
>> qui utilisent fortement du make recursif...
>
>Tu as des références? Parce que sans rien citer, c'est juste du FUD.
C'est la vitesse sur les repertoires multiples,
puisqu'autoconf/automake/libtool est sequentiel a ce niveau.
Tu veux faire du packaging reproductible -> il faut pouvoir expliquer
a autoconf `prend-moi ca, ca, et ca comme applications, et ne detecte
surtout pas le reste'. C'est le truc qui merdoie regulierement dans nos
builds de packages.
J'aurais un debut de systeme de packaging qui prend tout ca en
compte... Les principaux blocages sont au niveau de libtool et
pkg-config, qu'il va falloir serieusement charcuter pour avoir la
moindre chance que ca fonctionne.
>> je ne compte plus les logiciels ou il a fallu changer ca a la main...
>> sans compter que, meme si tu corriges a la source, ca va prendre quinze
>> plombes pour se propager a tous les logiciels qui s'en servent...
>
>C'est pareil pour tout système de build.
Et non, pas pour cmake. Evidemment, tu te paies le cout de la compilation
de cmake une fois, mais ce dernier est suffisamment rapide pour generer
ce dont il a besoin au vol: tu ne distribues aucun fichier genere, tu
comptes sur la personne pour installer cmake...
Attends... si tu comptes sur la personne pour installer cmake, alors tu
pourrais tout aussi bien exiger à la personne d'installer les autotools;
et alors un autoreconf va regénérer les fichiers. Dans le passé, il y a
eu des incompatibilités entre les différentes versions, mais il me semble
que ce n'est plus le cas (pas vu de problème sur plusieurs logiciels).
Attends... si tu comptes sur la personne pour installer cmake, alors tu
pourrais tout aussi bien exiger à la personne d'installer les autotools;
et alors un autoreconf va regénérer les fichiers. Dans le passé, il y a
eu des incompatibilités entre les différentes versions, mais il me semble
que ce n'est plus le cas (pas vu de problème sur plusieurs logiciels).
Attends... si tu comptes sur la personne pour installer cmake, alors tu
pourrais tout aussi bien exiger à la personne d'installer les autotools;
et alors un autoreconf va regénérer les fichiers. Dans le passé, il y a
eu des incompatibilités entre les différentes versions, mais il me semble
que ce n'est plus le cas (pas vu de problème sur plusieurs logiciels).
cote scons, je connais tres mal.
Scons dépend de Python, donc c'est mal, d'autant plus que les différentes
versions de Python ne sont pas compatibles entre elles.
Euh, juste par pure curiosité technique. Comment est défini le barycentre
sur une variété qui n'est pas globalement difféomorphe à une boule ?
À tes souhaits.
cote scons, je connais tres mal.
Scons dépend de Python, donc c'est mal, d'autant plus que les différentes
versions de Python ne sont pas compatibles entre elles.
Euh, juste par pure curiosité technique. Comment est défini le barycentre
sur une variété qui n'est pas globalement difféomorphe à une boule ?
À tes souhaits.
cote scons, je connais tres mal.
Scons dépend de Python, donc c'est mal, d'autant plus que les différentes
versions de Python ne sont pas compatibles entre elles.
Euh, juste par pure curiosité technique. Comment est défini le barycentre
sur une variété qui n'est pas globalement difféomorphe à une boule ?
À tes souhaits.