1 02/17/84  lisp_compiler, lcp
  2 
  3 Syntax:  lcp {pathnames} {-control_args}
  4 
  5 
  6 Function: converts a loadable ASCII segment containing lisp forms into
  7 a standard Multics object segment that has the same effect when
  8 loaded.  Such segments are loaded much more efficiently than their
  9 ASCII counterparts, and further performance improvements are obtained
 10 by compiling function definitions to eliminate interpretive overhead.
 11 
 12 
 13 Arguments:
 14 pathnames
 15    are pathnames of lisp source segments.  The ".lisp" suffix is
 16    assumed if not provided.  Output object segments are created in the
 17    working edirectory named as the source file name, with the ".lisp"
 18    suffix removed.
 19 
 20 
 21 Control arguments:
 22 -pathname PATH, -pn PATH
 23    takes PATH as the exact pathname of the source file.  No ".lisp" is
 24    appended, and the object segment name is the first component of the
 25    entryname of PATH.
 26 -list, -ls
 27    creates an annotated listing of the source and object programs as
 28    "name.list" in the working directory.
 29 -long, -lg
 30    when used with -list, generates a pseudoassembler listing of the
 31    object segment at the end of the listing file.
 32 -check, -ck
 33    checks only for errors.  No object segment is produced.
 34 
 35 
 36 -nowarn, -nw
 37    suppresses typing of warning messages.  Error messages of greater
 38    severity are still typed.
 39 -times, -tm
 40    as each function is compiled, its name and the time taken to compile
 41    it are printed.
 42 -total_time, -tt
 43    prints metering information at the end of the compilation.
 44 -pedigree, -pdg
 45    prints bootstrap generation history of the compiler.  All other
 46    control arguments are then ignored.
 47 -hold, -hd
 48    causes the compiler to remain in lisp when it finishes compiling,
 49    rather than returning to the caller of lisp_compiler.
 50 
 51 
 52 -debug, -db
 53    sets up all the compiler's error handlers to be breakpoints, turns
 54    on all error checking, and pauses after pass one and pass two for
 55    each function.
 56 -no_compile, -ncp
 57    does not compile function definitions contained in the file.  The
 58    compiler still produces an object segment that has had some basic
 59    syntax checking done and that is more efficient to load, but
 60    functions contained therein are in interpretable rather than
 61    compiled form.
 62 -macros, -mc
 63    retains macro definitions at run time.
 64 
 65 
 66 -all_special
 67    declares all variables special, usually for debugging.  The default
 68    is to make most variables local.  The behavior of local variables is
 69    slightly different from the behavior of variables in the
 70    interpreter.
 71 -genprefix PREFIX, -gp PREFIX
 72    sets PREFIX to be the prefix used by the gensym function within the
 73    compiler's environment.  This may affect the results of macro
 74    expansion.
 75 -eval FORM
 76    evaluates FORM in the compiler's environment before starting
 77    compilation.
 78 
 79 
 80 Notes: The lisp compiler is a lisp program, and operates within the
 81 lisp interpretive subsystem.  The handling of QUIT's during
 82 compilation is similar to that of the lisp command.  Hitting QUIT
 83 causes "CTRL/" to be printed.  The following responses (followed by a
 84 newline) are of interest:
 85 
 86           z         to QUIT
 87           0         print out name of function currently being compiled
 88 
 89 
 90 The Multics LISP implementation is described in the MACLISP Reference
 91 Manual.  Chapters 1-3 of the Revision 1 manual can be obtained from
 92 
 93    MIT Laboratory for Computer Science
 94      Publications, Room NE43-112
 95    545 Technology Square
 96    Cambridge, MA  02139
 97 
 98 The current price of the manual is $4.00, plus postage and handling.
 99 
100 
101 This manual describes most of the functions and features available (it
102 was never completed) with the exception of I/O and compilation.  These
103 facilities were described in the now out-of-print Revision 0 (1974) of
104 the manual.  All differences of the current implementation from this
105 manual and improvements made to this implementation are described in
106 the online documentation, listed below.  This includes a number of
107 very important facilities.
108 
109 
110 Related info files--
111 lisp.info
112    describes the use of the lisp interpreter
113 lisp.changes.info
114    lists modifications to the lisp system that have been made.
115 lisp.manual_update.info
116   lists descriptions of major features in this implementation not in
117   the Revision 0 MACLISP manual.