* Advice package now signals error if the user attempts to advise
authorChris Hanson <org/chris-hanson/cph>
Tue, 11 Sep 1990 20:46:01 +0000 (20:46 +0000)
committerChris Hanson <org/chris-hanson/cph>
Tue, 11 Sep 1990 20:46:01 +0000 (20:46 +0000)
commitbe47847dcd7b73f23a0b07a4f5b00a3751e8b76d
treebbe451861a39bc8a74966ad6200930f7259c2079
parent31f88a0aeaba6c557c57202a38c298ed3f3fb35d
* Advice package now signals error if the user attempts to advise
  anything but an compound procedure.

* Continuation parser keeps track of the type of the previous stack
  frame.  This information is used as context in some situations.
  This mechanism replaces special-purpose flag `allow-next-extended?'.

* Continuation parser slightly reorganized and commented to make it
  easier to understand.

* Debugger modified to provide more flexible control over use of
  history information, to provide more detailed information about
  stack frames, and to make it more self-explanatory.  Also knows
  about "simulated" compiled-code environment frames, and ignores
  them.

* The environment inspector has been modified to make it more
  self-explanatory.  The N command has been replaced by an O command
  like that of the debugger.

* `pretty-print' now has additional optional argument that specifies
  an indentation for the printed expression.  If given, the output is
  indented by that many columns.

* The emacs interface now has a hook for evaluating arbitrary
  emacs-lisp expressions.  This is used to provide a better debugger
  interface.

  **** This requires "xscheme.el" version 1.26 or later. ****

* `stack-frame/debugging-info' now returns a third value,
  "subexpression", which indicates the subexpression of the expression
  that the next later subproblem is evaluating.

* The lambda abstraction now forces the use of internal lambda
  expressions for auxiliary variables.  This is required for correct
  semantics of `letrec'.

* `make-lambda' now does error-checking on its parameter-list
  arguments, which disallows duplicates in the parameter lists.

* The `procedure' abstraction has been split off into a separate file.
  `procedure-arity' has been modified to handle entities correctly.
  A new datatype, `apply-hook', is like entities except that it
  doesn't pass itself to the handler.  `compound-procedure' operations
  have been removed from the global environment; use generic
  operations instead.

* The unsyntaxer has a new entry point, `unsyntax-with-substitutions',
  which allows subexpressions of an expression to be replaced in the
  output with arbitrary objects.

* Removed `dynamic-state-let' from `system-global-syntax-table'.

* The syntaxer now disallows the use of syntactic keywords as
  variables.  This applies to references, bindings, and definitions.

* The syntaxer signals an error if the name of a named `let' is also
  one of its bound variables.

* The syntaxer signals an error if there are duplicates in the
  parameters of a lambda expression.

* Compiled-code environments that do not have interpreter-compatible
  ancestors now simulate such ancestors for debugging convenience.
  The simulated ancestor is the closing environment of the compiled
  code, if known, otherwise it is the system global environment.
21 files changed:
v7/src/runtime/advice.scm
v7/src/runtime/conpar.scm
v7/src/runtime/dbgcmd.scm
v7/src/runtime/dbgutl.scm
v7/src/runtime/debug.scm
v7/src/runtime/emacs.scm
v7/src/runtime/framex.scm
v7/src/runtime/lambda.scm
v7/src/runtime/pp.scm
v7/src/runtime/runtime.pkg
v7/src/runtime/syntax.scm
v7/src/runtime/udata.scm
v7/src/runtime/uenvir.scm
v7/src/runtime/unpars.scm
v7/src/runtime/unsyn.scm
v7/src/runtime/where.scm
v8/src/runtime/conpar.scm
v8/src/runtime/dbgutl.scm
v8/src/runtime/framex.scm
v8/src/runtime/runtime.pkg
v8/src/runtime/uenvir.scm