Last updated at 7:43 am UTC on 29 August 2018
SystemOrganization is global object which is an instance of SystemOrganizer
Note: The Modules system referred to below on this page (and incorporated in 3.3alpha) is no longer part of the mainline Squeak release
> 4. It would be nice to either externalize the current module structure into
> SystemOrganization, or to make an interface so that all queries of the SO are
> answered by the Module structure. (di)
Yesterday I created an SO subclass that entirely simulates categories from module structure and names, and that doesn't allow any manipulation of sys categories anymore. So far it just raises notifications when SO modification and other obsolete messages are sent. It works with the browsers which was the crucial part it seemed, it isn't nice yet, and slightly slowish, but browsers need to be redone more properly later. (hg)
> You may be interested that I am trying to give ModularSystemOrg a pointer to
> the root that is currently acting as the SystemOrganization (ie Squeak, and
> not the real root) so that it can give out local category names. I have the
> rest of it pretty much figured out.
My intention was to really deprecate categories altogether, using them alongside modules in the new scheme really becomes confusing, I think it will be better to stop using them and instead stay within the mindset of the module hierarchy. (So what you are trying to do wrt categories may be a detour. Feed me more questions if my intentions are not clear from the rest of this mail.)
> If you want to go for the more general approach, then I believe we have to
> replace the category/: messages in ClassDescription by a categoryIn:/put: pair
> that take a module as their first parameter. This is because it is not
> meaningful to ask the category out of the context of a module.
I really think categories are made unnecessary by Modules, but I've needed to retain them for now to keep the browsers working. So the category(:) messages would eventually be removed, but today eg. the category: method is a no-op.