Deferring Delphi Managed Records Support

by Nov 21, 2018

As you probably remember, I previously posted a 10.3 pre-release blog post on managed records in the Delphi language.

We had a great beta program for RAD Studio 10.3 and received a lot of very valuable feedback from partners and customers. Based on the feedback we received in the beta cycle, we decided to disable the managed records feature in the Delphi language for the 10.3 release. This was done to ensure we don’t break existing customers’ code and third party vendors’ code that make an advanced use of records.

Managed records have an effect on records parameters passing (to avoid additional useless copies of the data) and the ramifications of these changes risked affecting existing code. They also affect the use of RTTI for records. In light of compatibility with existing code and to further refine and improve the design of the feature, we felt it was better not to release it, and have more interactions with beta testers and partners with a longer development cycle.

Adding support for managed records will be on our roadmap for 10.4, along with additional language features already planned and under development.

Even without managed records, we have a number of great Delphi language enhancements in 10.3, including support for inline variable and constant declarations, variable block scope visibility and lifetime, variable type inference along with compiler quality work (also positively impacting Code Completion). We are sure you’ll like what is coming in 10.3 for Delphi developers.