Yukon Beta Blog door David Millington op 26 oktober 2023
Deze blog post is gebaseerd op een pre-release versie van de RAD Studio software en het is geschreven met specifieke toestemming van Embarcadero. Geen enkele functie is toegezegd totdat het product GA release.
Nieuwe Clang
De C++ compiler is fundamenteel voor RAD Studio. Door het Clang & LLVM werk, maken we LLVM beschikbaar voor Delphi. En natuurlijk hebben we een moderne, krachtige C++-compiler nodig om onze C++-ontwikkelaars te voorzien van de beste broncompatibiliteit, bibliotheken, app-prestaties en nog veel meer.
Onze doelen voor het werk zijn:
- Zeer hoge kwaliteit. Een robuuste STL. Een linker die alles aankan en elke hoeveelheid die je het geeft.
- Uitstekende kwaliteit op alle gebieden, zoals exception handling
- Uitstekende compatibiliteit met taalstandaarden.
- Hoge prestaties voor de gecompileerde code. Geoptimaliseerde runtimes.
- Zoveel mogelijk overeenkomen met platformstandaarden
Hoe voldoen we daaraan? Laten we het in omgekeerde volgorde doen.
Platform standaarden
De nieuwe toolchain is gebaseerd op Clang 15*. De vorige toolchain gebruikte het ELF object bestandsformaat, een voornamelijk Unix/Linux formaat, om historische redenen die eigenlijk (lang verhaal) gerelateerd zijn aan Kylix. Voor deze toolchain gaan we over op COFF, wat het standaard object bestandsformaat is voor Windows compilers van elke gecompileerde taal. Op dezelfde manier gebruiken we het PDB debug formaat, wat weer de standaard is. Hoewel we officieel geen tools van derden ondersteunen, zijn er veel tools die ontwikkelaars gebruiken die COFF & PDB begrijpen en we hopen dat door ons te houden aan de platformnormen, we de mogelijkheid bieden om een grote verscheidenheid aan tools te gebruiken met uw apps en C++Builder.
[Clang 15 was actueel toen dit werk begon, en we vermijden om de wielen te verwisselen terwijl de auto in beweging is. We zijn van plan om up-to-date te blijven en in de toekomst verder te gaan met Clang zelf.
Hoge prestaties voor de gecompileerde code.
Hoewel we boven alles streven naar correct gecompileerd codegedrag, streven we ook naar hoge prestaties. De technologie van de nieuwe toolchain genereert meer geoptimaliseerde code en maakt extra optimalisaties mogelijk die voorheen in de toekomst niet mogelijk waren.
