|
Automatic change managementNow here comes the nice part: the Self environment incrementally maintains a mapping from modules to slots (the module cache), and a list of changed modules, which can be obtained from the middle-button background menu. When you make a change, the appropriate module will be added to the list, and can be written as a source file by clicking the `w' button in the list of changed modules.The middle-button menu on the changed modules list contains a host of useful entries for understanding what has been changed. N.B. If you use the `naked' programming primitives to change objects (_Define:, _AddSlots:, etc.) then the module cache is invalidated, and the next time it is needed there will be a pause of 10-60 seconds while it is refilled. Hence, you should use the mirror-level primitives (e.g., (reflect: obj) define: (reflect: new)), which maintain the module cache.
|