LLVM est un projet de recherche pour fournir une infrastructure de compilation modulaire (ils ont eu des sous de la national science foundation, l’équivalent US de l'agence nationale pour la recherche) pour favoriser la recherche et l’expérimentation en compilation. Clang a effectivement été créé ca cause des problèmes de licence et de l'architecture du front-end de GCC (qui lie (liait?) artificiellement le front-end et le back-end pour des raisons plus politiques que techniques). La complexité artificielle liée au maintien de clang-gcc comme front-end a (de ce que j'ai compris) plus contribué a la création de Clang que le front-end de Xcode (apres tout, Xcode n'avait pas forcément beaucoup de mal a utiliser le front-end de GCC avant ça : ils s'en servaient depuis des années...).
Maintenant, Apple a adopté LLVM a cause des problèmes de licence liées a la GPL 3 pour GCC (c'est pour ça que pendant la transition, les OS d'Apple étaient coincés avec GCC 4.2 ou 4.3) d'une part, et le fait que le comité de GCC refusait d'intégrer un moyen d'ajouter des passes d'optimisation depuis l'extérieur (ils ont depuis changé d'avis, entre autres grâce au succès et l'adoption de LLVM/Clang par de plus en plus de monde). L'intégration avec Xcode est une des raisons techniques, ainsi que l'avancement limité pour ObjC dans GCC, mais je ne suis franchement pas convaincu que ça a été la raison principale (la politique/le légal a tendance a avoir un poids plus important dans ces cas-la).
Pour en revenir a mon point initial : Zenitram et Groumly se disputaient a propos du "langage phare" d'Apple (qui change environ tous les 10-15 ans). Entre autres Zenitram ironisait sur le fait que malgré son langage phare, Objective C, et maintenant Swift, Apple continuait le support d'un compilateur pour C et C++. Je ne faisais que rappeler que Apple a en priorité supporté LLVM, qui contient un middle-end et un back-end. Ils ont ensuite rajouté Clang quand d'autres soucis techniques et légaux se sont rajoutés. Sauf que, a la base, Apple a utilisé LLVM pour optimiser ses codes OpenGL (écrits en C), avant de passer au codage du futur iOS, etc. D'autre part, OS X est toujours écrit en C (au moins la partie Darwin), ce qui nécessite un compilateur C. Enfin, Objective C est complètement compatible avec les binaires C sur le même système (par conception). Il se trouve que, tout comme GCC il y a 10-15 ans, Clang est en train de diversifier le nombre de langages qu'il gère--quelque part c'est logique : maintenant que l'infrastructure est la, autant l'utiliser.
[^] # Re: Donc pour résumer...
Posté par lasher . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 8.
LLVM est un projet de recherche pour fournir une infrastructure de compilation modulaire (ils ont eu des sous de la national science foundation, l’équivalent US de l'agence nationale pour la recherche) pour favoriser la recherche et l’expérimentation en compilation. Clang a effectivement été créé ca cause des problèmes de licence et de l'architecture du front-end de GCC (qui lie (liait?) artificiellement le front-end et le back-end pour des raisons plus politiques que techniques). La complexité artificielle liée au maintien de clang-gcc comme front-end a (de ce que j'ai compris) plus contribué a la création de Clang que le front-end de Xcode (apres tout, Xcode n'avait pas forcément beaucoup de mal a utiliser le front-end de GCC avant ça : ils s'en servaient depuis des années...).
Maintenant, Apple a adopté LLVM a cause des problèmes de licence liées a la GPL 3 pour GCC (c'est pour ça que pendant la transition, les OS d'Apple étaient coincés avec GCC 4.2 ou 4.3) d'une part, et le fait que le comité de GCC refusait d'intégrer un moyen d'ajouter des passes d'optimisation depuis l'extérieur (ils ont depuis changé d'avis, entre autres grâce au succès et l'adoption de LLVM/Clang par de plus en plus de monde). L'intégration avec Xcode est une des raisons techniques, ainsi que l'avancement limité pour ObjC dans GCC, mais je ne suis franchement pas convaincu que ça a été la raison principale (la politique/le légal a tendance a avoir un poids plus important dans ces cas-la).
Pour en revenir a mon point initial : Zenitram et Groumly se disputaient a propos du "langage phare" d'Apple (qui change environ tous les 10-15 ans). Entre autres Zenitram ironisait sur le fait que malgré son langage phare, Objective C, et maintenant Swift, Apple continuait le support d'un compilateur pour C et C++. Je ne faisais que rappeler que Apple a en priorité supporté LLVM, qui contient un middle-end et un back-end. Ils ont ensuite rajouté Clang quand d'autres soucis techniques et légaux se sont rajoutés. Sauf que, a la base, Apple a utilisé LLVM pour optimiser ses codes OpenGL (écrits en C), avant de passer au codage du futur iOS, etc. D'autre part, OS X est toujours écrit en C (au moins la partie Darwin), ce qui nécessite un compilateur C. Enfin, Objective C est complètement compatible avec les binaires C sur le même système (par conception). Il se trouve que, tout comme GCC il y a 10-15 ans, Clang est en train de diversifier le nombre de langages qu'il gère--quelque part c'est logique : maintenant que l'infrastructure est la, autant l'utiliser.