Compiler patch for runtime reflection
Alex Rønne Petersen
xtzgzorex at gmail.com
Fri Oct 21 14:15:02 PDT 2011
On 21-10-2011 21:07, Vladimir Panteleev wrote:
> Hi,
>
> Igor Stepanov has created a patch for DMD and Druntime which adds RTTI
> information for class and struct members.
>
> Example:
>
> import std.stdio;
>
> class Foo
> {
> static void PrintHello()
> {
> writeln("Hello");
> }
> }
> void main()
> {
> auto info = cast(OffsetTypeInfo_StaticMethod)Foo.classinfo.m_offTi[0];
> assert(info.name == "PrintHello");
> auto print = cast(void function())info.pointer;
> print(); //prints "Hello"
> }
Absolutely awesome!
>
> While the inclusion of such functionality into the language remains a
> disputed matter, would anyone be interested in an unofficial patch for
> this?
Yes, very much. I would recommend setting up a fork on GitHub, and then
adding it to a branch, e.g. 'reflection', if it's not going to be
included in mainline DMD.
>
> Walter: would it be okay if the compiler changes were published as a
> GitHub fork, or should we stick to patches?
>
- Alex
More information about the Digitalmars-d
mailing list