perm filename THIS.NTE[NEW,LSP] blob sn#406284 filedate 1978-12-28 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002							Laboratory for Computer Science
C00014 ENDMK
CāŠ—;
						Laboratory for Computer Science
						545 Technology Square, Rm 834
						December 15, 1978


Greetings to MACLISP lovers in the
  TOPS-10/TOPS-20 world:


A lot of work on the TOPS/SAIL versions has been done this past year,
  especially by Howard I. Cannon (who hacked a TOPS-10 during his high school
  days) and by Richard P. Gabriel (who is hacking a thesis at the Stanford
  AI Lab). Gabriel has promised to write an introduction to NEWIO for the
  TOPS-xx neophyte, but that is still forthcoming.  We here at this side
  have been promising to write a complete maclisp manual, and that too . . .

The next file on this tape will be a listing, in a tape-dump command format, 
  of all the files on the tape.  Some of the support software may be new to
  you, but most of it is optional and included so that you may try it out.
  It would be a good idea to look at the first few pages or so of any source
  file with which you are unfamiliar, for we often place a lot of commentary
  there.  

Best wishes for happy hacking with maclisp

                                            -- Jonl --


Here are just a few caveats:

TOPS-10 and TOPS-20 worlds:
      NEWIO file system usage may be new for some of you.  Apologies that 
  there is not a more documentation on it yet, since I know that most of 
  you don't even have the blue Moonual circa 1974.  The LISP.NEWS file, 
  entry dated "April 18, 1975"  has a lot of commentary on the newio scheme 
  as it was being put into the PDP10 versions of maclisp.  
     A reminder: source file have the extensions MID for midas; LSP and INI
  for lisp; NOTE, DOC, NEWS, and etc. for text commentary; REL for output
  of midas (and loadable by TOPS-10/TOPS-20 linkers); FASL for output of
  the lisp compiler, and loadable by the lisp functions LOAD or FASLOAD.
     Many FASL files must be in a place that the lisp system can find them
  during AUTOLOADing; generally we have assumed that these will be accessible
  as SYS:foo.FAS  on TOPS-10 systems, and  DSK:<MACLISP>foo.FASL on the
  TOPS-20 systems.  Perhaps by appropriate setting of search rules, you will
  be able to adapt to these assumptions without having to reassemble lisp.

TOPS-10 world:
  1) there are no SHR or LOW files on the tape, so you will have to
     LINK up the LISP.REL yourself.  Also, you will have to run the
     lisp with the "lisp init" file  CCLOAD.INI in order to make up
     a compiler.  Normally, all your files should be on one directory,
     
TOPS-20 world:
  1) There is no "LISP INIT" file facility yet.  If you want to make
     a compiler, just load up a LISP with default allocations (since
     only BPS is important in a paged-implemntation) and LOAD in the
     file CCLOAD.INI   It will then as you one question, to which "?"
     is a valid reply;  common case is to type a <space> at it.
  2) The answer you type to ALLOC?s question is not recognized
     if it tries to specify an INIT file; furthermore, there is
     a failure to activate on alphabetic chars, so Y or N have to
     be followed by some activator (which unfortunately will be read
     by the subsequent actions - try Y<rubout> if you want to allocate).
  3) file names are in general three components, the third being th
     generation number; but standard old file names will work in 
     general.  Try to stick to NEWIO format, e.g.
	(UREAD (PS MUMBLE) MY FILE) and (UREAD (PS MUMBLE) MY FILE /3)
     rather than (UREAD MY FILE . . .).   Generation numbers may be either
     fixnums or symbols consisting only of digits;  generally, file names 
     with omitted generation numbers will supply the null symbol, ||,
     which specifies the highest generation number for that filename.ext.
  4) There may be a bug in PROBEF and UPROBE when applied to any
     non-connected directory, and some bugs in RENAMEF:
	1) RENAMEF apparently fails to do the corresponding CNAMEF as is
	   done on the ITS version
	2) RENAMEF fails to accept namelist, but barfs about illegal 
	   source/destination designator
	3) If one does a RENAMEF while the file is open, then subsequent use of
	   TRUENAME on the open file-object dies in illegal op code execution.
     To some degree, these bugs will cause the compiler to die if you compile
     a file for which there is already a FASL output.
  5) <control-Q> doesn't work!! This conflicts the X-on, X-off protocol for
     terminals.  [so if you like to do UREAD followed by <control>-Q, then
     either learn to use LOAD instead, or do UREAD followed by (SETQ ā†‘Q 'T) - 
     yes, that is <uparrow><Q>].  Furthermore, (SSTATUS TTYINT ...) doesn't
     really make any other characters as interrupts except the existing ones,
     namely  <control>-B <control>-D <control>-G <control>-W <control>-V
     Currently, <control>-R does the same thing as in ITS maclisp, but
     probably this will be changed to mean "retype the current input".




Some things that may be documented in the LISP.NEWS shortly, but are
not there as of today:

1) EVAL-WHEN  - -  a new fsubr
	(EVAL-WHEN (<id1> <id2> ... <idn>) <foo1> <foo2> . . . <foon>)
   will cause the evaluation of the various <fooi> only if the environment
   matches one of the indicators in the first list; these indicatiros <idi>
   may be among EVAL, COMPILE, or LOAD.
   (EVAL-WHEN (COMPILE)  (SAY THIS))  is entirely equivalent to
	(DECLARE (SAY THIS))
   (EVAL-WHEN (EVAL LOAD) (RUN THAT)) is generally equivalent to
	(RUN THAT)
   (EVAL-WHEN (LOAD) (PRINT '|Loading Compiled version of Foo|))
	will cause the print request to appear only in the compiled FASL
	file, and be run at load time. (or LAP file if you don't assemble).
   (EVAL-WHEN (EVAL COMPILE LOAD) (SETSYNTAX '/% 'MACRO 'FUNNY-FUN))
	causes evaluation in all environments, which is often what one wants
	with macro characters.

2) Under the ITS operating system, a JCL line with only a <space> means don't 
   use any INIT file, even if the connected directory has one.

3) COMPLR
   new switch  - H for variable  EXPAND-OUT-MACROS
	Toplevel forms which are not functions to be compiled (or other
	wise specially treated by MAKLAP) could be fully macro-expanded
	before being output to the FASL file.  Normal setting is non-null
	meaning to do this expansion.
   new variable -  MAKLAP-DEFAULTF-STYLE 
	The command line read maklap usually consists of two file specs
	separater by a left-arrow (underscore in new ascii); the filling
	in of the unspecified components of a file spec can be done either
	from the accumulated left-to-right mergeing, or begin separately
	for input and output file specs.  MIDAS style is the former, and
	the value of this new variable either is MIDAS or ().
   when making up, can set feature  NO-EXTRA-OBARRAY
	(SSTATUS FEATURE NO-EXTRA-OBARRAY) will permit CCLOAD to make
	up a compiler without the COBARRAY/CREADTABLE which separates
	user environment from compiler environment.  If saving about 1.5K
	or so words means that much to you, and taking a chance means 
	very little . . .