GCC 3.2.3 est sorti

Posté par  (site web personnel) . Modéré par Benoît Sibaud.
Étiquettes :
0
25
avr.
2003
GNU
Après avoir remarqué que Debian venait de me faire une mise à jour finale de 3.2.3, j'ai consulté la page de GCC et constaté avec joie que la nouvelle version est sortie aujourd'hui même.

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

  • # Re: GCC 3.2.3 est sorti

    Posté par  . Évalué à -8.

    > Après avoir remarqué que Debian [...]

    Debian roulaize !!!!
  • # Re: GCC 3.2.3 est sorti

    Posté par  (site web personnel) . Évalué à 10.

    Attention fini le typedef a tout va:

    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  . Évalué à 5.

      Alors les sources avec des morceaux de code du genre :
      #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  (site web personnel) . Évalué à 10.

        Copier/Coller :

        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  (site web personnel) . Évalué à -1.

      c'est peut être mieux, mais cela ne va t'il pas posé problémes en particulier sur des sources qui n sont plus maintenu, je ne connais pas la prog C et je me sent pas le courage de bidouiller la source pour corriger cela...
  • # Compatibilité de l'ABI C++

    Posté par  . Évalué à 4.

    Quelqu'un se sent capable de m'expliquer ce que c'est une ABI ?
    par rapport a une API ?
    ou de me filer une page qui l'explique ....
    • [^] # Re: Compatibilité de l'ABI C++

      Posté par  . Évalué à 10.

      Je suis pas expert, mais je tente une explication.

      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  . Évalué à 9.

      API: interface de programation, si tu reste API compatible cela veut dire que tu reste compatible source entre deux implementations differentes. Si tu change d'implementation il suffit alors de recompiler pour que ca remarche.

      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  (site web personnel, Mastodon) . Évalué à 10.

      Dans le cas présent, il s'agit d'un problème au niveau du polymorphisme.

      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  . Évalué à 3.

      ABI désigne la convention qui permet la compatibilité binaire entre objets compilés avec deux outils différents.
      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  . Évalué à -6.

    Bonjour,

    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  (site web personnel) . Évalué à 1.

      je crois que tu a mal compris la phylosophie du sytéme, il est normal que seul ceux qui font des commentaires est le droit de "crititiquer" ou "recompenser" les autre
      • [^] # Re: GCC 3.2.3 est sorti

        Posté par  . Évalué à -1.

        philosophie (philo == amour)
        des commentaires aient le droit (verbe avoir)

        -42
      • [^] # Re: GCC 3.2.3 est sorti

        Posté par  . Évalué à 1.

        il me semble aussi normal que des personnes ne postant pas de commentaire puissent participer au tri/jugement de la pertinence des autres commentaires...
        • [^] # Re: GCC 3.2.3 est sorti

          Posté par  . Évalué à 0.

          je suis assez d'accord, actuellement je peux plus noter les msgs...
          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 ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.