Posté par beagf .
En réponse à la dépêche LLVM 2.9 !.
Évalué à 10.
Oui, même les durs de la feuille comme moi ont bien compris le problème que pose la licence — trop respectueuse des libertés des utilisateurs — de GCC à certains groupements d'intérêts plus orientés « real politic » et parfois moins sourcilleux que la FSF quant aux droits de leurs constituants (les machines organiques qui correspondent aux cases de l'organigramme) et clients.
Ton ironie passe mal. Tu sembles insinuer que les licences BSD, MIT ou équivalent sont moins bien que la reine GPL qui assure plein de choses à l'utilisateur. Le problème est pourtant bien réel, la GPL ne permet de réutiliser une bibliothèque dans un projet qui n'est pas open source. Il y a de développeurs que cela ne gène pas et il y en a d'autres qui ne veulent pas imposer cette restriction à leurs utilisateurs.
Chacun son choix et tu n'as pas à le critiquer.
Car dans votre commentaire comme dans le journal, cela reste ambiguë. Un peu comme une manière de dire que le backend de gcc ne serait pas réutilisable (!) ou que gcc ne serait pas bien documenté. Le second point étant certainement une question de goût et de jugement personnel dont chacun est libre.
Ce n'est pas une question de goût où autre, le backend n'était, au moment ou LLVM à débuter, absolument pas réutilisable et ce de manière volontaire. Le changement de position de RMS et de la FSF à ce sujet est d'ailleurs sûrement en grande partie dû à LLVM.
Quand à la documentation des représentation intermédiaires, c'est à peu près la même chose. Il n'y a pas grand chose et surtout elle à été définie uniquement selon les besoins et l'architecture de GCC. Ce n'est pas une critique ici mais un choix technique.
La grosse différence est là : les représentation intermédiaire dans GCC ne sont qu'un moyen technique de faire la compilation, s'il y a avait d'autres méthode aussi efficaces ils auraient pus tout autant les choisir. Elles évoluent en fonction des besoins de GCC sans ce préoccuper du reste du monde car seul GCC les utilises, bref, c'est un truc très bien pour GCC mais absolument inutilisable pour le reste du monde.
Dans LLVM, au contraire, la représentation intermédiaire à été conçue et clairement définie de manière à être un outil de partage entre de nombreux outils. Elle est donc parfaitement définie et peut donc être facilement utilisée par n'importe qui et à été conçue de manière à couvrir le plus grand champs d'application possible, pas uniquement un seul compilateur.
L'approche de GCC à l'avantage d'avoir un truc plus adapté à un outils en particulier et que l'on peut faire évoluer facilement quand le besoin s'en fait sentir, alors que l'approche de LLVM permet de faire fonctionner ensemble de nombreux programmes sans problème mais au d'une évolution plus lente.
Il faut bien voir que les deux approches ont des objectifs différents et que dans le cas de GCC, le reste du monde s'en contre tape de savoir qu'il y a une représentation intermédiaire puisque de toute façon elle est inutilisable en dehors de GCC.
[^] # Re: IR
Posté par beagf . En réponse à la dépêche LLVM 2.9 !. Évalué à 10.
Ton ironie passe mal. Tu sembles insinuer que les licences BSD, MIT ou équivalent sont moins bien que la reine GPL qui assure plein de choses à l'utilisateur. Le problème est pourtant bien réel, la GPL ne permet de réutiliser une bibliothèque dans un projet qui n'est pas open source. Il y a de développeurs que cela ne gène pas et il y en a d'autres qui ne veulent pas imposer cette restriction à leurs utilisateurs.
Chacun son choix et tu n'as pas à le critiquer.
Ce n'est pas une question de goût où autre, le backend n'était, au moment ou LLVM à débuter, absolument pas réutilisable et ce de manière volontaire. Le changement de position de RMS et de la FSF à ce sujet est d'ailleurs sûrement en grande partie dû à LLVM.
Quand à la documentation des représentation intermédiaires, c'est à peu près la même chose. Il n'y a pas grand chose et surtout elle à été définie uniquement selon les besoins et l'architecture de GCC. Ce n'est pas une critique ici mais un choix technique.
La grosse différence est là : les représentation intermédiaire dans GCC ne sont qu'un moyen technique de faire la compilation, s'il y a avait d'autres méthode aussi efficaces ils auraient pus tout autant les choisir. Elles évoluent en fonction des besoins de GCC sans ce préoccuper du reste du monde car seul GCC les utilises, bref, c'est un truc très bien pour GCC mais absolument inutilisable pour le reste du monde.
Dans LLVM, au contraire, la représentation intermédiaire à été conçue et clairement définie de manière à être un outil de partage entre de nombreux outils. Elle est donc parfaitement définie et peut donc être facilement utilisée par n'importe qui et à été conçue de manière à couvrir le plus grand champs d'application possible, pas uniquement un seul compilateur.
L'approche de GCC à l'avantage d'avoir un truc plus adapté à un outils en particulier et que l'on peut faire évoluer facilement quand le besoin s'en fait sentir, alors que l'approche de LLVM permet de faire fonctionner ensemble de nombreux programmes sans problème mais au d'une évolution plus lente.
Il faut bien voir que les deux approches ont des objectifs différents et que dans le cas de GCC, le reste du monde s'en contre tape de savoir qu'il y a une représentation intermédiaire puisque de toute façon elle est inutilisable en dehors de GCC.