New PSL Changes (8 November 1982)

---- PSL Changes -------------------------------------------------------------

* The major change in PSL is that CATCH/THROW has been reimplemented to
  conform to the Common Lisp definition (see Section 7.10 of the Common
  Lisp manual).  In particular, CATCH has been changed to a special form
  so that its second argument is evaluated only once, instead of twice.
  THIS IS AN INCOMPATIBLE CHANGE: if you use CATCH, you must change your
  programs.  For example, if you wrote:

    (catch 'foo (list 'frobnicate x y z))

  you should change it to:

    (catch 'foo (frobnicate x y z))

  One aspect of this change is that an "unhandled" throw is now reported
  as an error in the context of the throw, rather than (as before) aborting
  to top-level and restarting the job.

  Also implemented are UNWIND-PROTECT, CATCH-ALL, and UNWIND-ALL, as
  described in the Common Lisp manual, with the exception that the
  catch-function in CATCH-ALL and UNWIND-ALL should expect exactly 2 arguments.

  Note that in Common Lisp, the proper way to catch any throw is to
  use CATCH-ALL, not CATCH with a tag of NIL.

* A related change is that the RESET function is now implemented by
  THROWing 'RESET, which is caught at the top-level.  Thus, UNWIND-PROTECTs
  cannot be circumvented by RESET.

---- NMODE Changes -----------------------------------------------------------

New Features:

* C-X C-B now enters a DIRED-like "Buffer Browser" that allows you to
  select a buffer, delete buffers, etc.
* DIRED and the Buffer Browser can now operate in a split-screen mode, where
  the upper window is used for displaying the buffer/file list and the bottom
  window is used to examine a particular buffer/file.  This mode is enabled
  by setting the variable BROWSER-SPLIT-SCREEN to T.  If this variable is
  NIL, then DIRED and the Buffer Browser will automatically start up in
  one window mode.
* M-X Apropos has been implemented.  It will show you all commands whose
  corresponding function names contain a given string.  Thus, if you
  enter "window", you will see all commands whose names include the string
  "window", such as "ONE-WINDOW-COMMAND".
* M-X Auto Fill Mode has been implemented by Jeff Soreff, along with
  C-X . (Set Fill Prefix) and C-X F (Set Fill Column).  If you want NMODE
  to start up in Auto Fill mode, put the following in your NMODE.INIT file:
       (activate-minor-mode auto-fill-mode)
* NMODE now attempts to display a message whenever PSL is garbage-collecting.
  This feature is not 100% reliable: sometimes a garbage collect will happen
  and no message will be displayed.

Minor Improvements:

* C-N now extends the buffer (like EMACS) if typed without a command argument
  while on the last line of the buffer.
* Lisp break handling has been made more robust.  In particular, NMODE now
  ensures that IN* and OUT* are set to reasonable values.
* The OUTPUT buffer now starts out with the "modified" attribute ("*") off.
* The implementation of command prefix characters (i.e., C-X, M-X, C-], and
  Escape) and command arguments (i.e., C-U, etc.) has changed.  The most
  visible changes are that C-U, etc. echo differently, and that Escape can
  now be followed by bit-prefix characters.  (In other words, NMODE will
  recognize "Escape ^\ E" as Esc-M-E, rather than "Esc-C-\ E"; the 9836
  terminal emulator has been modified to generate such escape sequences
  under some circumstances.)  NMODE customizers may be interested to know
  that all of these previously-magic characters can now be redefined (on a
  per-mode basis, even), just like any other character.
* If you are at or near the end of the buffer, NMODE will put the current
  line closer to the bottom of the screen when it adjusts the window.
* C-X C-F (Find File) and the Dired 'E' command will no longer "find" an
  incorrect version of the specified file, should one happen to already be in
  a buffer.
* The 'C' (continue) command to the PSL break loop now works again.
* The "NMODE" indicator on the current window's mode line no longer
  disappears when the user is entering string input.
* The command C-X 4 F (Find File in Other Window) now sets the buffer's
  file name properly.
