Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
DelphiNewsRAD Studio

Coming in RAD Studio 13.2: A New Generation of Delphi Development for Linux Intel 64-bit

coming_in_13_2_banner_1_1

A first look at the compiler and runtime work we are doing for Delphi on Linux Intel 64-bit.

Feature Preview: This blog post is based on a pre-release version of the RAD Studio software and it has been written with specific permission by Embarcadero. No feature is committed until the product GA release.

At Embarcadero, we are doing significant work on the Delphi compiler for Linux Intel 64-bit. The current compiler is based on LLVM 3.3, which was released a long time ago. The new compiler moves to LLVM version 20.1 and it uses the same general compiler backend we introduced in RAD Studio 13.1 for Delphi on Windows Arm64EC.

The work, which is nearing completion and should ship in the next release, is not a simple update to an internal component. Moving across so many LLVM releases required changes in the compiler front end, the generated intermediate representation, exception handling, linking, and debug information. The result is a much more current Linux toolchain and, more importantly, one we can continue improving over time by steadily adopting newer LLVM versions.

While we are focused on Linux web servers and web services, the new compiler is also going to support Linux client applications development with FMXLinux.

A New Backend and Linker

The reworked compiler uses a customized version of LLVM’s LLD linker, replacing GNU gold linker. It also produces DWARF 5 debug information instead of DWARF 2. We’ve made corresponding changes in the compiler front end so that the debugger receives better information about source locations, variables, and Delphi types.

The Delphi Linux compiler will be available as both a 32-bit and a 64-bit executable. In practical terms, this means you can build Linux Intel 64-bit applications directly from the 64-bit RAD Studio IDE, along with Win64 and Windows Arm64EC projects. However, you can also keep using the 32-bit IDE. The 64-bit version removes the address-space limitations of a 32-bit process for both the compiler and the IDE for larger projects..

Adding the Linux 64-bit target platform to a Delphi application in the 64-bit IDE

Optimized Linux Applications

This compiler work also allows us to take advantage of the latest LLVM optimizations.  The old compiler used LLVM for code generation, but it could not pass Delphi code through the newer LLVM intermediate-representation optimizers. We have changed the front end, including the handling of Delphi exceptions, so these optimizations can now be applied to Release builds.

In our internal tests, a number of small benchmarks run between two and four times faster, with a few specific cases showing larger improvements. Benchmarks are not applications, of course, and results will vary with the code. Still, this is code generated from the same Delphi source you are currently using for Linux applications (and in most cases also the code you can use for Windows targets). 

Memory Management and the Linux Baseline

The R&D team is also making rpmalloc available as an optional memory manager for Linux Intel 64-bit. It performs particularly well when many threads allocate memory at the same time. While its performance gains are significant, it isn’t intended to be the answer for every application as it generally uses more memory and doesn’t offer the same leak-reporting facilities as Delphi’s traditional memory managers.

The updated toolchain uses glibc 2.31 as its runtime baseline. Applications produced with it are therefore not expected to run on older Linux distributions (for example Ubuntu versions older than 20.04, released in 2020).

A New Delphi Linux

Our plan is for the new Linux compiler to fully replace the existing one. There is still work and testing underway, but I’m personally very happy with the reworked Linux platform support in Delphi, and beta testers have given us positive feedback about it. By the way, notice that the Delphi Linux compiler will remain available only in the Enterprise and Architect editions of Delphi and RAD Studio.

There is more to come in 13.2. I plan to cover some of the shared LLVM-20 compiler improvements in another blog post. Stay tuned.

Feature Preview: This blog post is based on a pre-release version of the RAD Studio software and it has been written with specific permission by Embarcadero. No feature is committed until the product GA release.

Kai for RAD Studio is Now Available! Special Live Webinar: Introducing Kai - A New Chapter for RAD Studio RAD Studio 13.1 Florence Now Available

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.

Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

About author

Marco is one of the RAD Studio Product Managers, focused on Delphi. He's the best selling author of over 20 books on Delphi.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES