LLVM-based Delphi Compilers
Go Up to Delphi Toolchains
The latest branch of Delphi compilers, also known as "next generation", is based on a ground-up implementation of a compiler front end, tied to LLVM as the compiler backend.
LLVM-based Delphi compilers are DCCIOSARM (32-bit iOS), DCCIOSARM64 (64-bit iOS) and DCCAARM (Android).
New Language Features in LLVM-based Delphi Compilers
LLVM-based Delphi compilers introduce some significant new features in the Delphi language.
Following are the major language differences between LLVM-based Delphi compilers and other Delphi compilers:
- Automatic reference counting (ARC) for classes is supported by LLVM-based Delphi compilers.
- Note: All Delphi compilers (based or not on LLVM) support ARC for interfaces and dynamic arrays.
- Strings are 0-based (instead of 1-based) and are likely to become immutable (constant) in LLVM-based Delphi compilers.
- The following string types are NOT supported by LLVM-based Delphi compilers (but they do support UnicodeString, the default string type):
- WideString
- AnsiString and ShortString
- AnsiChar
- PAnsiChar and PWideChar
- OpenString
- Use of pointers is not supported by LLVM-based Delphi compilers.
For more information about writing code for LLVM-based Delphi compilers, see Migrating Delphi Code to Mobile from Desktop.