Compilateur Intel pour Xcode

Vincent Absous |
Intel vient d'annoncer qu'il proposerait bientôt, vers la fin de l'année, un compilateur pour Mac OS X permettant aux développeurs préparant la transition vers l'architecture x86 d'optimiser le fonctionnement de leurs applications. Le nouveau meilleur ami d'Apple veut toutefois prendre son temps. L'outil, qui s'intégrera également à l'environnement de développement d'Apple Xcode, sera disponible d'abord en version bêta et aucune date n'est donnée pour une version finale. C'est que "c'est un marché entièrement nouveau", affirme-t-on de ce côté de la planète informatique quand on parle du Mac.
Tags
avatar Totophe | 
si intel porte ses compilateurs et librairies sur Mac OSX et les maintient à jour (contrairement à IBM), le passage à Intel ça va être de la brioche.
avatar Anonyme (non vérifié) | 
En traduction française tu veux dire quoi par là ?!?
avatar DEF | 
En pratique, cela ne veut il pas dire qu'on aura des applications compilées avec le compilateur Intel (qui est assez performant) et d'autres qui seront avec GCC (qui n'est pas le plus performants, ses qualités étant ailleurs). On risque de voir des différences au niveau exécution, non ? On verra comment il sera intégré car rien ne dit qu'on aura dans xCode un truc du genre: (1) compiliation UB avec GCC (2) compilation Intel Le choix (2) impliquant que les programmes ne se lanceront pas sur PPC. Rien n'emêche d'Apple d'intégrer cela dans l'UB en faisant un executable avec le compilo Intel un autre avec GCC mais on risque de retomber le problème de performances). Ai je tout faux ?
avatar grayfox | 
Pas tout faux, mais pas tout vrai. L'universal Binary permet de stocker un code par architecture. Tu ne peux pas fair un UB avec deux fois du code pour x86 (quelque soit le compilo), par contre, il est fort possible qu'on puisse faire un exe PPC avec GCC et un X86 avec le compilateur Intel, et qu'on les fusionnes les deux dans un UB. Et dans ce cas, pas de pb de performance. Sinon pour les avantages, je ne sais pas si le gain est aussi flagrant qu'entre GCC et le compilateur IBM. GCC est déjà meilleurs pour faire du X86 que pour faire du PPC
avatar nico | 
le principe de Universal binary et d'avoir 2 "binaires" dans la même appli rien n'empéche que l'un soit compilé avec gcc (le binaire PPC) et l'autre avec le compilo intel (le binaire x86). au niveau de XCode on pourra très bien avoir un build qui échoue si on compile en UB avec les options expliqué ci dessus et que la compilation d'un des 2 binaires échoue.
avatar nico | 
oupss Grayfox tu m'as devancé... :-)
avatar Couhoulinn | 
Il y aura des différences de performances entre les exécutables à l'instar de ce qui se fait déjà sur Windows (entre Visual Studio, Borland, GCC, ...).
avatar DEF | 
@Grayfox "Et dans ce cas, pas de pb de performance." Ben il peut avoir un problème de performances si le compilo Intel génère des programmes plus rapides. Car un fossé se creusera entre la version PPC et Intel. Bien sûr, il faut voir sur pièce et que le gain soit visible à l'oeil nu :)
avatar Anonyme (non vérifié) | 
Les compilateurs d'intel savent compiler l'objective-c ? Parce que sinon ça sert pas à grand chose ...
avatar Gaolinn | 
ICC est environ 40% plus rapide que GCC en 3.X Si Intel prend le temps pour porter son compilo sur Mac OS/X, ce n'est pas par frilosité mais parce-qu'ils veulent se laisser le temps d'étudier la façon de programmer des dev Mac OS/X, ils avaient déjà fait comme calà pour Linux. C'est cette étude du code qui permet à Intel de sortir un compilateur hyper optimisé pour la plateforme cible. Cf sur news.com l'interview de Kevin Smith directeur de la divition compilateur d'Intel. http://news.com.comhttp://news.com.com/Intel+plans+to+test+Mac+development+tools/2100-1007_3-5842363.html
avatar Anonyme (non vérifié) | 
Meme si les compilos Intel ne gèrent pas l'Objective-C (ce qui est plus que probable), ça sera toujours très utile pour toutes les applis qui n'utilisent pas Obj-C, à commencer par le kernel lui-meme. Si on gagne 10% de perfs en changeant de compilateur, Apple aurait tort de se priver... Et pour les développeurs qui ont du code C/C++ et pas d'Obj-C dans leurs projets, ça leur permettra d'exploiter les processeurs Intel à fond. Il parait que les optimisations du compilo Intel sont vraiment monstrueuses...
avatar Anonyme (non vérifié) | 
@Glawi Ok, donc c'est super, tout ce qui touche au techno d'Apple (qui utilisent toutes l'objective-c) ne sera pas optimisé... C'est naze.
avatar ericb | 
@Glawi >Et pour les développeurs qui ont du code C/C++ et pas >d’Obj-C dans leurs projets, ça leur permettra d’exploiter >les processeurs Intel à fond. Si je suis ton raisonnement, les développeurs qui n'ont pas d'objective-C dans leur projet n'utilisent donc pas Cocoa. C'est pas pénalisant pour Mac OS X (quand même basé dessus) quelque part ? En allant plus loin, les applis utilisant X11 vont y gagner, alors ? IMHO, je ne pense pas que le gain soit si important, et je soupçonne l'arnaque marketing. >Il parait que les >optimisations du compilo Intel sont vraiment monstrueuses... Alors vivement qu'on en sache plus !
avatar Ola | 
Actuellement il y a peu d'applications ou de frameworks dont le core est en objective-c. Il faut bien faire la différence entre l'interface et le core de l'application. Safari par exemple est une application cocoa écrite en objective-c mais le webkit lui est écrit en C/C++. L'objective-c est surtout utilisé pour le code de haut niveau. Et à terme rien n'empêche de penser qu'Intel sorte un compilateur pour l'objective-c mais cela nécessiterait plus de travail.
avatar christian | 
@ola Es tu sûr pour webkit ? Ne confonds tu pas avec webcore ? (je dis cela car Webkit est une API objectiveC pour utiliser ce dernier)
avatar NautileBleu | 
Pour les appli X11, il serait étonnant qu'elles utilisent le compilo d'Intel puisque la plupart sont open-source, je suppose qu'elles utilisent majoritairement GCC. Mais si on gagne même 10 % sur les opérations de bas-niveau de l'OS, sur des opérations qui sont systématiquement utilisées, au bout du compte, on y gagnera pas mal. Pour le webkit, il n'est pas en Obj-C, puisque c'est basé sur KHTML, qui est multi-environnement. Il est donc probablement en C/C++
avatar michel | 
intel cc (icc) est compatible avec les extensions de GCC, un programme opensource totalement pensé pour linux et les outils gnu compile avec icc (le test ultime étant le kernel linux ou la gnu libc qui compilent avec intel cc) en clair : les programmes opensources ne devraient poser aucun problème pour celui qui a PAYE une licence intel cc pour avoir le compilateur d'intel. intelcc ne compile pas objective C. je doute qu'intel en rajoute le support sachant que gcc le fait déjà. et a propos d'optimisations, GCC ne pond PAS un code d'escargot ! il ne faut donc pas paniquer si vous apprenez qu'un logiciel est "que" compilé avec gcc. faut pas non plus croire que Doom 3 compilé avec icc (d'ailleurs rien ne dit que la version mac de doom 3 soit compilé avec gcc hein !) double de perfs ou gagne 2 images/seconde de + cela dit, oui, y a des cas où intel sait largement mieux que les développeurs gcc comment utiliser leur propre cpu icc sera très intéressant pour tout ce qui touche au coeur d'osx ou certainement un mathematica (dans le même temps, les développeurs gcc ne dorment pas , n'allez pas croire qu'il faille absolument que votre éditeur de shareware favori fonce acheter une licence icc )
avatar ericb | 
En général, ce sont des applis portables, et je pense que le compilateur peut aussi être changé. Attendons d'en savoir plus.
avatar Ola | 
WebKit est le framework basé sur WebCore et JavaScriptCore, et inclut des additifs récents. Effectivement en disant WebKit j'ai englobé des choses qui ne sont pas écrites C/C++. Cependant le gros du WebKit à savoir WebCore et JavaScriptCore est basé sur les projets OpenSource de KDE qui sont écrits en C/C++.
avatar Ola | 
"intelcc ne compile pas objective C. je doute qu’intel en rajoute le support sachant que gcc le fait déjà." Je comprends pas bien l'argument, le C et C++ sont aussi compilés par GCC pourtant Intel cc existe.
avatar Anonyme (non vérifié) | 
Ca serait bien que codeplay porte leur compilo pour OSX, je n'arrive plus à trouver le benchmark, mais ils avaient recompiler quake 1, et ils gagnaient des fps. http://www.codeplay.com/index.html
avatar NightWalker | 
Bah si o lit MacBidouille, ce compilateur apportera surtout l'optimisation des jeux d'instructions SSE.
avatar iBouc | 
Oui, super, a nous les joies des processeurs 8bits qui boutent encore en mode "base memory" de 640Ko. A nous les trous de sécurités à cause du cache commun mal géré des bi-core Intel. Vraiment ... que du bonheur en perspective ... :-(
avatar iBouc | 
iBouc > Tiens une personne qui réagit qui s'y connait ... "Oui, super, a nous les joies des processeurs 8bits qui boutent encore en mode "base memory" de 640Ko." héhé "A nous les trous de sécurités à cause du cache commun mal géré des bi-core Intel." En même temps, c'est plutôt dur a utiliser pour faire un exploit ... c'est qu'un concept emis ... personne ne l'a encore exploité à ma connaissance ...
avatar Anonyme (non vérifié) | 
Pas brilants les Intels double-core. En revanche, chez AMD, on la maîtrise sec cette technologie. Avant, on disait : tu est Mac ou PC ? Maintenant on dira, tu est Intel ou AMD ?...* On se poile bien avec tous ces revirements. * Enfin du nouveau pour le mot du jour ! Le coup de Jésus et la patate, on nous l'a fait 1000 fois. Faut lui payer une Harley à Guy Kawasaki, et de nouvelles lectures à MacGé...
avatar Anonyme (non vérifié) | 
"intelcc ne compile pas objective C. je doute qu’intel en rajoute le support sachant que gcc le fait déjà." En fait on peut faire un compilateur obj-C à partir d'un compilo C "en ajoutant juste une surcouche par dessus". En utilisant l'Objective-C on profite ainsi des 30 ans d'optimisation des compilateurs C !! Pas besoin de repartir de zéro! C'est en gros ce qui est dit sur Wikipédia dans cet excellent article présentant l'oBj-C: http://en.wikipedia.org/wiki/Objective-C "Likewise, the language can be implemented on top of existing C compilers (in the GCC, first as a preprocessor, then as a module) rather than as a new compiler. This allowed ObjC to leverage the huge existing collection of C code, libraries, tools, and mindshare. Existing C libraries - even in object code libraries - can be wrapped in ObjC wrappers to give them an OO style and more easily use them in your programs." Dîtes-moi si je me trompe. bonne lecture.

CONNEXION UTILISATEUR