Changes to error system:
authorChris Hanson <org/chris-hanson/cph>
Fri, 15 Feb 1991 18:08:01 +0000 (18:08 +0000)
committerChris Hanson <org/chris-hanson/cph>
Fri, 15 Feb 1991 18:08:01 +0000 (18:08 +0000)
commit38d0852055efc5d350157542c7d54d5997fa61fb
tree7a4683b399d44748694cc746625ed4fa4441c2f8
parent545b111118a45ad14e958256029632312a0e3d9d
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:
v7/src/runtime/advice.scm
v7/src/runtime/arith.scm
v7/src/runtime/contin.scm
v7/src/runtime/dbgcmd.scm
v7/src/runtime/debug.scm
v7/src/runtime/dragon4.scm
v7/src/runtime/emacs.scm
v7/src/runtime/error.scm
v7/src/runtime/gc.scm
v7/src/runtime/global.scm
v7/src/runtime/hashtb.scm
v7/src/runtime/infstr.scm
v7/src/runtime/infutl.scm
v7/src/runtime/input.scm
v7/src/runtime/intrpt.scm
v7/src/runtime/io.scm
v7/src/runtime/lambda.scm
v7/src/runtime/load.scm
v7/src/runtime/make.scm
v7/src/runtime/numpar.scm
v7/src/runtime/pathnm.scm
v7/src/runtime/process.scm
v7/src/runtime/record.scm
v7/src/runtime/rep.scm
v7/src/runtime/runtime.pkg
v7/src/runtime/scode.scm
v7/src/runtime/scomb.scm
v7/src/runtime/syntax.scm
v7/src/runtime/uerror.scm
v7/src/runtime/unsyn.scm
v7/src/runtime/unxprm.scm
v7/src/runtime/version.scm
v7/src/runtime/where.scm
v7/src/runtime/x11graph.scm
v7/src/runtime/xeval.scm
v8/src/runtime/global.scm
v8/src/runtime/infstr.scm
v8/src/runtime/infutl.scm
v8/src/runtime/load.scm
v8/src/runtime/make.scm
v8/src/runtime/runtime.pkg