Runtime reflection idea
Steven Schveighoffer
schveiguy at yahoo.com
Thu May 30 08:12:55 PDT 2013
On Thu, 30 May 2013 10:59:52 -0400, Adam D. Ruppe
<destructionator at gmail.com> wrote:
> The compiler instantiates a template called RTInfo!T for every custom
> type T that is made available through the TypeInfo class (.classinfo,
> typeid()).
>
> The first idea with this was to do precise GC, but it can do more than
> just that. Currently, it is totally unused in druntime. I propose we put
> it to use to allow some runtime reflection.
http://forum.dlang.org/post/op.wcvlmg03eav7ka@localhost.localdomain
> and ModuleInfo even has a list of all classes, and all modules in a
> program, so we could go pretty nuts with runtime stuff here.
I also want ModuleInfo to have an equivalent RTInfo member. Walter agreed
at the conference that it was a good idea and should be done. See bug
report here:
http://d.puremagic.com/issues/show_bug.cgi?id=10023
> What do you all think? It is a pretty minor change to druntime to enable
> this kind of thing, it wouldn't get in the way of anything else -
> druntime can still use RTInfo for its own thing when the time comes
> without a problem - and it seems to me like it could be easily useful
> and convenient for some tasks.
I would like to see the necessary framework for RTInfo to allow expansion
WITHOUT having to modify object.d. I think this can be done, and then it
allows anyone to insert whatever they want for RTInfo based on their own
needs.
This would set D apart from existing runtime information frameworks, like
Java's and C#'s, in that it's expandable, and it's selective (enabling
runtime information might be as simple as adding UDAs).
-Steve
More information about the Digitalmars-d
mailing list