Cette nouvelle version ne contient aucune nouvelle fonctionnalité et ne concerne donc que les corrections. Et elles sont nombreuses.
Étant donné qu'elle est trop longue pour être donnée ici, j'ai mis en lien la page des changements.
À vos miroirs !
Aller plus loin
- Corrections GCC 3.2.3 (2 clics)
- La page GCC chez GNU (2 clics)
# Re: GCC 3.2.3 est sorti
Posté par Anonyme . Évalué à -8.
Debian roulaize !!!!
# Re: GCC 3.2.3 est sorti
Posté par tuan kuranes (site web personnel) . Évalué à 10.
typedef foo = bar
doit devenir :
typedef typeof(bar) foo
Et je connais pas mal de source ou ca pose des problemes...
(mais c'est mieux.)
[^] # Re: GCC 3.2.3 est sorti
Posté par manatane . Évalué à 5.
#define VRAI 1
#define FAUX 0
typedef int BOOLEAN;
ne compile plus...
Dans le norme ANSI ou ISO le "Naming Types" extension (typedef foo = bar) est considéré comme obsolescente?
[^] # Re: GCC 3.2.3 est sorti
Posté par tuan kuranes (site web personnel) . Évalué à 10.
The C and Objective-C compilers no longer accept the "Naming Types" extension (typedef foo = bar); it was already unavailable in C++.
Code which uses it will need to be changed to use the "typeof" extension instead: typedef typeof(bar) foo.
(We have removed this extension without a period of deprecation because it has caused the compiler to crash since version 3.0 and no one noticed until very recently. Thus we conclude it is not in widespread use.)
Chez moi, ca plantait pas...
Ils ont la conclusion rapide en tout cas !!
[^] # Re: GCC 3.2.3 est sorti
Posté par Julien Duponchelle (site web personnel) . Évalué à -1.
# Compatibilité de l'ABI C++
Posté par Loic Jaquemet . Évalué à 4.
par rapport a une API ?
ou de me filer une page qui l'explique ....
[^] # Re: Compatibilité de l'ABI C++
Posté par tomt2m . Évalué à 10.
Une API c'est une interface de programation; ce sont les noms des fonctions, des structures. La conservation de la compatibilté de l'API, ça veut dire en gros que les noms et signatures des fonctions n'ont pas changé, ainsi que les noms des structures, constantes exportées etc. En clair, si la bibliothèque est mise à jour avec conservation de la compatibilité API, normalement au pire, il suffit de recompiler l'appli qui s'en sert.
ABI c'est "Application Binary Interface", et quand on dit qu'une ABI est instable ça veut dire qu'un programme utilisant une bibliothèque dont l'ABI à changé devra nécessairement être recompilé, par exemple parceque certaines structures on changé de taille, ou parceque certaines fonctions ont changé de signature.
Toute personne est bienvennu pour corriger ou enrichir ce que je viens de raconter...
[^] # Re: Compatibilité de l'ABI C++
Posté par Raphael Junqueira . Évalué à 9.
ABI: compatibilite binaire. Correspond a une compatibilite d'API avec en plus la garantie qu'a chaque nouvelle implementation ton binaire fonctionnera toujours. Cela n'etait pas trop le cas avec g++ qui produisait a chaque version (avant la 3.0) des binaires c++ qui n'etaient pas compatible avec les binaires compiles avec la version precedente. D'ou quand tu avait kde, il fallait tout recompiler kde+qt+fam+... pour que ca remarche.
Et maintenant vu que les compilos c++ partagent la meme ABI, tu peut avoir en parrallele des binaires compiles par icc avec des binaires g++ fonctionnant ensemble.
[^] # Re: Compatibilité de l'ABI C++
Posté par LupusMic (site web personnel, Mastodon) . Évalué à 10.
Le polymorphisme s'appuye sur des fonctions virtuelles, qui n'ont pas d'adresse définie, ou redéfinissable. En conséquence, il faut passer par une table de pointeurs de fonctions (la vtable). Le C++ défini un ordre précis dans lequel doit être lue cette table (comme les éléments d'une pile sont ajoutés du heut vers le bas). Or, g++ rangeait les adresses dans le sens opposé à celui de la norme, et ce fut changé dans la version 3.0
C'est la raison principale qui explique l'incompatibilité bianaire. J'ai fait court, pas un cours ;) Donc ceux qui ne programment pas .. ditent-vous juste que g++ ancienne version faisait fonctionner les applications dans un sens, et que la nouvelle version les fait fonctionner dans l'autre.
Je peux pas faire plus clair :o)
[^] # Re: Compatibilité de l'ABI C++
Posté par Gruik Man . Évalué à 3.
[^] # Re: Compatibilité de l'ABI C++
Posté par zoltar . Évalué à 3.
En C, l'ABI s'occupe essentiellement de la convention d'appel de fonction.
En C++, on ajoute
- le polymorphisme : où se trouve le pointeur de table de méthodes virtuelles de chaque objet, en tenant compte de l'héritage multiple.
- le "name mangling" : en C int toto(int) et int toto( char ) c'est interdit, pas en C++, ça veut dire que les objets compilés doivent stocker des informations de type des arguments en plus des noms de fonction. En plus en C++ il faut décider comment nommer les instanciation de templates.
- la "run-time type identification" qui permet de demander à un objet s'il est d'un type particulier.
- les exceptions
Je ne pense pas avoir été exhaustif sur les fonctionnalité du C++ qui font apparaître le besoin d'une ABI stable. Ce qui est sûr, c'est que gcc en a désormais publié une.
# Re: GCC 3.2.3 est sorti
Posté par twolife . Évalué à -6.
Ceci est un commentaire dont le but est de pollu^H^H^H participer au site et de récupérer mon droit de vote
[^] # Re: GCC 3.2.3 est sorti
Posté par Julien Duponchelle (site web personnel) . Évalué à 1.
[^] # Re: GCC 3.2.3 est sorti
Posté par xof . Évalué à -1.
des commentaires aient le droit (verbe avoir)
-42
[^] # Re: GCC 3.2.3 est sorti
Posté par azhyd . Évalué à 1.
[^] # Re: GCC 3.2.3 est sorti
Posté par psc82 . Évalué à 0.
j'avous que je post pas forcement souvent mais est-ce une raison de me punir ???
a quand un permis a point pour l'idle de postage ?
[^] # Re: GCC 3.2.3 est sorti
Posté par Pierre Tramo (site web personnel) . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.