Weak vs. strong modules
Last updated at 2:36 pm UTC on 16 January 2006
>Can you clarify how you envision the difference between "weak" and "strong"
>here? Perhaps because I have my code in my mind, it's hard for me to see
>just what either you or Les mean by this; where you draw the line. (hg)
I think of weak modules as a Squeak with your fileIns, and with maybe a new global called, eg, SystemStructure or Modules, or maybe this is a Classvar of Module. You could ask any class what module it is in, and ask any module, well, all the stuff you would expect. BUT the code still all looks the same, and you can compile unqualified foreign refs as now. So we do all the work of reorganizeEverything to build a system structure, and we can upgrade the tools, and take lots of statistics, and improve on the factoring of our current SysOrganization, but all the code still looks the same and works the same.
I think of strong modules as the same world after running something like reorganizeEverything, and after which, if you write an unqualified foreign reference, it either ask you to qualify it or check that you have access to such a name in your module declaration.
Somewhere in here we probably want to do away with SystemOrganization or at least derive it mechanically from the more informative SystemModules.
In some sense, no one should need to know whether we have weak or strong modules until someone does something that is not permitted. Maybe there could be a switch that either uses the proper prereqs for a module (strong), or every module in the system (weak). of course this latter doesn't make sense if there are conflicts, but there are no such conflicts in the image right now, by definition. (Module Files discussion)