Wednesday  June 14,1978   FQ+1D.8H.19M.18S.   LISP 1633  -HIC-


Changes that affect ITS NEWIO:
[A] SUSPEND's second arg is now meaningful on ITS
[B] CURSORPOS' returned value is now meaningful
[C] SACONS added to XTRSYMS for graphics hackers
[D] Fixnum has meaning as first arg to VALRET/SUSPEND
[E] (STATUS CLI) and (SSTATUS CLI) added to enable/disable CLI interrupts

Changes that affect all LISPs:
[1] PUSH, POP, and DISPLACE FEXPR's in interpreter
[2] SETPLIST returns its second arg
[3] (STATUS FASLOAD) returns the file-object of the file currently being loaded
[4] One final word on hairy defun
[5] New meaningful value of *PURE: SYMBOL (doesn't cons pure SY2)

Changes of interest to LISP internals hackers:
[!] Internals hackers take note: XPURIFY
------------------------------------------------------------------------------
Changes that affect ITS NEWIO:
[A] SUSPEND's second arg is now meaningful on ITS.  If the second argument to
    SUSPEND is given, it is interpreted as a filename in which to pdump the
    LISP.  An indirect symbol-table pointer is dumped (thus saving disk space)
    and the setting of (SSTATUS FLUSH x) is obeyed.

[B] CURSORPOS' returned value is now meaningful.  If the value is T, then the
    operation was sent to the terminal and had some affect (the appropriate
    ^P code is sent, though ^PC on a printing terminal does not actually
    clear the 'screen'.).  If the value is NIL, then the ^P code was not sent
    and therefore nothing was done.  The current setting of the TTY is looked
    at and a table internal to LISP is used to determine applicability.

[C] The symbol SACONShas been added to XTRSYMS for use by graphics hackers.
    This change, along with the previous change in GETDDTSYM, obviates the
    need for graphics users to load symbols.

[D] A fixnum as the first argument to VALRET/SUSPEND is interpreted as the
    value to put in the right half of a .BREAK 16,.

[E] (STATUS CLI) and (SSTATUS CLI) have been added to enable/disable CLI
    interrupts.  Unlike before, CLI interrupts are defaultly OFF [(SSTATUS
    CLI NIL)].  Therefore, people setting CLI-MESSAGE must do an (SSTATUS
    CLI T) in order to actually recieve the interrupts.


Changes that affect all LISPs:
[1] PUSH, POP, and DISPLACE in interpreter:
    FSUBR: (PUSH X L)     ==>  (SETQ L (CONS X L))
    FSUBR: (POP L)        ==>  (PROG2 () (CAR L) (SETQ L (CDR L)))
    FSUBR: (POP L X)	   ==>  (PROG2 () (SETQ X (CAR L)) (SETQ L (CDR L)))
    SUBR:  (DISPLACE X Y) ==>  (PROGN (RPLACA X (CAR Y)) (RPLACD X (CDR Y)) X)

[2] SETPLIST returns its second argument.

[3] (STATUS FASLOAD) returns the file-object of the file currently being
    loaded.

[4] The one final word on hairy defun is that the first atom in a DEFUN is
    ALWAYS interpreted as the function name.  Therefore:
	(DEFUN MACRO FEXPR ...)
    defines a FEXPR called MACRO, and not vice-versa.

[5] New meaningful value of *PURE: SYMBOL.  If *PURE contains SYMBOL then
    everything EXCEPT symbols will be pure-consed.  THis was added for
    use in a new Macsyma loader, and may not be of general use.


Changes of interest to LISP internals hackers:
[!] Internals hackers take note: XPURIFY has been added as an alternaate entry
    to the PURIFY routine.  If you XPURIFY$G, then the LISP will expect itself
    to be :PDUMP'ed to LISP;PURQIX nnnn instead of SYS;PURQIO nnnn.  This is
    usefull for creating experimental LISP versions.