worldcom.lisp 5.02 KB
Newer Older
ram's avatar
ram committed
1
2
3
;;; -*- Package: User; Log: code.log -*-
;;;
;;; **********************************************************************
4
5
6
7
8
;;; This code was written as part of the Spice Lisp project at
;;; Carnegie-Mellon University, and has been placed in the public domain.
;;; Spice Lisp is currently incomplete and under active development.
;;; If you want to use this code or any part of Spice Lisp, please contact
;;; Scott Fahlman (FAHLMAN@CMUC). 
ram's avatar
ram committed
9
10
11
12
;;; **********************************************************************

(in-package "USER")

13
(c::%proclaim '(optimize (speed 2) (space 2) (c::brevity 2)))
14

15
(with-compiler-log-file ("target:compile-lisp.log")
ram's avatar
ram committed
16

17
18
19
20
21
22
(let ((*features*
       (cons (intern (c:backend-name c:*backend*)
		     (find-package "KEYWORD"))
	     (remove-if #'(lambda (x)
			    (member x '(:pmax :sparc)))
			*features*))))
ram's avatar
ram committed
23

24

25
26
;;; these guys need to be first.
(comf "target:code/struct") ; For structures.
27
28

;;; Assembly files.
29
30
31
32
33
34
(when (string= (c:backend-name c:*backend*) "PMAX")
  (comf "target:assembly/mips/assem-rtns" :assem t)
  (comf "target:assembly/mips/array" :assem t)
  (comf "target:assembly/mips/bit-bash" :assem t)
  (comf "target:assembly/mips/arith" :assem t)
  (comf "target:assembly/mips/alloc" :assem t))
35

36
37
38
39
40
41
(when (string= (c:backend-name c:*backend*) "SPARC")
  (comf "target:assembly/sparc/assem-rtns" :assem t)
  (comf "target:assembly/sparc/array" :assem t)
  (comf "target:assembly/sparc/bit-bash" :assem t)
  (comf "target:assembly/sparc/arith" :assem t)
  (comf "target:assembly/sparc/alloc" :assem t))
42

43
44
45
46
47

;;; these guys can supposedly come in any order, but not really.
;;; some are put at the end so macros don't run interpreted and stuff.

(comf "target:code/kernel")
48
(comf "target:code/lispinit")
49
50
(comf "target:code/fdefinition")

51
(comf "target:code/error")
52
53
54
55
56
57
58
(comf "target:code/salterror")

(comf "target:compiler/type")
(comf "target:compiler/generic/vm-type")
(comf "target:compiler/type-init")
(comf "target:code/pred")

59
60
(comf "target:code/alieneval")
(comf "target:code/c-call")
61
62
63
64
65

(comf "target:code/bit-bash")
(comf "target:code/array")
(comf "target:code/hash")

66
(comf "target:code/list")
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
(comf "target:code/seq") ; seq must come after list
(comf "target:code/string")
(comf "target:code/mipsstrops")

(comf "target:code/machdef")

(when (string= (c:backend-name c:*backend*) "PMAX")
  (comf "target:code/pmax-machdef")
  (comf "target:code/pmax-vm")
  (comf "target:code/pmax-disassem"))
(when (string= (c:backend-name c:*backend*) "SPARC")
  (comf "target:code/sparc-machdef")
  (comf "target:code/sparc-vm"))

(comf "target:code/symbol")
(comf "target:code/bignum")
(comf "target:code/numbers")
(comf "target:code/float-trap")
(comf "target:code/float")
(comf "target:code/irrat")

(comf "target:code/type-boot")

(comf "target:compiler/proclaim")

(comf "target:code/char")
(comf "target:code/misc")
94
(comf "target:code/extensions")
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
(comf "target:code/commandline")

(comf "target:code/gc")
(comf "target:code/purify")
(comf "target:code/save")

(comf "target:code/stream")
(comf "target:code/print")
(comf "target:code/pprint")
(comf "target:code/format")

(comf "target:code/package")
(comf "target:code/reader")
(comf "target:code/sharpm")
(comf "target:code/backq")

(comf "target:code/syscall")
(comf "target:code/vm")
(comf "target:code/serve-event")
(pushnew :serve-event *features*)
115
116
(comf "target:code/fd-stream")
(comf "target:code/filesys")
117
(comf "target:code/search-list")
118
(comf "target:code/load")
119
120
121
122
123
124
125
126
127

(comf "target:code/eval")

(comf "target:code/signal")
(comf "target:code/interr")
(comf "target:code/debug-info")
(comf "target:code/debug-int")
(comf "target:code/debug")

128
129
(comf "target:code/query")
(comf "target:code/rand")
130
(comf "target:code/trace")
131
132
133
(comf "target:code/sort")
(comf "target:code/sysmacs")
(comf "target:code/time")
134
(comf "target:code/weak")
ram's avatar
ram committed
135
136

;;; Later so that miscellaneous structures are defined (not crucial, but nice.)
137
138
139
140
141
142
(comf "target:code/describe")
;(comf "target:code/inspect")
(comf "target:code/tty-inspect")

(comf "target:code/format-time")
(comf "target:code/parse-time")
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
(comf "target:code/run-program")

(comf "target:code/loop")

;;; XP won't cross-compile.
#+new-compiler
(comf "target:code/xp")

#+clx
(comf "target:code/clx-ext")

#|
These need serious work.

(comf "target:code/lfloatcon")
158

159
160
161
|#

(comf "target:code/foreign")
162
163
164
165
(comf "target:code/internet")
(comf "target:code/wire")
(comf "target:code/remote")

166
167
168
169
170
171
172
;;; Compile basic macros that we assume are already in the compilation
;;; environment.  We inhibit compile-time definition to prevent these functions
;;; from becoming interpreted.  In some cases, this is necessary for
;;; compilation to work at all, since the expander functions are lazily
;;; converted: we could go into an infinite recursion trying to convert the
;;; definition of a macro which uses itself.
;;;
ram's avatar
ram committed
173
(let ((c:*compile-time-define-macros* nil))
174
175
176
  (comf "target:code/defstruct")
  (comf "target:code/defmacro")
  (comf "target:code/defrecord")
177
178
179
180
181
182
  (comf "target:compiler/globaldb")
  ;; We can't compile anything after macros, 'cause it breaks the running lisp.
  (comf "target:code/macros"))


); let
ram's avatar
ram committed
183
184

); with-compiler-log-file