02/17/84 lisp_compiler, lcp Syntax: lcp {pathnames} {-control_args} Function: converts a loadable ASCII segment containing lisp forms into a standard Multics object segment that has the same effect when loaded. Such segments are loaded much more efficiently than their ASCII counterparts, and further performance improvements are obtained by compiling function definitions to eliminate interpretive overhead. Arguments: pathnames are pathnames of lisp source segments. The ".lisp" suffix is assumed if not provided. Output object segments are created in the working edirectory named as the source file name, with the ".lisp" suffix removed. Control arguments: -pathname PATH, -pn PATH takes PATH as the exact pathname of the source file. No ".lisp" is appended, and the object segment name is the first component of the entryname of PATH. -list, -ls creates an annotated listing of the source and object programs as "name.list" in the working directory. -long, -lg when used with -list, generates a pseudoassembler listing of the object segment at the end of the listing file. -check, -ck checks only for errors. No object segment is produced. -nowarn, -nw suppresses typing of warning messages. Error messages of greater severity are still typed. -times, -tm as each function is compiled, its name and the time taken to compile it are printed. -total_time, -tt prints metering information at the end of the compilation. -pedigree, -pdg prints bootstrap generation history of the compiler. All other control arguments are then ignored. -hold, -hd causes the compiler to remain in lisp when it finishes compiling, rather than returning to the caller of lisp_compiler. -debug, -db sets up all the compiler's error handlers to be breakpoints, turns on all error checking, and pauses after pass one and pass two for each function. -no_compile, -ncp does not compile function definitions contained in the file. The compiler still produces an object segment that has had some basic syntax checking done and that is more efficient to load, but functions contained therein are in interpretable rather than compiled form. -macros, -mc retains macro definitions at run time. -all_special declares all variables special, usually for debugging. The default is to make most variables local. The behavior of local variables is slightly different from the behavior of variables in the interpreter. -genprefix PREFIX, -gp PREFIX sets PREFIX to be the prefix used by the gensym function within the compiler's environment. This may affect the results of macro expansion. -eval FORM evaluates FORM in the compiler's environment before starting compilation. Notes: The lisp compiler is a lisp program, and operates within the lisp interpretive subsystem. The handling of QUIT's during compilation is similar to that of the lisp command. Hitting QUIT causes "CTRL/" to be printed. The following responses (followed by a newline) are of interest: z to QUIT 0 print out name of function currently being compiled The Multics LISP implementation is described in the MACLISP Reference Manual. Chapters 1-3 of the Revision 1 manual can be obtained from MIT Laboratory for Computer Science Publications, Room NE43-112 545 Technology Square Cambridge, MA 02139 The current price of the manual is $4.00, plus postage and handling. This manual describes most of the functions and features available (it was never completed) with the exception of I/O and compilation. These facilities were described in the now out-of-print Revision 0 (1974) of the manual. All differences of the current implementation from this manual and improvements made to this implementation are described in the online documentation, listed below. This includes a number of very important facilities. Related info files-- lisp.info describes the use of the lisp interpreter lisp.changes.info lists modifications to the lisp system that have been made. lisp.manual_update.info lists descriptions of major features in this implementation not in the Revision 0 MACLISP manual. ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved