Programming Update: RAD Studio 13 Florence has been released along with a list of new features.
The Story Behind C++23: How RAD Studio Implements C++23 Support (Part 1)
The main content of this article is as follows:
-
Seamless collaboration between Delphi and C++
-
Innovations in the debugger and debugging information
-
C++Builder’s linker now supports COFF files
-
Conclusion and future outlook
Seamless collaboration between Delphi and C++
A significant advantage of the Embarcadero ecosystem is that C++ developers can directly utilize a large number of high-quality components written in Delphi, including core UI frameworks like VCL. Therefore, compatibility with the Delphi runtime has always been a core goal of compiler design.
Delphi uses its own unique ABI:
- On Win32, it adopts multiple calling conventions;
- On Win64, it uniformly uses a subset of the Itanium ABI.
Although this may sound like mere technical details, supporting these differences while ensuring efficient interaction is a massive engineering task. Fortunately, many new features in C++23 have simplified the process of porting Delphi functionalities, making interoperability between the two clearer and more reliable.

Innovations in the debugger and debugging information
Besides the compiler, the second most frequently used feature in the IDE is the debugger. It must also support the Delphi runtime, mapping Delphi objects back to source code and handling a unified debugging information format.
From classic compilers to modern compilers, the object file format has undergone fundamental changes:
- The old version used OMF (Object Module Format), a legacy format designed for the 16/32-bit era, which has size limitations and poor compatibility with modern toolchains;
- The new version has fully transitioned to the standard COFF format, supporting 64-bit architectures, CodeView debugging information, and is fully compatible with mainstream toolchains like LLVM and MSVC. COFF employs an extensible segmented design, efficiently handling large data and complex relocations.
Since the classic compiler used the <span>.tds</span> / GIANT debugging format, which is incompatible with CodeView, we had to maintain two sets of debugging information systems simultaneously. Despite the complexity, we are pleased to bring this significant improvement to users.
C++Builder’s linker now supports COFF files
- The classic compiler used
<span>ilink32</span>; - while BCC64x uses the LLVM-provided
<span>ld.lld</span>linker.
The new linker not only handles COFF object files but also supports extended relocation types and modern debugging information formats. C++Builder intelligently determines the project configuration, automatically switching between <span>ilink32</span> and <span>ld.lld</span> to ensure the build process is always correct.
Conclusion and future outlook
BCC64x lays a solid foundation for the long-term collaborative evolution of C++ and Delphi. We strongly recommend users migrate to the new compiler to enjoy all the features of C++23, improved diagnostic capabilities, and future compatibility guarantees.
This toolchain upgrade not only resolves historical burdens but also clears the way for significant innovations to come. We are already planning a more ambitious feature roadmap—and it all starts with what seems like a simple “one-line update” today.