Garbage collections

Normally garbage collections (the rearranging of the contents of the buffers to minimize the use of memory) are executed when stedi waits for input. This way the user may never notice these garbage collections. There are two exceptions to this rule. The first is rather passive: When a file has all its tabs expanded into blank spaces it may be necessary for stedi to execute a garbage collection during this expansion. In that case the message `No more memory' appears but stedi doesn't give the control back to the user. Instead it executes a full garbage collection. When this is done the message disappears and stedi continues with the expansion of the tabs.

The second exception is more active. When macro's or stream scripts are run there is no waiting between the commands. This gives stedi no chance to rearrange the memory while waiting for input from the user. If the macro (or stream script) involves instructions that use the memory in a rather fragmenting way eventually the message `No more memory' may appear and stedi would stop the execution of the macro. To avoid this the user can force a full garbage collection by the command `garbage' in the command line (or as one of the statements in his macro or stream script.