Hi Nick,
Not sure if I understand you question, let me know if I answer
something you didn't want to know :-)
I'm not sure I understand the cache-invalidation
issue. MAPragmaBuilder is
derived from MADescriptionBuilder and uses MADescriptionBuilder cache
instance variable which is invalidated in the same way as before, so
currently the two implementations are equivalent. Was something different
envisaged?
Some Magritte users are unnecessarily rigid, because the descriptions
are only created once and in a meaningless context (on the class
side). This caused some ugly hacks like #magritteDynamicObject or
overrides of #description that should no longer be necessary.
Of course that means we need to drop the global caching, because
Magritte cannot easily decide anymore if a description changes or not.
I don't think this will be a big performance problem, because
descriptions are essentially just data holders for a bunch of
literals. What we could want to cache instead are the selectors that
build the descriptions for a particular class, so that we do not
repeatedly need to walk over the methods of the class hierarchies. And
the flushing would happen as before.
Lukas
--
Lukas Renggli
www.lukas-renggli.ch