Journal GCC 3.4.0 is out \o/

Posté par  .
Étiquettes : aucune
0
21
avr.
2004
On le présentait depuis quelques jours. C'est maintenant officiel cette merveilleuse compilations de compilateurs sort dans sa version 3.4.0.

Comme d'habitude pour ce projet, cette version s'accompagne d'une liste incommensurable de nouveautés, améliorations et autres correctifs (pas loins de 900 correctifs).

Au final, les langages toujours mieux supportés (C, C++, Java, Ada,....), des optimisations du compilateurs accrues, ...

Pour les fan de C++, on peut lire:

G++ is now much closer to full conformance to the ISO/ANSI C++ standard. This means, among other things, that a lot of invalid constructs which used to be accepted in previous versions will now be rejected. It is very likely that existing C++ code will need to be fixed. This document lists some of the most common issues.

Je sens que certains vont grincer des dents ;)

Aller tous à vos wget !

Voici le lien pour cette release : http://gcc.gnu.org/gcc-3.4/(...)
  • # Re: GCC 3.4.0 is out \o/

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

    A pas encore essayé mais ils promettaient un compilation beaucoup plus rapide du C++ (réécriture des analyseurs lexicaux et syntaxiques je crois) ce qui n'est pas du luxe à la vue de la vitesse de compilation d'ICC et de M$CC.
    Et c'est cool.

    Un jour libre ?

    • [^] # Re: GCC 3.4.0 is out \o/

      Posté par  . Évalué à 3.

      La liste des changements est vraiment impressionnante. Ils clament que des optimisations ont été fait dans pas mal de couches.

      Un truc qui m'a l'air pas mal c'est ça:

      More realistic code size estimates used by inlining for C, Objective-C, C++ and Java. The growth of large functions can now be limited via --param large-function-insns and --param large-function-growth.

      Parce que c'est vrai que sur les dernières versions, c'étaient assez affolant la taille de certains binaires en comparaison de leur source.

      Un autre point super bon: le support des entêtes pré-compilé en tant que technology preview. En gros ça peut rendre le compilo dingue dans certaines conditions mais ces conditions sont rares (heureusement).

      Par contre un truc que je faisais souvent, genre

      char *p;
      ((int *) p)++;

      (tiré du site GCC), ne fonctionnera plus pour le C :(

      Je ne sais pas si c'était légal (ie. conforme à la norme) mais dans certains cas, ça m'a beaucoup aidé.

      Snif, va falloir que je reprenne tous mes sources (kai!)

      Enfin bon dans l'ensemble, cette release m'a l'air très bien. Y en a pour tous les goûts du C au Ada en passant par Objective-C.

      Bref que du bon :)
      • [^] # Re: GCC 3.4.0 is out \o/

        Posté par  . Évalué à 5.

        > ((int *) p)++;

        Ca t'a peut etre beaucoup aidé mais probablement pas ceux qui sont passes apres toi sur ton code.
        • [^] # Re: GCC 3.4.0 is out \o/

          Posté par  . Évalué à 1.

          Ca marche pas de remplacer ca par p+=sizeof(int); ?
        • [^] # Re: GCC 3.4.0 is out \o/

          Posté par  . Évalué à 1.

          mais euh ! :)

          Bon renseignements pris, ce n'est pas légal/propre/whatever de faire ça donc va falloir retravailler mes sources.
      • [^] # Re: GCC 3.4.0 is out \o/

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

        Je ne sais pas si c'était légal

        non: « A cast does not yield an lvalue. »
    • [^] # Re: GCC 3.4.0 is out \o/

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

      c'est pas plutot pour le 3.5 la réécriture des analyseur c++ ?
      • [^] # Re: GCC 3.4.0 is out \o/

        Posté par  . Évalué à 2.

        Niet

        A hand-written recursive-descent C++ parser has replaced the YACC-derived C++ parser from previous GCC releases. The new parser contains much improved infrastructure needed for better parsing of C++ source codes, handling of extensions, and clean separation (where possible) between proper semantics analysis and parsing. The new parser fixes many bugs that were found in the old parser.

Suivre le flux des commentaires

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