digitalmars.D.announce - Run Time Reflection
- Daniel Ribeiro Maciel (9/9) Apr 10 2010 Heya ppl!
- davidl (43/57) Apr 13 2010 e =
- bearophile (5/8) Apr 14 2010 Do you mean with an @attribute?
Heya ppl! I've written a simple Compile Time (syntatic sugar mostly) and Run Time reflection library for methods only. It's not complete yet. I could not deal with certain issues in Run Time, such as ref/out function arguments, variadic function arguments. But it's mostly done. The problems are commented in the code. Naming conventions are bad and it is not properly modularized yet. I would welcome any input and I offer cooperation if you guys want to make a real time reflection library on phobos, or if anyone wants to make a more complete library, better structured library. In the meantime, I'll keep working on this. Best regards, Daniel
Apr 10 2010
=D4=DA Sun, 11 Apr 2010 05:03:53 +0800=A3=ACDaniel Ribeiro Maciel = <danielmaciel gmail.com> =D0=B4=B5=C0:Heya ppl! I've written a simple Compile Time (syntatic sugar mostly) and Run Tim=e =reflection library for methods only. It's not complete yet. I could not deal with certain issues in Run Tim=e, =such as ref/out function arguments, variadic function arguments. But =it's mostly done. The problems are commented in the code. Naming conventions are bad and it is not properly modularized yet. I would welcome any input and I offer cooperation if you guys want to ==make a real time reflection library on phobos, or if anyone wants to =make a more complete library, better structured library. In the meantime, I'll keep working on this. Best regards, DanielGreat, i think if the metaobject disguise in a way acting exactly as the= = original object it would be great. For example: auto dmo =3D new reflect.MetaObject!Foo( foo ); Foo p =3D dmo; I think this runtime reflection could be integrated into object.d not every object necessarily become runtime reflexible. Just the base = object class provides a flag indicating if this object is actually a = runtime reflexible object. No other interface function would be added to= = object which would bloat every object in D. The flag maybe extended for = = other use as well. I know even adding a flag people would argue. Next is providing a template function which is able to cast an object = which casted from MetaObject to the real object itself. I think it will = be = better if the MetaObject!Foo actually derives Foo. Thus the cast could b= e = made easily. Then there's no barrier of passing a runtime reflexible = object to a library as it's a compiletime determined object, and deal wi= th = it as a runtime reflexible object again later. We may also want to treat every runtime reflexible object as one categor= y = object which wouldn't work if the MetaObject derives different classes. = = One possible solution is to make the MetaObject derives from the target = = object type and also implements the general runtime reflexible interface= . = We can manipulate all runtime reflexible object through a standardized = runtime reflexible interface. We can also cast those objects back toward= s = compiletime-determined object easily. David L. -- = =CA=B9=D3=C3 Opera =B8=EF=C3=FC=D0=D4=B5=C4=B5=E7=D7=D3=D3=CA=BC=FE=BF=CD= =BB=A7=B3=CC=D0=F2: http://www.opera.com/mail/
Apr 13 2010
davidl:Just the base object class provides a flag indicating if this object is actually a runtime reflexible object.Do you mean with an attribute? If your proposal has some substance, you can write a small DEP or bugzilla entry. Bye, bearophile
Apr 14 2010