C'est clair que cette optimisation énormément améliorée prend du
temps de compilation. [...] La complexité dont tu parles, c'est aussi
en grande partie le prix à payer pour avoir un compilateur multi
architectures, et qui peut faire la compilation croisée de toutes ces
architectures.
Icc peut trés bien compiler plus rapidement et produire des
exécutables plus rapides, il ne doit se soucier que de gérer une seule
architecture.
C'est clair que cette optimisation énormément améliorée prend du
temps de compilation. [...] La complexité dont tu parles, c'est aussi
en grande partie le prix à payer pour avoir un compilateur multi
architectures, et qui peut faire la compilation croisée de toutes ces
architectures.
Icc peut trés bien compiler plus rapidement et produire des
exécutables plus rapides, il ne doit se soucier que de gérer une seule
architecture.
C'est clair que cette optimisation énormément améliorée prend du
temps de compilation. [...] La complexité dont tu parles, c'est aussi
en grande partie le prix à payer pour avoir un compilateur multi
architectures, et qui peut faire la compilation croisée de toutes ces
architectures.
Icc peut trés bien compiler plus rapidement et produire des
exécutables plus rapides, il ne doit se soucier que de gérer une seule
architecture.
Outre le problème du C++, je vois surtout l'optimiseur qui a fait
des progrés considérables avec gcc3. Sur des programmes de calcul,
j'ai vu le compilateur Intel produire des exécutables jusqu'à deux
fois plus rapides que gcc2. Avec un gcc3 récent l'écart s'est
considérablement réduit. C'est clair que cette optimisation énormément
améliorée prend du temps de compilation. Aprés tout la compilation on
ne la fait qu'une seule fois, et avec des machines comme l'Athlon64
elle finit par passer rapidement. A la rigueur il y a des trucs
pour rendre la compilation plus rapide pour les gens qui en font
beaucoup, genre distcc. Par contre optimiser au maximum bénéficie
tout le temps, à tout le monde. La complexité dont tu parles, c'est
aussi en grande partie le prix à payer pour avoir un compilateur
multi architectures, et qui peut faire la compilation croisée de
toutes ces architectures. Et ça c'est un autre avantage décisif de
gcc. Icc peut trés bien compiler plus rapidement et produire des
exécutables plus rapides, il ne doit se soucier que de gérer une seule
architecture.
Outre le problème du C++, je vois surtout l'optimiseur qui a fait
des progrés considérables avec gcc3. Sur des programmes de calcul,
j'ai vu le compilateur Intel produire des exécutables jusqu'à deux
fois plus rapides que gcc2. Avec un gcc3 récent l'écart s'est
considérablement réduit. C'est clair que cette optimisation énormément
améliorée prend du temps de compilation. Aprés tout la compilation on
ne la fait qu'une seule fois, et avec des machines comme l'Athlon64
elle finit par passer rapidement. A la rigueur il y a des trucs
pour rendre la compilation plus rapide pour les gens qui en font
beaucoup, genre distcc. Par contre optimiser au maximum bénéficie
tout le temps, à tout le monde. La complexité dont tu parles, c'est
aussi en grande partie le prix à payer pour avoir un compilateur
multi architectures, et qui peut faire la compilation croisée de
toutes ces architectures. Et ça c'est un autre avantage décisif de
gcc. Icc peut trés bien compiler plus rapidement et produire des
exécutables plus rapides, il ne doit se soucier que de gérer une seule
architecture.
Outre le problème du C++, je vois surtout l'optimiseur qui a fait
des progrés considérables avec gcc3. Sur des programmes de calcul,
j'ai vu le compilateur Intel produire des exécutables jusqu'à deux
fois plus rapides que gcc2. Avec un gcc3 récent l'écart s'est
considérablement réduit. C'est clair que cette optimisation énormément
améliorée prend du temps de compilation. Aprés tout la compilation on
ne la fait qu'une seule fois, et avec des machines comme l'Athlon64
elle finit par passer rapidement. A la rigueur il y a des trucs
pour rendre la compilation plus rapide pour les gens qui en font
beaucoup, genre distcc. Par contre optimiser au maximum bénéficie
tout le temps, à tout le monde. La complexité dont tu parles, c'est
aussi en grande partie le prix à payer pour avoir un compilateur
multi architectures, et qui peut faire la compilation croisée de
toutes ces architectures. Et ça c'est un autre avantage décisif de
gcc. Icc peut trés bien compiler plus rapidement et produire des
exécutables plus rapides, il ne doit se soucier que de gérer une seule
architecture.
gcc souffre de beaucoup de problèmes internes, je ne connais pas de dev
de gcc, mais ce que j'en vois de l'extérieur, pour moi, c'est un foutoir
qui augmente de version en version, parce que personne n'a le courage de
faire le ménage. Un bon nombre de choses ne sont pas documentées
(notament le(s) langage(s) intermédiaire(s)) donc ni réutilisables, ni
"modulables".
La problématique de maintenir un compilateur multiplateforme, même pour
le langage C, conciste à choisir le bon backend (en gros un langage
intermédiaire adapté) et à rendre indépendante l'évolution de la partie
concernant le passage langage source vers langage intermédiaire et
production de code spécifique.
Ça marche pour d'autre langage, ça devrait marcher pour C,
malheureusement (et historiquement ?), gcc n'a pas été pensé comme ça et
il n'y a pas de dynamique suffisante pour mener un tel projet (il suffit
de regarder l'activité de tendra ... enfin tendra et ten15 maintenant
... )
Au risque de m'attirer les foudres des fondamentalistes, je rajouterais
que gcc est le le meilleur exemple du frein que peut représenter
le prosélitisme mélangé au logiciel libre (cf la remarque de Thomas.)
gcc souffre de beaucoup de problèmes internes, je ne connais pas de dev
de gcc, mais ce que j'en vois de l'extérieur, pour moi, c'est un foutoir
qui augmente de version en version, parce que personne n'a le courage de
faire le ménage. Un bon nombre de choses ne sont pas documentées
(notament le(s) langage(s) intermédiaire(s)) donc ni réutilisables, ni
"modulables".
La problématique de maintenir un compilateur multiplateforme, même pour
le langage C, conciste à choisir le bon backend (en gros un langage
intermédiaire adapté) et à rendre indépendante l'évolution de la partie
concernant le passage langage source vers langage intermédiaire et
production de code spécifique.
Ça marche pour d'autre langage, ça devrait marcher pour C,
malheureusement (et historiquement ?), gcc n'a pas été pensé comme ça et
il n'y a pas de dynamique suffisante pour mener un tel projet (il suffit
de regarder l'activité de tendra ... enfin tendra et ten15 maintenant
... )
Au risque de m'attirer les foudres des fondamentalistes, je rajouterais
que gcc est le le meilleur exemple du frein que peut représenter
le prosélitisme mélangé au logiciel libre (cf la remarque de Thomas.)
gcc souffre de beaucoup de problèmes internes, je ne connais pas de dev
de gcc, mais ce que j'en vois de l'extérieur, pour moi, c'est un foutoir
qui augmente de version en version, parce que personne n'a le courage de
faire le ménage. Un bon nombre de choses ne sont pas documentées
(notament le(s) langage(s) intermédiaire(s)) donc ni réutilisables, ni
"modulables".
La problématique de maintenir un compilateur multiplateforme, même pour
le langage C, conciste à choisir le bon backend (en gros un langage
intermédiaire adapté) et à rendre indépendante l'évolution de la partie
concernant le passage langage source vers langage intermédiaire et
production de code spécifique.
Ça marche pour d'autre langage, ça devrait marcher pour C,
malheureusement (et historiquement ?), gcc n'a pas été pensé comme ça et
il n'y a pas de dynamique suffisante pour mener un tel projet (il suffit
de regarder l'activité de tendra ... enfin tendra et ten15 maintenant
... )
Au risque de m'attirer les foudres des fondamentalistes, je rajouterais
que gcc est le le meilleur exemple du frein que peut représenter
le prosélitisme mélangé au logiciel libre (cf la remarque de Thomas.)
Un bon nombre de choses ne sont pas documentées (notament le(s)
langage(s) intermédiaire(s))
Un bon nombre de choses ne sont pas documentées (notament le(s)
langage(s) intermédiaire(s))
Un bon nombre de choses ne sont pas documentées (notament le(s)
langage(s) intermédiaire(s))
Historiquement, c'est une feature : le langage intermédiaire est
obscur et non documenté parce que Stallman avait peur qu'une
entreprise fabrique (méchamment) un compilateur close-source qui
réutiliserait le back-end (ou le front-end, mais pas les deux) de gcc,
en utilisant le format du code intermédiaire (comme ce serait un
format de fichier et pas de l'édition de liens, la GPL ne pourrait pas
viraliser le code propriétaire dans cette situation).
C'est un assez joli exemple de choix technique discutable justifié par
une prise de position idéologique, et qui gonfle le monde des années
après.
Historiquement, c'est une feature : le langage intermédiaire est
obscur et non documenté parce que Stallman avait peur qu'une
entreprise fabrique (méchamment) un compilateur close-source qui
réutiliserait le back-end (ou le front-end, mais pas les deux) de gcc,
en utilisant le format du code intermédiaire (comme ce serait un
format de fichier et pas de l'édition de liens, la GPL ne pourrait pas
viraliser le code propriétaire dans cette situation).
C'est un assez joli exemple de choix technique discutable justifié par
une prise de position idéologique, et qui gonfle le monde des années
après.
Historiquement, c'est une feature : le langage intermédiaire est
obscur et non documenté parce que Stallman avait peur qu'une
entreprise fabrique (méchamment) un compilateur close-source qui
réutiliserait le back-end (ou le front-end, mais pas les deux) de gcc,
en utilisant le format du code intermédiaire (comme ce serait un
format de fichier et pas de l'édition de liens, la GPL ne pourrait pas
viraliser le code propriétaire dans cette situation).
C'est un assez joli exemple de choix technique discutable justifié par
une prise de position idéologique, et qui gonfle le monde des années
après.
La problématique de maintenir un compilateur multiplateforme, même pour
le langage C, conciste à choisir le bon backend (en gros un langage
intermédiaire adapté) et à rendre indépendante l'évolution de la partie
concernant le passage langage source vers langage intermédiaire et
production de code spécifique.
La problématique de maintenir un compilateur multiplateforme, même pour
le langage C, conciste à choisir le bon backend (en gros un langage
intermédiaire adapté) et à rendre indépendante l'évolution de la partie
concernant le passage langage source vers langage intermédiaire et
production de code spécifique.
La problématique de maintenir un compilateur multiplateforme, même pour
le langage C, conciste à choisir le bon backend (en gros un langage
intermédiaire adapté) et à rendre indépendante l'évolution de la partie
concernant le passage langage source vers langage intermédiaire et
production de code spécifique.
"Marwan" == Marwan Burelle writes:
"Marwan" == Marwan Burelle <burelle@lri.fr> writes:
"Marwan" == Marwan Burelle writes:
La problématique de maintenir un compilateur multiplateforme, même pour
le langage C, conciste à choisir le bon backend (en gros un langage
intermédiaire adapté) et à rendre indépendante l'évolution de la partie
concernant le passage langage source vers langage intermédiaire et
production de code spécifique.
Ça marche pour d'autre langage, ça devrait marcher pour C,
La problématique de maintenir un compilateur multiplateforme, même pour
le langage C, conciste à choisir le bon backend (en gros un langage
intermédiaire adapté) et à rendre indépendante l'évolution de la partie
concernant le passage langage source vers langage intermédiaire et
production de code spécifique.
Ça marche pour d'autre langage, ça devrait marcher pour C,
La problématique de maintenir un compilateur multiplateforme, même pour
le langage C, conciste à choisir le bon backend (en gros un langage
intermédiaire adapté) et à rendre indépendante l'évolution de la partie
concernant le passage langage source vers langage intermédiaire et
production de code spécifique.
Ça marche pour d'autre langage, ça devrait marcher pour C,
Historiquement, c'est une feature : le langage intermédiaire est obscur
et non documenté parce que Stallman avait peur qu'une entreprise
fabrique (méchamment) un compilateur close-source qui réutiliserait le
back-end (ou le front-end, mais pas les deux) de gcc, en utilisant le
format du code intermédiaire (comme ce serait un format de fichier et
pas de l'édition de liens, la GPL ne pourrait pas viraliser le code
propriétaire dans cette situation).
C'est un assez joli exemple de choix technique discutable justifié par
une prise de position idéologique, et qui gonfle le monde des années
après.
Historiquement, c'est une feature : le langage intermédiaire est obscur
et non documenté parce que Stallman avait peur qu'une entreprise
fabrique (méchamment) un compilateur close-source qui réutiliserait le
back-end (ou le front-end, mais pas les deux) de gcc, en utilisant le
format du code intermédiaire (comme ce serait un format de fichier et
pas de l'édition de liens, la GPL ne pourrait pas viraliser le code
propriétaire dans cette situation).
C'est un assez joli exemple de choix technique discutable justifié par
une prise de position idéologique, et qui gonfle le monde des années
après.
Historiquement, c'est une feature : le langage intermédiaire est obscur
et non documenté parce que Stallman avait peur qu'une entreprise
fabrique (méchamment) un compilateur close-source qui réutiliserait le
back-end (ou le front-end, mais pas les deux) de gcc, en utilisant le
format du code intermédiaire (comme ce serait un format de fichier et
pas de l'édition de liens, la GPL ne pourrait pas viraliser le code
propriétaire dans cette situation).
C'est un assez joli exemple de choix technique discutable justifié par
une prise de position idéologique, et qui gonfle le monde des années
après.
"Miod" == Miod Vallat writes:
"Miod" == Miod Vallat <miod@online.fr> writes:
"Miod" == Miod Vallat writes: