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.