This release of Edwin requires microcode 11.107 or later.
Implement new multi-threading system or Edwin. Inferior REPL buffers
now evaluate in parallel with the editor.
One widespread effect of this change is that calls to the procedures
CALL-WITH-CURRENT-CONTINUATION and DYNAMIC-WIND have been replaced by
CALL-WITH-PROTECTED-CONTINUATION and UNWIND-PROTECT, respectively.
This is needed because the dynamic state space cannot be used for
doing unwind protects -- it is constantly being changed as threads are
switched. If someday the multi-thread code is integrated with the
runtime system, this will be fixed at a lower level, and these new
procedures can become aliases for the old.
Other changes:
* A subtle bug in the command reader was causing undo boundaries to be
inserted too often while text was being entered. This has been
fixed, and now undo boundaries are generated every 20 characters or
so.
* The undo mechanism has been generalized to allow undo tracking to be
happening in parallel in several buffers at once. Now undo tracking
only interacts with the undo command when they are in the same
buffer. Additional undo boundaries have been added at buffer-switch
points.
* RESET-EDITOR now restores the default bindings of any local
variables that are bound when it is called. Previously this was not
done, resulting in the default bindings being lost after a reset.
* Tuning of the subprocess output code should be noticeable.
33 files changed: