Changes in appearance:
authorChris Hanson <org/chris-hanson/cph>
Tue, 26 Nov 1991 07:07:31 +0000 (07:07 +0000)
committerChris Hanson <org/chris-hanson/cph>
Tue, 26 Nov 1991 07:07:31 +0000 (07:07 +0000)
commit16b1d68e97f03832f1d86a3548b146b2d917ba71
tree1b1248ebc35d31ecde7752c8ef75d535d433d752
parent8c2bf3a883697870e97e1cc0cd1deff45f398895
Changes in appearance:

* Loading, dumping, and warning messages now preceded by ";".

* New prompts for debugger, where, error, and breakpoint.

* REP loops started by the debugger and where no longer have
  distinctive prompts.  Now they use the standard prompt.

* PROMPT-FOR-COMMAND-CHAR now echos the character it is prompting for.

Changes to port implementation:

* Standard output procedures like WRITE no longer flush the output
  port after they write to it.  Instead, they invoke the new operation
  DISCRETIONARY-FLUSH-OUTPUT (if it exists).  At present, only the
  console defines this new operation to do anything -- thus the
  console behaves the same as before, unlike other ports.  The new
  procedure FLUSH-OUTPUT is used to explicitly flush output ports.

* New port operations control the blocking and terminal modes of
  ports:

    PORT/INPUT-BLOCKING-MODE
    PORT/SET-INPUT-BLOCKING-MODE
    PORT/WITH-INPUT-BLOCKING-MODE

    PORT/OUTPUT-BLOCKING-MODE
    PORT/SET-OUTPUT-BLOCKING-MODE
    PORT/WITH-OUTPUT-BLOCKING-MODE

    PORT/INPUT-TERMINAL-MODE
    PORT/SET-INPUT-TERMINAL-MODE
    PORT/WITH-INPUT-TERMINAL-MODE

    PORT/OUTPUT-TERMINAL-MODE
    PORT/SET-OUTPUT-TERMINAL-MODE
    PORT/WITH-OUTPUT-TERMINAL-MODE

* New input-port operation READ allows the port to define how a READ
  is performed.  This permits the implementation of ports that read
  s-expressions directly.

Changes to CMDL/REPL implementation:

* CMDL-MESSAGE/ACTIVE now passes a port to its argument, rather than a
  cmdl object.

* Incompatible changes to arguments and return values of PUSH-CMDL,
  PUSH-REPL, MAKE-CMDL.  The procedures no longer start the cmdl that
  they create, but just return it.  It must be explicitly started by
  calling one of the new procedures CMDL/START or REPL/START.

* cmdl objects now have just one bidirectional port instead of two
  unidirectional ports.

* The prompting procedures PROMPT-FOR-EXPRESSION,
  PROMPT-FOR-COMMAND-CHAR, and PROMPT-FOR-CONFIRMATION no longer take
  a cmdl object as their optional second argument -- instead they take
  a port.  The new procedure PROMPT-FOR-COMMAND-EXPRESSION is similar.

* cmdl objects now support custom operations of various kinds, to
  allow the customization of behavior.  The previous spawn-child
  special operation has been eliminated.

Changes to DEBUG/WHERE implementation:

* Debugger command interface now passes a port to each command
  procedure, in addition to the state object.  The current input and
  output ports are not bound to anything in particular while the
  debugger is running.

* Arguments to debugger command procedures are now optional, so that
  using X mode in the debugger is more convenient.

Changes to various hooks:

* Most of the hooks that were used by the Emacs interface have been
  eliminated.  That functionality is now provided by custom port
  operations.  Hooks that were affected:

debugger output
prompting
run and gc lights
repl presentation

* Definition of keyboard interrupt hooks changed: if the hooks are #F,
  they are ignored, otherwise they are invoked.  If the interrupt
  handler hooks return, that means they declined to handle the
  interrupt, and the standard action is taken.

* HOOK/BEFORE-RESTART has been replaced by HOOK/INVOKE-RESTART.  The
  new hook is used by INVOKE-RESTART as well as
  INVOKE-RESTART-INTERACTIVELY, and it defaults to APPLY.

* PARSE-OBJECT/INTERNAL and PARSE-OBJECTs/INTERNAL eliminated.
30 files changed:
v7/src/runtime/dbgcmd.scm
v7/src/runtime/dbgutl.scm
v7/src/runtime/debug.scm
v7/src/runtime/ed-ffi.scm
v7/src/runtime/emacs.scm
v7/src/runtime/error.scm
v7/src/runtime/fileio.scm
v7/src/runtime/format.scm
v7/src/runtime/gc.scm
v7/src/runtime/gcstat.scm
v7/src/runtime/genio.scm
v7/src/runtime/global.scm
v7/src/runtime/input.scm
v7/src/runtime/intrpt.scm
v7/src/runtime/load.scm
v7/src/runtime/output.scm
v7/src/runtime/parse.scm
v7/src/runtime/port.scm
v7/src/runtime/pp.scm
v7/src/runtime/rep.scm
v7/src/runtime/runtime.pkg
v7/src/runtime/savres.scm
v7/src/runtime/ttyio.scm
v7/src/runtime/version.scm
v7/src/runtime/where.scm
v7/src/runtime/wrkdir.scm
v8/src/runtime/dbgutl.scm
v8/src/runtime/global.scm
v8/src/runtime/load.scm
v8/src/runtime/runtime.pkg