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