On 12/10/2009 10:47, Don wrote:
Ah, OK. My cursory glance at Nemerle just screamed "hack". But first
impressions can be misleading.
No doubt as a C-family language, they have some useful ideas.
But if Christopher's analysis is correct, the "macro" bit is different
to the "plugin" bit. I think allowing the ASTs to be _modified_ by
plugins is the path to madness, but a read-only ABI is OK (it's hard to
see how compile-time reflection is possible without creating some kind
of API).
modifying the AST is dangerous but how would you do things like making a
class implement an interface without modifying the list of interfaces
the class implements ?
[serialize]
class Foo {...}
the Nemerle macro above transform this into:
class Foo : Serializable { ... }
what would be your design for this?