In 2.0 when you choose <Make unclosable> from the SystemWindow menu (downward-pointing triangle in the top right of each window), the next invocation of that menu would instead have the opposite function <Make closable>.
In 3.0 it does not change to <Make closable> so you cannot revert the feature. I have isolated this to PragmaMenuBuilder's ivar 'itemList' being cached, and describe a a fix at https://pharo.fogbugz.com/default.asp?11835
However I am not comfortable with my awareness of the architectural implications and so I seek a wider discussion of this. Two queries leap to mind:
1. What is the philosophy behind caching the pragma-menus? To what degree did menu performance suffer in practice?
Since pragmas are spread all over the system, each time the PragmaBuilder collects the pragmas, it iterates over all the methods.
This can be a pain :)
2. What consideration has been given to dynamic elements in other pragma-menus?
I think there is a way to provide the name as a dynamically evaluable object (a block or a message send).
I am not 100% sure of that.
3. Suggestions for alternative resolution paths to follow?
A less drastic approach would be to flush the cache when you click on <Make closable>/<Make unclosable>
Ben
cheers -ben