- Proposition de retirer les bibliothèques LLVM, Clang et LLD du projet Zig.
- Zig prévoit d’avoir ses propres passes d’optimisation et d’attirer des projets de recherche ainsi que des contributions de fabricants de puces.
- Suppression dans Zig des capacités de compilation C++, Objective-C et Objective-C++.
- Le code machine généré par Zig pourrait être moins compétitif dans un avenir proche, mais à long terme il pourrait rattraper ou dépasser LLVM et GCC.
- Les avantages du retrait de LLVM incluent l’appropriation des bugs, un build et un bootstrapping plus simples, des temps de compilation plus rapides et la capacité d’implémenter des passes d’optimisation personnalisées.
- Des inquiétudes ont été soulevées concernant l’impact sur les projets qui dépendent de la compilation C++ et une possible baisse de l’adoption de Zig.
- Il pourrait être difficile de supprimer les dépendances à DirectXShaderCompiler et au compilateur de shaders Metal d’Apple.
- À long terme, l’objectif est de pousser une transition vers une solution 100 % Zig.
- Certains utilisateurs s’inquiètent de l’impact sur l’expérience de développement de jeux et sur l’utilisation des bibliothèques et outils C++ existants.
- La simplicité de Zig et ses capacités multiplateformes sont saluées.
- Des propositions ont été faites pour conserver le backend LLVM par défaut, ou pour maintenir le support de la famille C tout en supprimant l’abaissement vers LLVM IR.
- Les utilisateurs soulignent l’importance de la capacité de Zig à compiler sans friction du code C/C++ et à produire des binaires performants.
- La perte potentielle de bibliothèques existantes et le besoin d’une alternative pour la compilation JIT ont aussi été discutés.
- La proposition est perçue comme un impact purement négatif pour les utilisateurs et comme un appât potentiel.
- L’importance de préserver les capacités de Zig pour la cross-compilation et l’intégration de bibliothèques existantes est mise en avant.
- Une proposition a été faite pour supprimer les dépendances à LLVM et LLD tout en gardant
clang comme dépendance optionnelle.
- Des préoccupations ont été exprimées sur l’impact en matière de performances et sur la faisabilité d’un remplacement de LLVM.
- L’importance du support de la compilation C++ pour le développement de jeux et d’autres projets est soulignée.
- La possibilité que Zig remplace au fil du temps les fonctionnalités de LLVM est mentionnée.
- Le besoin de garanties de performances raisonnables et la perte potentielle de marges d’optimisation ont été discutés.
- L’impact sur certaines bibliothèques et certains outils, comme ImGui et Tracy, a été mentionné.
- La proposition de retirer LLVM de la toolchain de Zig pourrait provoquer une fracture au sein de la communauté Zig.
- Certains utilisateurs pourraient continuer à utiliser d’anciennes versions de Zig pour éviter une migration.
- Le maintien de LLVM comporte aussi des défis et des limites.
- Un système de plugins pour le compilateur Zig pourrait constituer une solution à long terme.
- La compilation de programmes Zig vers d’autres plateformes et langages pourrait toujours être prise en charge.
zig cc, une fonctionnalité distinctive de Zig, pourrait continuer à évoluer comme projet indépendant.
- Aucune décision finale n’a encore été prise concernant cette proposition.
- Le débat sur le retrait de LLVM s’est propagé sur les réseaux sociaux.
zig cc est très apprécié dans la communauté et offre des avantages par rapport à d’autres toolchains.
- Il serait possible de maintenir
zig cc sans Clang.
- Un projet séparé qui embarquerait Clang pourrait prendre en charge les cas d’usage existants où Zig sert à builder du code C++.
- La séparation en outils distincts ou l’embauche de mainteneurs pour préserver
zig cc sont évoquées comme solutions potentielles.
- Des outils de migration pourraient être développés pour les bases de code qui dépendent des fonctionnalités supprimées.
- Un ingénieur logiciel a récemment migré un projet vers une version récente de GHC, qui utilise un générateur de code natif pour offrir des temps de compilation plus rapides.
- Le projet Silk.NET utilise
zig cc et zig c++ pour fournir un environnement de build reproductible pour des bibliothèques natives, facilitant la cross-compilation et la configuration locale.
- Des ingénieurs logiciels utilisent
zig cc et zig c++ dans des projets personnels afin de simplifier la cross-compilation de bibliothèques et de centraliser la configuration dans un unique build.zig.
- Le compilateur Intel C/C++ a achevé son adoption de LLVM, apportant des temps de compilation plus rapides, de meilleures optimisations et le support de l’offloading GPU et FPGA.
- La proposition de déplacer la partie LLVM de Zig vers un projet distinct maintenu par la communauté a suscité des réactions mitigées.
- Certains utilisateurs expriment leur inquiétude face à la suppression du support C++ dans Zig, tandis que d’autres estiment que ce support coûte cher et n’entre pas dans le budget.
- L’équipe Zig suggère que les personnes pour qui le support C++ est important devraient envisager de contribuer financièrement ou en temps pour soutenir cette fonctionnalité.
- Certains utilisateurs estiment que le retrait de LLVM pourrait apporter des bénéfices à long terme, tout en s’inquiétant de la suppression complète du support C++ et Obj-C(++).
- Il est aussi proposé de réduire le compilateur Zig à un binaire plus petit et plus léger, avec les fonctionnalités LLVM ajoutées sous forme d’extensions.
2 commentaires
Peut-on vraiment atteindre le même niveau d’optimisation et de prise en charge des plateformes qu’avec LLVM…
Avis Hacker News