Au menu de cette version, on notera de nombreuses corrections de bugs, un nettoyage du code, l'ajout de nouvelles optimisations (en particulier, l'utilisation du "DFA scheduler" ainsi que le support de SSE2 et 3dNOW! pour les architectures ia32).
Pour ce qui concerne spécifiquement le langage C, on notera un léger rapprochement du standard C99. L'interpréteur java intègre directement les threads et est donc plus rapide. La gestion des tâches ADA utilise maintenant les bibliothèques de threads de la glibc 2.3.
Aller plus loin
- GCC (1 clic)
- GCC 3.3 - les changements (1 clic)
- DFA scheduler (1 clic)
- En savoir plus sur GCC, la compilation, ... (2 clics)
# Modéros HS?
Posté par wismerhill . Évalué à 2.
[^] # Re: Modéros HS?
Posté par wismerhill . Évalué à 2.
[^] # Re: Modéros HS?
Posté par Nÿco (site web personnel) . Évalué à -1.
[^] # Re: Modéros HS?
Posté par Matthieu Moy (site web personnel) . Évalué à -2.
[^] # Re: Modéros HS?
Posté par jerome (site web personnel) . Évalué à -2.
Une intro légèrement différente qui elle aussi change tout.
# Compatibilité?
Posté par wismerhill . Évalué à 7.
[^] # Re: Compatibilité?
Posté par Larry Cow . Évalué à 6.
[^] # Re: Compatibilité?
Posté par Obi MO (site web personnel) . Évalué à 10.
[^] # Re: Compatibilité?
Posté par PegaseYa . Évalué à 3.
[^] # Re: Compatibilité?
Posté par Obi MO (site web personnel) . Évalué à 5.
En tout cas, la façon dont sont représentés les différents symboles du programme :
si tu fais nm sur un .o dont le source est du C++, tu vas voir des trucs du style
Zxffr00wMaClassekjqsmaMéthodefhstringslmjintsldkfj
En C, le nom de la fonction seul suffit, mais en C++ non : il faut rajouter les types des paramètres pour la surcharge, l'info sur la classe, les namespace, etc .
Et bien sûr, rien tout ça n'est spécifié dans la norme ... alors chacun fait comme il veut
[^] # Re: Compatibilité?
Posté par ashram4 . Évalué à 1.
je ne suis pas dévellopeur (un peu de C/C++ quand c'est nécessaire mais rien de sophistiqué) encore moins spécialiste sur les compilateurs mais je suis un peu surpris que l'ABI C++ du compilateur libre GNU soit modifié seulement dans le but de coller à celle de Microsoft. Quelqu'un pour confirmer/infirmer?
[^] # Re: Compatibilité?
Posté par Christophe Fergeau . Évalué à 6.
Entre la version 3.0 et la 3.1, ils ont été obligé de modfiier un peu l'ABI pour corriger des bugs, entre la 3.1 et la 3.2 il y a eu qques changements mineures encore une fois à cause de bugs, je sais pas trop les changements introduits à l'ABI dans la version 3.3
A mon avis, microsoft utilise aussi cette ABI standard pour son compilateur, et tout ce que font les devels de gcc, c'est corrigé au fur et à mesure les bugs dans gcc pour se conformer à cette ABI standard.
[^] # Re: Compatibilité?
Posté par #3588 . Évalué à 3.
Sinon, pour les principales évolutions de l'ABI au passage à gcc 3.x, c'est pour des vraies raisons de fond, l'ancienne ABI devenait vraiment archaïque, et une fois la nouvelle définitivement stabilisée, celle-ci devrait tenir 10 ou 15 ans, sans qu'il y ait de besoin de la changer (de manière incompatible)
Et tout ça ne concerne que le C++, pas le C.
[^] # Re: Compatibilité?
Posté par Obi MO (site web personnel) . Évalué à 4.
Je ne pense pas, ça serait quand même dommage de changer le format des objets suivant la plateforme :
*Au niveau de la maintenance, si tu as n plateformes, ça multiplie par autant les bugs, et ça, c'est très mal. [De façon générale, en dev multiplateforme, le moins de code spécifique tu as, le mieux tu te portes]
*Sans parler du prix de l'ajout d'une nouvelle plateforme
Brefle, utilisons tous le même format sur toutes les plateformes, et on sera tous heureux (vrai aussi pour les formats de fichiers office ou les normes W3C ... )
[^] # Re: Compatibilité?
Posté par ashram4 . Évalué à 3.
[^] # Re: Compatibilité?
Posté par furai (site web personnel) . Évalué à -3.
ce serait pas plutôt "le moins de code spécifique, le moins tu portes"?
(sans commentaire)---->[]
[^] # Re: Compatibilité?
Posté par Moby-Dik . Évalué à 3.
Non, ils veulent se rapprocher de l'ABI C++ standard. C'est pas pour faire plaisir à Bill Gates.
[^] # Re: Compatibilité?
Posté par #3588 . Évalué à 1.
Quel standard, tu as des précisions ?
[^] # Re: Compatibilité?
Posté par Anonyme . Évalué à 4.
mais le standard ne semble pas disponible
en téléchargement libre et gratuit.
Voir :
http://www.comeaucomputing.com/iso/(...)
où ils disent que tu dois donner 18 dollars pour le télécharger.
Tu peux par contre récupérer le standard C99 (plutot un
draft ; après je ne sais pas s'il y a beaucoup de différences
entre le draft et le document final), disponible par exemple à :
http://wwwold.dkuug.dk/JTC1/SC22/WG14/www/docs/n897.pdf(...)
http://gcc.gnu.org/readings.html(...)
est un point de départ possible pour te renseigner un peu
plus sur ces choses.
C'est dommage qu'il faille payer pour lire les standards...
Lire à ce propos une petite remarque de la FAQ libstdc++
http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#5_7(...)
où il est dit :
"[...] or those who have not paid for the privilege of sitting on the committee and sustained their two-meeting commitment for voting rights, may get a copy [...]"
qui dit bien ce qu'elle dit.
[^] # Re: Compatibilité?
Posté par Anonyme . Évalué à 1.
"5.7 How do I get a copy of the ISO C++ Standard?
Copies of the full ISO 14882 standard are available on line via the ISO mirror site for committee members. Non-members, or those who have not paid for the privilege of sitting on the committee and sustained their two-meeting commitment for voting rights, may get a copy of the standard from their respective national standards organization. In the USA, this national standards organization is ANSI and their website is right here. (And if you've already registered with them, clicking this link will take you to directly to the place where you can buy the standard on-line.
Who is your country's member body? Visit the ISO homepage and find out!"
mais l'ironie est bien présente, non ?
[^] # Re: Compatibilité?
Posté par #3588 . Évalué à 1.
Oui, mais ce n'était pas du tout ma question, tout ça je connais :)
Master-dik parle d'ABI C++ standard. C'est ça qui m'intéresse. Est-ce un projet, une proposition de standardisation ? La norme ISO C++ actuelle ne parle pas d'ABI, ou laisse suffisamment de libertés aux concepteurs de compilateurs. Je sais que ce choix a été fait pour de « bonnes raisons », c'est-à-dire qu'ils se sont vraiment posés la question, et n'ont pas voulu standardiser l'ABI. Ma question porte donc sur un éventuel standard d'ABI C++. Est-ce que finalement il y a un effort de standardisation là-dessus ?
[^] # Re: Compatibilité?
Posté par Christophe Fergeau . Évalué à 1.
Ca parle d'ABI c++ pour l'itanium, mais j'ai l'impression que c'est en fait un truc plus général et que c'est ça que gcc utilise
[^] # Re: Compatibilité?
Posté par Moby-Dik . Évalué à 2.
« For the C++ ABI we will use the IA-64 C++ ABI and instantiate it appropriately.
The current draft of that ABI is available at:
http://www.codesourcery.com/cxx-abi/(...) »
[^] # Re: Compatibilité?
Posté par mickabouille . Évalué à 4.
[^] # Re: Compatibilité?
Posté par Gwenole Beauchesne . Évalué à 3.
# Re: gcc 3.3 est sorti
Posté par Nÿco (site web personnel) . Évalué à 5.
[^] # Re: gcc 3.3 est sorti
Posté par Matthieu Moy (site web personnel) . Évalué à 3.
[^] # Re: gcc 3.3 est sorti
Posté par Laurent Mazet (site web personnel) . Évalué à 2.
# Interpréteur Java
Posté par Gwenole Beauchesne . Évalué à 10.
[^] # Re: Interpréteur Java
Posté par Guillaume Rousse (site web personnel) . Évalué à -2.
[^] # Re: Interpréteur Java
Posté par Guillaume Rousse (site web personnel) . Évalué à -2.
[^] # Re: Interpréteur Java
Posté par gc (site web personnel) . Évalué à -2.
[^] # Re: Interpréteur Java
Posté par gc (site web personnel) . Évalué à -2.
[^] # Re: Interpréteur Java
Posté par Moby-Dik . Évalué à 2.
[^] # Re: Interpréteur Java
Posté par Dugland Bob . Évalué à 2.
http://www.complang.tuwien.ac.at/forth/threaded-code.html(...)
[^] # Re: Interpréteur Java
Posté par Moby-Dik . Évalué à 0.
[^] # Re: Interpréteur Java
Posté par Gwenole Beauchesne . Évalué à 6.
Dans le cadre d'un interpréteur type "inline threaded", au lieu de générer une séquence de labels gérant une opération donnée ("direct threaded"), on copie tout simplement le code correspondant au traitement de l'opération. Ce code est statique. Par contre, il y a un assemblage dynamique de ces bouts de code.
Au lieu de sortir un exemple pourri à la va-vite, j'ai retrouvé un mini programme de test illustrant ces concepts.
http://www-sor.inria.fr/~piumarta/pldi98/vm.c(...)
Bien sûr, le lecteur consultera son article pour de plus amples informations. Je crois qu'Objective Caml utilise ce mode d'interprétation. Idem pour SableVM.
Sinon, il y a aussi qemu à voir, il reprend ces techniques de manière plus générale pour écrire un JIT compiler simple{,ment} mais très portable.
http://fabrice.bellard.free.fr/qemu/(...)
# Re: gcc 3.3 est sorti
Posté par Bertrand Mathieu . Évalué à 3.
[^] # Re: gcc 3.3 est sorti
Posté par Nicolas Boulay (site web personnel) . Évalué à 2.
"La première sécurité est la liberté"
[^] # Re: gcc 3.3 est sorti
Posté par GrosBenny . Évalué à 1.
[^] # Re: gcc 3.3 est sorti
Posté par Moby-Dik . Évalué à 2.
# Re: gcc 3.3 est sorti
Posté par Emmanuel Blindauer (site web personnel) . Évalué à 7.
[^] # Re: gcc 3.3 est sorti
Posté par pas_moi . Évalué à 1.
[^] # Re: gcc 3.3 est sorti
Posté par Troy McClure (site web personnel) . Évalué à 7.
[^] # Re: gcc 3.3 est sorti
Posté par spart . Évalué à 2.
un cache de compilation très efficace...
[^] # Re: gcc 3.3 est sorti
Posté par Matthieu Moy (site web personnel) . Évalué à 2.
[^] # Re: gcc 3.3 est sorti
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 4.
[^] # Re: gcc 3.3 est sorti
Posté par Moby-Dik . Évalué à 4.
Un gros bémol est que ça produit, a priori, des fichiers énormes (en tout cas sous Visual Studio c'est le cas : plusieurs Mo de headers précompilés si tu inclus le windows.h ou la STL).
[^] # Re: gcc 3.3 est sorti
Posté par thedidouille . Évalué à 1.
[^] # Re: gcc 3.3 est sorti
Posté par Matthieu Moy (site web personnel) . Évalué à 2.
http://gcc.gnu.org/ml/gcc/2003-01/msg01008.html(...)
Dans les autres cas, je ne vois pas trop comment le compilo peut faire pour générer un truc indépendant des macros définies avant. On peut faire un truc qui marche dans beaucoup de cas, mais si le programmeur a vraiment fait des trucs crades avec ses "#define" (Par exemple, dans le source de GCC, il y a des fichiers inclus plusieurs fois dans un contexte différent et qui ne font pas *du tout* la même chose -- Genre la première fois ça défini un type énuméré, et la suivante, ça défini une grammaire d'arbre sur ce type ...), la seule solution est de suivre l'approche tout dans un fichier, mais en générant toutes les combinaisons d'include possibles ...
Par contre, là ou il n'y a pas trop de macros, typiquement la STL, on doit pouvoir faire des choses.
[^] # Re: gcc 3.3 est sorti
Posté par Jak . Évalué à 1.
# Questions trés techniques.
Posté par Christophe Merlet (site web personnel) . Évalué à 2.
[^] # Re: Questions trés techniques.
Posté par Dugland Bob . Évalué à 3.
tu compile avec des flags kivonbien.
tu fais tourner dans des condition s représentatives de la réalité.
tu recompile avec les autres flags kivonbien.
je gagnais 25% sur une scène POV (une seule, c'était pour voir un peu) à l'époque.
[^] # Re: Questions trés techniques.
Posté par thedidouille . Évalué à 2.
# Re: gcc 3.3 est sorti
Posté par blackshack . Évalué à 0.
[^] # Re: gcc 3.3 est sorti
Posté par Raphael Junqueira . Évalué à 4.
Au final c le deuxieme langage objet ayant des origines C mais qui lui a garder le plus de racines avec son "ancetre" tout en evitant certaines des grosses failles de son petit frere. (qui lui reste malgre tout ses defauts le plus puissant)
[^] # Re: gcc 3.3 est sorti
Posté par ... a little wood elfe . Évalué à 4.
Linux Magazine y a récemment consacré quelques articles (n°47 Introduction au projet GNUstep et n°49 Vos premiers pas en programmation sous GNUstep). Si tu veux réellement voir en quoi l'Objective-C est bien alors je te conseille de faire le tutorial du n°49.
Je ne me risquerai pas à le comparer avec d'autres langages vu mon expérience trés réduite en programmation et mon parti pris pour l'Objective-C vu que j'utilise Mac OS X (oui je sais c'est mal :-).
Quelques liens :
http://www.gnustep.org(...) (site officiel)
http://www.gnustep.it(...) (tutoriaux et exemples)
[^] # Re: gcc 3.3 est sorti
Posté par un_brice (site web personnel) . Évalué à 2.
http://developer.apple.com/techpubs/macosx/Cocoa/ObjectiveC/3objc_l(...)
Sinon, j'aurais moi aussi une requête: je me suis décidé récement à me lancer dans l'apprentissage d'un langage (marre d'être inutile), et après quatres jours à choisir lequel, celui-ci m'avait bien plu.
Seulement, je trouve GNUstep... pas très attirant (sans l'avoir testé). Et comme les bindings KDE sont cassés, j'ai laissé tomber et me suis mis au C++.
Alors si quelqu'un connaissait un autre environement (je suis pas sûr que ce sois le bon terme), pour programmer en ObjC et acceptait de donner une url, je lui en serais reconaissant (ça me permettrais de revenir à ce merveilleux langage ^_^)
(sinon, faites gaffe aux trolls, parler des langages OO c'est dangereux)
[^] # Re: gcc 3.3 est sorti
Posté par Nicolas Roard (site web personnel) . Évalué à 2.
[^] # Re: gcc 3.3 est sorti
Posté par Julien BLACHE . Évalué à 1.
L'utilisation d'autorelease pools entraîne systématiquement une segfault du soft :(
J'ai hâte que GNUstep se rapproche encore un peu plus de Cocoa, peut-être jusqu'au point de n'avoir qu'à compiler avec l'un ou l'autre sans modifs du code (les NIBs, c'est une autre question).
JB.
[^] # Re: gcc 3.3 est sorti
Posté par DiZ . Évalué à 1.
>L'utilisation d'autorelease pools entraîne systématiquement une segfault du soft :(
explicite ?
J'ai porté 4/5 aplis et je n'ai pas rencontré le problème
>J'ai hâte que GNUstep se rapproche encore un peu plus de Cocoa,
La politique actuele est d'implémenter les extentions de Cocoa ( ce qui est fait dans la
majorité des cas)
Seul le extentions "pas saines" de Apple ne sont pas implémentés
> peut-être jusqu'au point de n'avoir qu'à compiler avec l'un ou l'autre sans modifs >du code
Il n'y a que très peu de modifs à faire si ce n'est que du Cocoa :
- Le problème c'est que Apple enlève des Warnings à gcc :)
- n'utilises pas CoreFoundation
- n'utilises pas NSDrawer ( les dévelopeurs GNUstep n'en veulent pas )
- n'utilises pas Cocoa/Cocoa.h comme hearders
- n'utilises pas AppleScript et Quicktime.
- attention #import va être supprimé à partir de gcc3.4
Tu peux toujours venir sur #gnustep pour plus d'infos...
Ton application est libre ?
[^] # Re: gcc 3.3 est sorti
Posté par ... a little wood elfe . Évalué à 1.
Moi en tant qu'utilisateur je trouve ça plutot pas mal.
Le fait de ne pas utiliser Cocoa/Cocoa.h rajoute un warning lors de la compilation, est-ce que ça ne risque pas de faire un joli bug plus tard (mon programme n'est pas fini donc je n'ai pas testé plus loin). A quoi sert en fait ce Cocoa/Cocoa.h ?
Si le #import va être supprimé il va être remplacé par quoi ?
Merci d'avance pour vos réponses.
[^] # Re: gcc 3.3 est sorti
Posté par Larry Cow . Évalué à 1.
On verra plus tard, m'est avis :/
[^] # Re: gcc 3.3 est sorti
Posté par aegir_lf . Évalué à 1.
En effet, les bindings KDE pour les autres langages sont générés automatiquement, donc il devraient toujours être au niveau de la dernière version de l'API KDE.
[^] # Re: gcc 3.3 est sorti
Posté par Nicolas Roard (site web personnel) . Évalué à 10.
Objective-C, comme son nom l'indique, est un langage orienté objet basé sur C -- comme C++ .
La différence réside dans l'approche; C++ n'est pas plus que ça orienté objet, c'est juste un des multiples paradigmes de programmation qu'il supporte.
C++ a fait le choix de proposer un maximum de possibilitées dans le langage, mais en même temps essaie de ne pas pénaliser quelqu'un qui n'utiliserait qu'une partie de ces possibilitées (i.e., on ne paie que pour ce qu'on utilise).
Accessoirement le modèle objet de C++ est plus inspiré de Simula que de Smalltalk, c'est à dire qu'il privilégie la compilation statique au runtime dynamique.
Objective-C par contre a comme seul but de fournir des mécanismes de programmation orientée objet par dessus le langage C. Il n'ajoute ainsi que très peu de choses par rapport à C, mais ces choses sont fondamentales et permettent de changer complètement de paradigme et d'utiliser vraiment la programmation orientée objet. En cela il est différent de C++, qui ajoute énormément de choses. Personnellement, je trouve cette approche plus élégante car plus concise, mais ça dépends du but visé. Comme je l'ai dit, C++ n'a pas que la POO comme objectif.
L'approche OO d'Objective-C est très inspiré par Smalltalk, et il dispose ainsi d'un runtime chargé de résoudre les envois de messages entre objets (ce qui du coup rends l'envoi de messages entre objets distants, sur des machines ou réseaux différents, absolument trivial). Objective-C est bien sûr compilé, mais ce runtime permets des choses particulièrement intéressantes, comme l'ajout pendant l'exécution de méthodes à des classes d'objets (dont on n'est même pas forcé d'avoir le source), voir la modification de la hièrarchie des objets. Le runtime permets également quelques possibilitées d'introspection, permettant de demander ainsi à un objet son type, s'il réponds à une méthode ou un protocole, etc. On peut aussi définir une méthode répondant à tout message envoyé (même si non défini), et éventuellement forwarder ces messages vers d'autres objets ...
Bref, Objective-C a une nature dynamique, qui est particulièrement bienvenue quand on code -- au moins pour des logiciels avec interface graphique.
Sinon, oui, un des principaux intérêts d'Objective-C est la disponibilité du framework OpenStep, dont l'implémentation sous Mac OS X (Cocoa) ou celle sous Unix/Windows/etc. (GNUstep) permettent de programmer de façon particulièrement élégante et efficace (enfin, c'est mon avis :).
Bref selon moi, Objective-C est un langage élégant et souple, qui vaut le coup de s'y intéresser. Et OpenStep est le meilleur framework de programmation que je connaisse, point barre.
Tu peux trouver des documentations sur GNUstep/Objective-C sur cette page : http://www.roard.com/docs/(...) , dont les articles parus jusqu'à présent dans Linux Mag. D'ailleurs le prochain article ne sera malheureusement pas pour Juin, mais pour Juillet :-/ (rendu trop tard ...)
[^] # Re: gcc 3.3 est sorti
Posté par - - . Évalué à 2.
parce que Objective C et openstep forme vraiment un couple de qualité
si vous vous lassez d'attendre que GNUSTEP soit parfait, foncez sur un mac et essayez cocoa
sinon, par pitié, ne jugez pas gnustep a cause de son look (qui est pourtant sobre et efficace), il est celui du vénérable nextstep et a son epoque c t tres bien
et ne jugez par rapport aux helas trop peu nombreuses applications gnustep, l'api, le langage est vraiment très cohérent et bien construit.
Plus de gens y participeront, mieux se portera gnustep.
[^] # Re: gcc 3.3 est sorti
Posté par Jak . Évalué à 1.
Certes, mais ça reste un très très gros handicap pour attirer du monde. Le fait d'avoir un environnement cohérent (tout KDE ou tout Gnome, rien que pour les interactions entre logiciels) est un gros atout. Et force est de reconnaître que certaines applications «de base» manquent à GNUstep, comme par exemple un navigateur. Peut-être avec le support de l'ObjC++ dans gcc 3.4 (par contre, j'ai pas trouvé d'info au sujet de cette future intégration sur le site de gcc).
# Commentaire supprimé
Posté par Anonyme . Évalué à 1.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Compiler avec gcc 2
Posté par jmfayard . Évalué à 1.
dans ton makefile
CC=/chemin/vers/gcc2
# Architecture Via C3
Posté par Laurent Mazet (site web personnel) . Évalué à 0.
[^] # Re: Architecture Via C3
Posté par Laurent Mazet (site web personnel) . Évalué à 2.
[^] # Re: Architecture Via C3
Posté par Laurent Mazet (site web personnel) . Évalué à 2.
Faut que je cherche encore pour trouver les options correctes.
[^] # Re: Architecture Via C3
Posté par Nicolas Boulay (site web personnel) . Évalué à 1.
"La première sécurité est la liberté"
[^] # Re: Architecture Via C3
Posté par Laurent Mazet (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.