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.