Changes to error system:
* Complete redesign of the error system. Conditions now have named
fields like records, and an interface similar to that of the record
abstraction. Condition types have single inheritance instead of
multiple inheritance; the latter can be implemented with some small
effort should someone need it. Significantly richer taxonomy of
condition types. New "restart" mechanism like that of Common Lisp.
Hooks for overriding default handlers for errors and warnings.
* The special forms `error' and `bkpt' have been changed to be
procedures.
* `error:datum-out-of-range' no longer accepts a second argument; use
new procedure `error:bad-range-argument' instead.
* `error:illegal-datum' has been eliminated; use either
`error:wrong-type-datum' or `error:wrong-type-argument' instead.
Changes to REPL:
* ";Value" message produced by REPL now prints out a hash number if
the value is a pointer object.
* New procedure `ve' starts a sub-REPL in a given environment.
* New procedure `restart' selects a restart option and invokes it. If
invoked with no arguments, it presents a list of options and prompts
for the user to select one by number; otherwise it is called with
one argument, an option number.
* The variable `cmdl-interrupt/abort-top-level/reset?' has been
eliminated.
* Eliminated "proceed points" and "proceed continuations". These are
replaced by new "restarts" mechanism.
* `cmdl-message/active' now passes the current cmdl object as an
argument to the actor procedure.
* The procedures `abort-to-nearest-driver',
`abort-to-previous-driver', and `abort-to-top-level-driver' have
been eliminated. The procedures `abort->nearest',
`abort->previous', and `abort->top-level' have been generalized to
accept a string as an argument; use these in place of the eliminated
procedures.
Other changes:
* Debugger has a new command, K, that chooses a restart option and
invokes it.
* New predicates `interned-symbol?' and `uninterned-symbol?'.
41 files changed: