Xcode 4.6 : dernière version à gérer llvm-gcc

Christophe Laporte |


Xcode 4.6 sera la dernière version de l'environnement de développement d'Apple à proposer llvm-gcc comme compilateur et GDB comme déboggueur. La marque à la pomme a entamé la transition vers LLVM de longue date. Cela fait déjà longtemps qu'elle ne propose plus GCC dans Xcode, llvm-gcc avait été proposée par Apple afin de faire le lien entre les deux.

Xcode 4.6 est actuellement en bêta. Une seconde préversion a été proposée au téléchargement lundi juste après la sortie d'iOS 6.1ß2. En toute logique, ces deux logiciels devraient être finalisés en même temps.

Tags
avatar youpla77 | 

Pour les non initiés cela veut dire quoi (avantages / inconvénients )?

avatar justhouz | 

Pour faire simple LLVM est un compilateur plus moderne, plus versatile et plus souple que GCC et Apple fait évoluer Xcode vers cette solution. llvm-gcc a servit et sert encore de solution temporaire pour permettre aux développeurs de faire la transition de manière progressive.

avatar bigham | 

"Xcode 4.6 est actuellement en bêta"

Pourquoi avoir ajouté ".6" ?

avatar lion.mar | 

@bigham

Car il s'agit du numéro de la version.

avatar bompi | 

@justhouz : (..) un compilateur plus moderne, plus versatile (..)

Disons plutôt polyvalent, histoire d'être plus clair.

avatar Sephi-Chan | 

@ lion.mar

C'était du second degré. Pour certains, c'est toute la branche 4 de Xcode qui est digne du statut de bêta. ;)

avatar Macleone | 

@bompi : “Disons plutôt polyvalent, histoire d'être plus clair.”

Alors qu'en fait, pas tellement, puisque clang ne gère que le C/C++/ObjC, et un nombre limité processeurs alors que GCC (et LLVM-GCC) gère bien plus de langages, et d'architectures.

GCC 4.7, qui est la version actuelle, n'est pas tellement en retrait par rapport à clang/LLVM, et le code généré pour X86 et souvent meilleurs (par contre pour ARM, clang tend à générer du meilleurs code que GCC).

Le problème c'est que Apple, pour des raison politiques, a décidé qu'aucun composant sous licence GPL 3 ne serait intégré au système, ce qui est le cas de GCC depuis la version 4.3, et de GDB depuis quelques versions aussi.

Ils ont donc pris la décision de créer des outils pour remplacer GCC/GDB. C'est comme ça que clang (le compilateur actuelle de Xcode) puis LLDB (le débugger de Xcode) ont vu le jour.

Pour ce qui est de LLVM-GCC, tout développement autour de ce projet a cessé depuis bientôt un an, donc il n'est pas surprenant que Apple s'en débarrasse dans Xcode.

avatar BeePotato | 

@ Macleone : « Apple, pour des raison politiques, a décidé qu'aucun composant sous licence GPL 3 ne serait intégré au système »

C’est aussi — et probablement surtout — qu’Apple souhaitait pouvoir intégrer bien plus le compilateur à l’IDE, plus que ce que permet la séparation des deux en deux exécutables séparés. La GPL empêchant de faire ça de façon raisonnable, il était naturel de se tourner vers une autre solution. Si on ajoute à ça le fait qu’Apple a du coup plus de contrôle sur la direction dans laquelle faire évoluer le compilateur, on comprend bien ce choix.

avatar youpla77 | 

Bon j'ai toujours rien compris, mais si c'est mieux pour les développeurs alors tant mieux ;)

avatar Fulvio | 

Je suis pas sûr que le changement de licence de GCC explique ce choix. Après tout, Apple pouvait partir de la dernière version en GPL v2 et créer un fork qui reste sous cette licence. Ce n'est pas un problème de ressource, car Apple est l'un des principaux contributeurs de LLVM.

Mais les détails techniques m'échappent un peu. Si j'ai bien compris, LLVM est davantage une chaîne de compilation qu'un compilateur, une série de briques modulables là où GCC est un bloc uni (bien que polyvalent). Ca pourrait éventuellement faciliter une transition vers un modèle à la .NET, qui serait commode pour faire des binaires universels iOS/OS X ou pour changer de nouveau l'architecture des Mac.

CONNEXION UTILISATEUR