Tout d'abord, à l'installation, les SDK suivants sont présents : Mac OS X 10.3.9, Mac OS X 10.4 (Universal), et Mac OS X 10.5. Passons sur la disparition du SDK pour Mac OS 10.2.8 (que les morts reposent en paix), mais notons plutôt autre chose : le SDK pour Mac OS X 10.5 perd sa notion « Universal ». XCode ne compilerait-il pour Mac OS X 10.5 que des applications pour architecture Intel ?
Pour vérifier ça, il n'y a qu'une seule solution : créer un nouveau projet, et regarder ses paramétrages. Souvenez vous : dans XCode 2.x, vous avez la possibilité de compiler un programme pour les architectures x86, ppc, ou les deux. Avec XCode 3.0, ce choix a disparu. Ça fait peur aux possesseurs de PowerPC, non ? Ce choix est en fait remplacé par un autre : 32 bits, 64 bits, ou les deux. En effet, à partir de XCode 3.0, les applications sont par défaut au format universel. Le choix « 32 bits » active automatiquement le support i386 (Core Duo) et ppc (G4, peut-être G3), et le choix « 64 bits » le support x86_64 (Core 2 Duo) et ppc64 (G5). Il est bien entendu possible d'affiner manuellement le choix des architectures cibles : les architectures ppc7400 (G4) et ppc970 (G5) sont disponibles. C'est d'ailleurs le fait que la liste des architecture ne comporte pas le choix spécifique au G3 qui me fait penser que son support touche vraiment à sa fin chez Apple, ce qui est confirmé par les spécifications systèmes pour Leopard : plus de G3, et uniquement les G4 les plus récents (bien entendu, les G5 et processeurs Intel restent de la partie).
Pour conclure, avec la nouvelle version de XCode qui crée des binaire universels (et encore plus universels que les versions précédentes), les PowerPC vont pouvoir se nourrir de nouvelles applications pendant encore pas mal de temps.
Sinon, pour la forme, voici le résultat après la création d'un simple hello world avec XCode 3.0 :
skuld@skuld# file helloworld helloworld: Mach-O universal binary with 4 architectures helloworld (for architecture x86_64): Mach-O 64-bit executable x86_64 helloworld (for architecture ppc64): Mach-O 64-bit executable ppc64 helloworld (for architecture i386): Mach-O executable i386 helloworld (for architecture ppc): Mach-O executable ppc
Sinon, au chapitres des nouveautés entre aperçues, mais non testées :
- Les projets de type Java-Cocoa (applications Cocoa dont le code est en Java) disparaissent au profit des projets de type Ruby-Cocoa.
- Dashcode, une application permettant de développer rapidement des widgets pour Dashboard.
- Un nouvel « Interface Builder ».
- La disparition dans les paramétrage d'un projet de l'activation des instructions Altivec au profit des instructions SSE3.
- « Instruments », qui permet d'effectuer un monitoring graphique de son application (utilisation mémoire, processeur, entrées/sorties, etc).
Twitter
Facebook
Google+
LinkedIn
Commentaires
Du moment que Leopard gère les G4 ça me convient, pour mes G3 je sais dans quoi les mettres, un petit NetBSD ou FreeBSD !
En tout cas Xcode 3.x à l'air très sympatique, je crois que le langage par défaut est toujours l'objective-c ?
al.
alObjective-C ou Objective-C 2, je ne sais plus si le premier est remplacé par le second, ou bien s'il reste en complément.
Arnaud BoudouUne question-remarque en passant :
Quand ils parlent de code universel, est-ce que ca ne veut pas dire que les fonctions speciales du CPU (MMX, SSE etc) sont tout simplement omises, ne conservant que les fonctions de base (asm) communes a tous les processeurs ?
FFFPour ma part, j'aimerais voir combien de fois un compilateur met reelement a profit ces fonctions speciales d'optimisation, des avancees techniques inutiles pour les applications banales, mais sources de soit-disant incompatibilites. (l'industrie des processeurs s'en rejouit)
En fait, il ne s'agit pas de code universel, mais d'application universelle : l'application intègre l'ensemble des binaires pour les architectures cibles (PowerPC, x86, x86_64, etc). Les optimisations CPU sont prises en compte vu que chaque binaire est compilé indépendamment des autres.
Arnaud Boudou