Le 03-12-2009, Antoine Leca a écrit :Normalement si le code marche, personne ne postera ici pour s'en
plaindre.
Pourtant un grnad nombre de fils commencent par « mon code ci-dessous
marche sur XYZ, et bogue quand duchmol essaye sur ABC ». Marchent ou
marchent pas ?
Quand ils n'accusent pas le compilo ABC d'être bugué ;-)
Mes étudiants trouvaient que Sparc était un bien mauvais
processeur, vu qu'il faisait des "bus error" sur des accès
(non alignés) que leur Intel Win/Linux avalait sans broncher.
En fait, même, pour être précis, ils accusaient gcc d'être
bugé, vu que ça marchait sous VC++.
Le 03-12-2009, Antoine Leca <root@localhost.invalid> a écrit :
Normalement si le code marche, personne ne postera ici pour s'en
plaindre.
Pourtant un grnad nombre de fils commencent par « mon code ci-dessous
marche sur XYZ, et bogue quand duchmol essaye sur ABC ». Marchent ou
marchent pas ?
Quand ils n'accusent pas le compilo ABC d'être bugué ;-)
Mes étudiants trouvaient que Sparc était un bien mauvais
processeur, vu qu'il faisait des "bus error" sur des accès
(non alignés) que leur Intel Win/Linux avalait sans broncher.
En fait, même, pour être précis, ils accusaient gcc d'être
bugé, vu que ça marchait sous VC++.
Le 03-12-2009, Antoine Leca a écrit :Normalement si le code marche, personne ne postera ici pour s'en
plaindre.
Pourtant un grnad nombre de fils commencent par « mon code ci-dessous
marche sur XYZ, et bogue quand duchmol essaye sur ABC ». Marchent ou
marchent pas ?
Quand ils n'accusent pas le compilo ABC d'être bugué ;-)
Mes étudiants trouvaient que Sparc était un bien mauvais
processeur, vu qu'il faisait des "bus error" sur des accès
(non alignés) que leur Intel Win/Linux avalait sans broncher.
En fait, même, pour être précis, ils accusaient gcc d'être
bugé, vu que ça marchait sous VC++.
On 1 déc, 17:27, candide wrote:Non mais un code qui contient un UB ne peut rien prouver.
OK. Ceci est correct :
int main(void)
{
char i;
printf(" %i n", i ) ;
return 0;
}
On 1 déc, 17:27, candide <cand...@free.invalid> wrote:
Non mais un code qui contient un UB ne peut rien prouver.
OK. Ceci est correct :
int main(void)
{
char i;
printf(" %i n", i ) ;
return 0;
}
On 1 déc, 17:27, candide wrote:Non mais un code qui contient un UB ne peut rien prouver.
OK. Ceci est correct :
int main(void)
{
char i;
printf(" %i n", i ) ;
return 0;
}
Le 03-12-2009, ? propos deEn fait, même, pour être précis, ils accusaient gcc d'être
bugé, vu que ça marchait sous VC++.
Le problème, c'est que la plupart des développeurs codent sous
i386/amd64. Là, tout de suite, j'essaie de compiler sous sparc64
iFolder, un truc écrit par des pieds en C# qui refuse de compiler sous
en sparcv8+ (pourquoi ? vu qu'il compile en i386...). Résultat des
courses, j'ai dû compiler tous les prérequis (et il y en a) en 64
bits en corrigeant au passage tous les défauts d'alignements mémoire !
Ce n'est pourtant pas dur d'écrire des trucs propres !
Je dis ça parce que je suis fâché et que c'était mon coup de gueule
du soir envers les gdk-pixbuf, les gtk quelque chose et tous les
autres trucs qui ne compilent pas sur des processeurs qui demandent
des alignements mémoire !
Le 03-12-2009, ? propos de
En fait, même, pour être précis, ils accusaient gcc d'être
bugé, vu que ça marchait sous VC++.
Le problème, c'est que la plupart des développeurs codent sous
i386/amd64. Là, tout de suite, j'essaie de compiler sous sparc64
iFolder, un truc écrit par des pieds en C# qui refuse de compiler sous
en sparcv8+ (pourquoi ? vu qu'il compile en i386...). Résultat des
courses, j'ai dû compiler tous les prérequis (et il y en a) en 64
bits en corrigeant au passage tous les défauts d'alignements mémoire !
Ce n'est pourtant pas dur d'écrire des trucs propres !
Je dis ça parce que je suis fâché et que c'était mon coup de gueule
du soir envers les gdk-pixbuf, les gtk quelque chose et tous les
autres trucs qui ne compilent pas sur des processeurs qui demandent
des alignements mémoire !
Le 03-12-2009, ? propos deEn fait, même, pour être précis, ils accusaient gcc d'être
bugé, vu que ça marchait sous VC++.
Le problème, c'est que la plupart des développeurs codent sous
i386/amd64. Là, tout de suite, j'essaie de compiler sous sparc64
iFolder, un truc écrit par des pieds en C# qui refuse de compiler sous
en sparcv8+ (pourquoi ? vu qu'il compile en i386...). Résultat des
courses, j'ai dû compiler tous les prérequis (et il y en a) en 64
bits en corrigeant au passage tous les défauts d'alignements mémoire !
Ce n'est pourtant pas dur d'écrire des trucs propres !
Je dis ça parce que je suis fâché et que c'était mon coup de gueule
du soir envers les gdk-pixbuf, les gtk quelque chose et tous les
autres trucs qui ne compilent pas sur des processeurs qui demandent
des alignements mémoire !
-ed- écrivit :
> On 1 déc, 17:27, candide wrote:
>> Non mais un code qui contient un UB ne peut rien prouver.
> OK. Ceci est correct :
> int main(void)
> {
> char i;
> printf(" %i n", i ) ;
> return 0;
> }
Correct en quoi ? Ce n'est pas un bon exemple (au sens de donner
l'exemple), et officiellement c'est un comportement indéterminé
(si char est signé et peut avoir une représentation piège.)
-ed- écrivit :
> On 1 déc, 17:27, candide <cand...@free.invalid> wrote:
>> Non mais un code qui contient un UB ne peut rien prouver.
> OK. Ceci est correct :
> int main(void)
> {
> char i;
> printf(" %i n", i ) ;
> return 0;
> }
Correct en quoi ? Ce n'est pas un bon exemple (au sens de donner
l'exemple), et officiellement c'est un comportement indéterminé
(si char est signé et peut avoir une représentation piège.)
-ed- écrivit :
> On 1 déc, 17:27, candide wrote:
>> Non mais un code qui contient un UB ne peut rien prouver.
> OK. Ceci est correct :
> int main(void)
> {
> char i;
> printf(" %i n", i ) ;
> return 0;
> }
Correct en quoi ? Ce n'est pas un bon exemple (au sens de donner
l'exemple), et officiellement c'est un comportement indéterminé
(si char est signé et peut avoir une représentation piège.)
D'autant qu'on peut forcer un x86 à raler en cas d'alignement mémoire
éronné, et qu'un truc qui se prétend portable pourrait ajouter ça
à sa batterie de tests.
D'autant qu'on peut forcer un x86 à raler en cas d'alignement mémoire
éronné, et qu'un truc qui se prétend portable pourrait ajouter ça
à sa batterie de tests.
D'autant qu'on peut forcer un x86 à raler en cas d'alignement mémoire
éronné, et qu'un truc qui se prétend portable pourrait ajouter ça
à sa batterie de tests.
Marc Boyer wrote:D'autant qu'on peut forcer un x86 à raler en cas d'alignement mémoire
éronné, et qu'un truc qui se prétend portable pourrait ajouter ça
à sa batterie de tests.
[presque hs] et on fait comment ?
Marc Boyer wrote:
D'autant qu'on peut forcer un x86 à raler en cas d'alignement mémoire
éronné, et qu'un truc qui se prétend portable pourrait ajouter ça
à sa batterie de tests.
[presque hs] et on fait comment ?
Marc Boyer wrote:D'autant qu'on peut forcer un x86 à raler en cas d'alignement mémoire
éronné, et qu'un truc qui se prétend portable pourrait ajouter ça
à sa batterie de tests.
[presque hs] et on fait comment ?
D'autant qu'on peut forcer un x86 à raler en cas d'alignement mémoire
int main(){
char t[sizeof(double)*2];
double* d= (double*) (t+1);
__asm__("pushfl; popl %eax; orl $0x40000,%eax; pushl %eax; popfl;");
*d= 1.0;
return 0;
}
D'autant qu'on peut forcer un x86 à raler en cas d'alignement mémoire
int main(){
char t[sizeof(double)*2];
double* d= (double*) (t+1);
__asm__("pushfl; popl %eax; orl $0x40000,%eax; pushl %eax; popfl;");
*d= 1.0;
return 0;
}
D'autant qu'on peut forcer un x86 à raler en cas d'alignement mémoire
int main(){
char t[sizeof(double)*2];
double* d= (double*) (t+1);
__asm__("pushfl; popl %eax; orl $0x40000,%eax; pushl %eax; popfl;");
*d= 1.0;
return 0;
}
c) ceux qui commentent les réponses, en général parce qu'il ne sont
pas d'accord avec leur contenu ; cela peut dériver ;
Je crois comprendre que tu considères que le groupe c) comme nuisible,
en tous cas à partir d'un certain point de dérive
rapport signal/bruit.
Normalement si le code marche, personne ne postera ici pour s'en
plaindre.
Pourtant un grnad nombre de fils commencent par « mon code ci-dessous
marche sur XYZ, et bogue quand duchmol essaye sur ABC ». Marchent ou
marchent pas ?
Je ne travaille pas dans une boîte d'informatique, et j'ai donc
évidemment le point de vue opposé. En particulier, je ne suis pas
d'accord sur l'obligation de payer (après la recette) une rente de
situation à mon informaticien pour lui permettre de corriger au fil de
l'eau ses erreurs de programmation, quelles que soient leurs causes,
internes ou externes.
Bien sûr, il est des cas où c'est économiquement plus intéressant de
faire comme cela : ainsi une équipe qui dispose de compétences stables
dans le temps peut montrer qu'il est plus rentable de mettre en place le
programme dès qu'il remplit à peu près les objectifs, et qu'ensuite on
corrige les erreurs au fur et à mesure de leurs diagnostics ;
Il est aussi des cas où ce n'est pas une bonne idée. Quand tu envoies
une fusée dans l'espace, ou même si tu diffuses un produit grand public
à des millions d'exemplaires, il n'est pas encore admis par tout le
monde que le code devra peut-être évoluer dans le futur...
c) ceux qui commentent les réponses, en général parce qu'il ne sont
pas d'accord avec leur contenu ; cela peut dériver ;
Je crois comprendre que tu considères que le groupe c) comme nuisible,
en tous cas à partir d'un certain point de dérive
rapport signal/bruit.
Normalement si le code marche, personne ne postera ici pour s'en
plaindre.
Pourtant un grnad nombre de fils commencent par « mon code ci-dessous
marche sur XYZ, et bogue quand duchmol essaye sur ABC ». Marchent ou
marchent pas ?
Je ne travaille pas dans une boîte d'informatique, et j'ai donc
évidemment le point de vue opposé. En particulier, je ne suis pas
d'accord sur l'obligation de payer (après la recette) une rente de
situation à mon informaticien pour lui permettre de corriger au fil de
l'eau ses erreurs de programmation, quelles que soient leurs causes,
internes ou externes.
Bien sûr, il est des cas où c'est économiquement plus intéressant de
faire comme cela : ainsi une équipe qui dispose de compétences stables
dans le temps peut montrer qu'il est plus rentable de mettre en place le
programme dès qu'il remplit à peu près les objectifs, et qu'ensuite on
corrige les erreurs au fur et à mesure de leurs diagnostics ;
Il est aussi des cas où ce n'est pas une bonne idée. Quand tu envoies
une fusée dans l'espace, ou même si tu diffuses un produit grand public
à des millions d'exemplaires, il n'est pas encore admis par tout le
monde que le code devra peut-être évoluer dans le futur...
c) ceux qui commentent les réponses, en général parce qu'il ne sont
pas d'accord avec leur contenu ; cela peut dériver ;
Je crois comprendre que tu considères que le groupe c) comme nuisible,
en tous cas à partir d'un certain point de dérive
rapport signal/bruit.
Normalement si le code marche, personne ne postera ici pour s'en
plaindre.
Pourtant un grnad nombre de fils commencent par « mon code ci-dessous
marche sur XYZ, et bogue quand duchmol essaye sur ABC ». Marchent ou
marchent pas ?
Je ne travaille pas dans une boîte d'informatique, et j'ai donc
évidemment le point de vue opposé. En particulier, je ne suis pas
d'accord sur l'obligation de payer (après la recette) une rente de
situation à mon informaticien pour lui permettre de corriger au fil de
l'eau ses erreurs de programmation, quelles que soient leurs causes,
internes ou externes.
Bien sûr, il est des cas où c'est économiquement plus intéressant de
faire comme cela : ainsi une équipe qui dispose de compétences stables
dans le temps peut montrer qu'il est plus rentable de mettre en place le
programme dès qu'il remplit à peu près les objectifs, et qu'ensuite on
corrige les erreurs au fur et à mesure de leurs diagnostics ;
Il est aussi des cas où ce n'est pas une bonne idée. Quand tu envoies
une fusée dans l'espace, ou même si tu diffuses un produit grand public
à des millions d'exemplaires, il n'est pas encore admis par tout le
monde que le code devra peut-être évoluer dans le futur...
Et oui les bugs existent, c'est la vie...
Et oui les bugs existent, c'est la vie...
Et oui les bugs existent, c'est la vie...
Samuel Devulder a écrit :Et oui les bugs existent, c'est la vie...
Vous disiez que globalement un logiciel non bogué, c'était un logiciel mort
également plus haut dans le fil. Vous avez sûrement raison d'une manière
générale. Et Knuth avec TeX alors ? :-)
J'avais entendu dire que très peu de bugs ont été détectés et que les
quelques rares bugs ont été détectés par ordinateur uniquement, est-ce vrai ?
Samuel Devulder a écrit :
Et oui les bugs existent, c'est la vie...
Vous disiez que globalement un logiciel non bogué, c'était un logiciel mort
également plus haut dans le fil. Vous avez sûrement raison d'une manière
générale. Et Knuth avec TeX alors ? :-)
J'avais entendu dire que très peu de bugs ont été détectés et que les
quelques rares bugs ont été détectés par ordinateur uniquement, est-ce vrai ?
Samuel Devulder a écrit :Et oui les bugs existent, c'est la vie...
Vous disiez que globalement un logiciel non bogué, c'était un logiciel mort
également plus haut dans le fil. Vous avez sûrement raison d'une manière
générale. Et Knuth avec TeX alors ? :-)
J'avais entendu dire que très peu de bugs ont été détectés et que les
quelques rares bugs ont été détectés par ordinateur uniquement, est-ce vrai ?