Hi Lukas
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.
That's clear, I'll drop the caching so the descriptions are created
on-demand. However I'm confused as to why the caching couldn't have been
dropped before for the class-side descriptions. I realise removing the
caching before wouldn't have solved all the problems that instance
descriptions have, but it would have removed the need for
#magritteDynamicObject and friends. Though perhaps that is only a marginal
benefit. Am I missing something?
Nick