I got an email from Barry Kelly in response to my last post:
I can’t comment on this article as it requires the commenter to be
logged in, and registration is disabled.There are no plans for a more compact RTTI format. I’d love for there to
be, but the backward compatibility concerns are simply too large.
However, as more code relies on higher-level RTTI constructs, the scope
for freedom there increases incrementally. That’s all I was trying to
say.— Barry
*sigh* I thought I’d fixed the comments thing. Anyone’s supposed to be able to post here with just a name and email address. That’s why registration is disabled: no one should need to register! Looks like it got reset somehow during the last WordPress update.
As for the RTTI, I guess I’m not surprised by that. Backwards compatibility is really important to the Delphi team. That’s why monstrosities like nested WITH statements are still with us.
I just hope Barry and the rest of the team finds time to fill in holes for XE2. Specifically, it would be very nice to be able to use RTTI to access array properties. Being able to get at standalone functions (not methods of objects) would be nice too. That might require the addition of some sort of TRttiUnit class, which I definitely wouldn’t mind having either.
But that’s just an implementation detail. What I really want are array properties and standalone methods, and a public interface to the TMethodImplementation class. There’s a lot of potential in that class (introduced in the RTTI unit in Delphi XE) that’s unfortunately not available for public use. When I asked Allen Bauer about it, he said the team wasn’t sure they wanted to have to support it in its current form, but it might be made more available in a future release. I certainly hope so.
What do you think? Are there any other holes in RTTI that need filling in, and what would you do with them if you had them available?