Ary Borenszweig, el 1 de agosto a las 16:29 me escribiste: > http://www.prowiki.org/wiki4d/wiki.cgi?LanguageDevel/DIPs/DIP6
I really think that D should support some kind of annotations. I think it's a good idea to add them in stages. I could add that in the first stage, old-style attributes/whatever (override, deprecated, etc.) should be accepted too (i.e. without the leading @). Then people complaining about backward compatibility can be happy (me included; hey! I'll add them to D1.1 too! ;). New syntax can make use of annotations though (hello properties!). I think annotations in D can reach their peak of utility when AST macros get implemented. I think it would be great being able to "register" annotation handlers to the compiler to do arbitrary transformations to the code. You could even move a big part of the compiler implementation to library code using annotations and AST macros. But this have to come in other stages for sure. I think changing the FE to allow annotation syntax wouldn't be very hard (I'm guessing, I never hacked the DMDFE myself). Maybe someone who played with the FE can make a quick patch as a proof of concepts, even if the implementation ignores the annotations completely for now it can be a good start. I think the "Other thoughts" section should be official part of the proposal if there is any intention to move most of the current attribute keywords to annotations. About the version(X) {} else {}, first, version(!X) could be supported as an ugly hack =P. A more generic approach could be to support annotations returns. Annotations could return void (in which case the else statement is a *semantic* error) or bool (in which case the else statement is supported). The problem with this is that statements should be target for annotations too, so one can do: @deprecated void foo() { @version(Foo) writeln("foo"); } Maybe this one should be delayed for a second stage of annotations =) -- Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/ ---------------------------------------------------------------------------- GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145 104C 949E BFB6 5F5A 8D05) ---------------------------------------------------------------------------- CHINO ATRAPA COTORRAS -- Crónica TV