1 &  **************************************************************
 2 &  *                                                            *
 3 &  * Copyright, (C) Massachusetts Institute of Technology, 1982 *
 4 &  *                                                            *
 5 &  **************************************************************
 6 &  This ec makes the saved environment for the lisp compiler.  It starts with the
 7 &  lisp_nostartup environment (see lisp_standard_environment_.ec), and loads
 8 &  lcp_init_, lcp_semant_, and lcp_cg_, in that order.  It takes up to five
 9 &  arguments.  The first two are required, and will be prompted for if not given.
10 &  The first is the compiler version printed by the compiler when it is invoked.
11 &  The second is the directory where lcp will be installed; it is used for the
12 &  historian autoload property.  The others are directory pathnames for the three
13 &  files it loads.  If these arguments are nonblank, they will be used in the
14 &  (load ...) forms.  The saved environment is compiler.sv.lisp, created in the
15 &  working directory.
16 &
17 &command_line off
18 &if [and [exists argument &1] [exists argument &2]]
19 &then &goto OK
20 &if [exists argument &2]
21 &then ec &r0 [response "Compiler version?" -non_null] &rf2
22 &else ec &r0 [response "Compiler version?" -non_null] [response "Directory to be installed in?" -non_null] &rf3
23 &quit
24 
25 
26 
27 &label OK
28 discard_output -osw error_output "tmr (lcp_cg_ lcp_semant_ lcp_init_)"
29 &
30 &input_line off
31 &attach
32 lisp lisp_nostartup
33 
34 (ioc w)
35 
36 (gctwa nil)         ; don't collect truly worthless atoms.
37 
38 &if [exists argument &3]
39 &then (load "&q3>lcp_init_")
40 &else (load "lcp_init_")
41 
42 (cond ((getl 'uread '(fsubr fexpr)))
43       ((get 'uread 'autoload) (load (get 'uread 'autoload))))
44 
45 (use compiler-obarray)
46 
47 (setq compiler-revision &r1)
48 
49 (defprop historian "&q2>lcp_historian_" autoload)
50 
51 &if [exists argument &4]
52 &then (load "&q4>lcp_semant_")
53 &else (load "lcp_semant_")
54 
55 &if [exists argument &5]
56 &then (load "&q5>lcp_cg_")
57 &else (load "lcp_cg_")
58 
59 (*rset nil)
60 (record-compiler-history)
61 
62 (use working-obarray)
63 
64 (*rset nil)
65 (gctwa)
66 (gc)
67 (sstatus uuolinks t)
68 (save compiler)
69 &print LCP Version &1 saved.
70 &quit