Yukon Beta Blog par David Millington le 26 octobre 2023
Ce billet de blog est basé sur une version préliminaire du logiciel RAD Studio et a été rédigé avec l'autorisation expresse de Embarcadero. Aucune fonctionnalité n'est engagée avant la sortie de la version GA du produit.
Nouveau Clang
Le compilateur C++ est un élément fondamental de la RAD Studio. Grâce au travail sur Clang et LLVM, nous mettons LLVM à la disposition de la Delphi. Et, bien sûr, nous avons besoin d'un compilateur C++ moderne et puissant pour fournir à nos développeurs C++ la meilleure compatibilité avec les sources, les bibliothèques, les performances des applications, et bien d'autres choses encore.
Nos objectifs sont les suivants
- Très haute qualité. Un STL robuste. Un linker qui peut gérer n'importe quoi et n'importe quelle quantité que vous lui donnez.
- Excellente qualité dans tous les domaines, comme la gestion des exceptions
- Excellente compatibilité avec les normes linguistiques.
- Haute performance du code compilé. Temps d'exécution optimisés.
- Faire correspondre autant que possible les normes de la plate-forme
Comment y parvenons-nous ? Procédons par ordre inverse.
Normes de la plate-forme
La nouvelle chaîne d'outils est basée sur Clang 15*. La chaîne d'outils précédente utilisait le format de fichier objet ELF, un format principalement Unix/Linux, pour des raisons historiques qui sont en fait (longue histoire) liées à Kylix. Pour cette chaîne d'outils, nous passons à COFF, qui est le format de fichier objet standard pour les compilateurs Windows de n'importe quel langage compilé. De même, nous utilisons le format de débogage PDB, qui est lui aussi standard. Bien que nous ne soutenions officiellement aucun outil tiers, il existe de nombreux outils utilisés par les développeurs qui comprennent COFF et PDB et nous espérons qu'en adhérant aux normes de la plate-forme, nous ouvrons la possibilité d'utiliser une grande variété d'outils avec vos applications et C++Builder.
[Clang 15 était à jour lorsque ce travail a commencé, et nous évitons de changer les roues pendant que la voiture est en mouvement. Nous prévoyons de rester à jour et d'aller de l'avant avec Clang lui-même à l'avenir.
Haute performance du code compilé.
Si nous visons avant tout un comportement correct du code compilé, nous visons également des performances élevées. La technologie de la nouvelle chaîne d'outils génère un code plus optimisé et permet des optimisations supplémentaires qui n'étaient pas possibles auparavant.
