Initial revision
[sbcl.git] / src / compiler / c.log
1 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval.lisp
2 05-Feb-90 20:45:20, Edit by Ram.
3   Fixed MAKE-INTERPRETED-FUNCTION to specify the LAMBDA slot when creating the
4   function so that it is avaliable to INTERPRETED-FUNCTION-LAMBDA-EXPRESSION.
5
6 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/sset.lisp
7 05-Feb-90 12:07:12, Edit by Ram.
8   Fixed a problem in SSET-UNION-OF-DIFFERENCE.  It was using (>= num2 num3) in
9   two places where it should have been using <=.  Probably due to incorrect
10   modification of the original SSET-DIFFERENCE code into this function.  The
11   original function had the inner loop over the second arg, rather than the
12   first.  This effectively resulted in the difference aspect usually not
13   happening, so the KILL set in constraint propagation never took effect,
14   resulting in some over-zealous type propagation.
15
16 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
17 04-Feb-90 10:11:51, Edit by Ram.
18   Oops...  Fixed * transform so that multiplication by 8 doesn't really
19   multiply by 256, etc.
20
21 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
22 04-Feb-90 09:48:09, Edit by Ram.
23   Wrote CLOSE-SOURCE-INFO, and made COMPILE-FILE, ADVANCE-SOURCE-FILE and
24   COMPILE-FROM-STREAM call it.
25
26 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/fndb.lisp
27 04-Feb-90 08:09:06, Edit by Ram.
28   Added definition for %SP-STRING-COMPARE.
29
30 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/seqtran.lisp
31 04-Feb-90 08:01:21, Edit by Ram.
32   Fixed STRING<>=-BODY a bit.  In addition to some query replace lossage, there
33   was also a genuine ancestral bug in computation of the result in the = case
34   of = ops.
35
36 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ctype.lisp
37 03-Feb-90 20:44:39, Edit by Ram.
38   Made VALID-FUNCTION-USE and VALID-APPROXIMATE-TYPE return NIL, NIL when
39   uncertainty is encountered, rather than T, NIL.  Everybody was expecting this
40   to be a conservative test (and only looking at the first value.)  This caused
41   spurious transforms to happen.
42
43 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
44 02-Feb-90 14:08:09, Edit by Ram.
45   Added NTH, NTHCDR transforms for the constant index case.  Added * transform
46   for the power-of-2 case.
47
48 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/seqtran.lisp
49 02-Feb-90 13:00:15, Edit by Ram.
50   Added string transforms, derived from CLC sources.
51
52 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
53 02-Feb-90 13:25:40, Edit by Ram.
54   Added FORMAT transform derived from CLC sources.
55
56 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/type.lisp
57 02-Feb-90 11:23:26, Edit by Ram.
58 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
59 02-Feb-90 11:23:15, Edit by Ram.
60   Defined TYPE/= and made the "anything changed" tests use it instead of TYPE=
61   so as to be conservative in the presence of hairy types.
62
63 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
64 02-Feb-90 10:29:54, Edit by Ram.
65   Changed REOPTIMIZE-CONTINUATION to set BLOCK-TYPE-CHECK in the use blocks so
66   that new derived-type information will also cause type checking to be redone.
67   This mainly handles the case where new type information causes us to want to
68   negate a check that was previously simple.
69
70 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
71 02-Feb-90 10:12:24, Edit by Ram.
72   Fixed CONTINUATION-%DERIVED-TYPE to call CONTINUATION-%TYPE-CHECK instead of
73   CONTINUATION-TYPE-CHECK so that it won't recurse indefinitely.
74
75 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/globaldb.lisp
76 01-Feb-90 14:46:13, Edit by Ram.
77 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
78 01-Feb-90 14:43:26, Edit by Ram.
79 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/knownfun.lisp
80 01-Feb-90 14:40:22, Edit by Ram.
81 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
82 01-Feb-90 14:42:19, Edit by Ram.
83   Flushed *FUNCTION-INFO* in favor of (INFO FUNCTION INFO ...).  Added
84   FUNCTION-INFO-PREDICATE-TYPE slot.
85
86 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
87 01-Feb-90 14:09:42, Edit by Ram.
88   Changed ASSERT-CONTINUATION-TYPE to set BLOCK-TYPE-ASSERTED in the use
89   blocks.  Also, moved fixed the setting of BLOCK-TYPE-CHECK to be on the use
90   blocks rather than the CONTINUATION-BLOCK, since type check generation uses
91   DO-NODES, and thus ignores the BLOCK-START.
92
93 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/node.lisp
94 01-Feb-90 13:37:14, Edit by Ram.
95 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/checkgen.lisp
96 01-Feb-90 13:41:46, Edit by Ram.
97 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
98 01-Feb-90 13:41:48, Edit by Ram.
99 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
100 01-Feb-90 13:42:05, Edit by Ram.
101 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
102 01-Feb-90 13:42:29, Edit by Ram.
103 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
104 01-Feb-90 13:43:07, Edit by Ram.
105   Renamed the CONTINUATION TYPE-CHECK slot to %TYPE-CHECK, which is filtered by
106   the new CONTINUATION-TYPE-CHECK function to make sure that it has been
107   computed recently.  Changed setters of TYPE-CHECK to %TYPE-CHECK, and flushed
108   the now unnecessary calls to CONTINUATION-DERIVED-TYPE (which explicitly did
109   the recomputation.)
110
111 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
112 01-Feb-90 12:56:50, Edit by Ram.
113   Changed %CONTINUATION-DERIVED-TYPE to not set TYPE-CHECK when the assertion
114   is T or there is no DEST.  In the first case, this just avoids waste motion.
115   In the second case, this prevents constraint analysis from being tricked into
116   believing such a check will be done, when in fact no checks are done on
117   unused values.
118
119 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
120 01-Feb-90 12:51:41, Edit by Ram.
121   Made DELETE-CONTINUATION, FLUSH-DEST, NODE-ENDS-BLOCK and UNLINK-NODE set the
122   BLOCK-TYPE-ASSERTED and BLOCK-TEST-CHANGED flags.  At least for the former,
123   this has to be done in more places than I thought, and also must be done for
124   correctness, rather than just to ensure new assertions are seen.  This is
125   because if a block is split, or code needing an assertion is deleted, then we
126   must recompute the block's set of constraints or it will contain incorrect
127   constraints.
128
129 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/sset.lisp
130 01-Feb-90 11:33:28, Edit by Ram.
131   Fixed SSET-INTERSECTION to blow away any extra elements in SET1 that are
132   larger than the greatest element in SET2.
133
134 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/node.lisp
135 01-Feb-90 10:34:17, Edit by Ram.
136   Changed initial values for TYPE-ASSERTED and TEST-MODIFIED to be T rather
137   than NIL.
138
139 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/vop.lisp
140 30-Jan-90 16:10:06, Edit by Ram.
141   Added IR2-ENVIRONMENT-KEEP-AROUND-TNS and IR2-COMPONENT-PRE-PACKED-SAVE-TNS
142   so that we won't have to recompile to add these features later on.
143
144 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval.lisp
145 30-Jan-90 14:54:58, Edit by Ram.
146   Added the MAKE-INTERPRETED-FUNCTION interface which allows lazy conversion of
147   functions and features bounded IR1 memory usage through a LRU cache that is
148   partially flushed on GC.  Added INTERPRETED-FUNCTION-NAME,
149   INTERPRETED-FUNCTION-ARGLIST and setf functions.
150
151 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
152 30-Jan-90 10:08:19, Edit by Ram.
153   Now that %DEFMACRO is passed #'(lambda ... for benefit for the interpreter,
154   we don't want to unquote the definition using EVAL.  Use SECOND instead.
155
156 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
157 29-Jan-90 14:17:06, Edit by Ram.
158   Changed FIND-COMPONENT-NAME to bind *PRINT-LEVEL* and *PRINT-PRETTY* so as to
159   prevent huge component names.
160
161 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/life.lisp
162 29-Jan-90 13:43:23, Edit by Ram.
163   Fixed CONFLICT-ANALYZE-BLOCK in the dead read case to do FROB-MORE-TNS on
164   NOTE-CONFLICTS as well as the addition to the live set.  This was the fix to
165   the long-procrastinated-about :MORE TN bug (first noticed in fall 88.)  Also,
166   changed FROB-MORE-TNS to return whether it did anything, rather than sleazily
167   hacking on the loop variable to get the loop to exit.  I must have been
168   having a Pascal flashback when I wrote that code...
169
170 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval.lisp
171 29-Jan-90 13:24:23, Edit by Ram.
172   Fixed LEAF-VALUE to use FDEFINITION rather than SYMBOL-FUNCTION when the name
173   isn't a symbol.
174
175 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
176 29-Jan-90 10:46:23, Edit by Ram.
177   Changed COMPILE-FIX-FUNCTION-NAME to substitute for old uses of the name so
178   that recursive calls get converted.
179
180 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
181 29-Jan-90 10:13:18, Edit by Ram.
182   But for the want of a single character...  So that's why no functions were
183   being inline expanded!  In %DEFUN the ir1 translator, I was looking at the
184   INLINEP value for the NAME in the same LET that was eval'ing the name to
185   unquote it.
186
187 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/debug-dump.lisp
188 27-Jan-90 18:05:15, Edit by Ram.
189   Made DEBUG-SOURCE-FOR-INFO handle the incremental compilation cases.
190
191 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
192 27-Jan-90 17:46:09, Edit by Ram.
193   Wrote COMPILE and UNCOMPILE.
194
195 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval.lisp
196 27-Jan-90 17:07:17, Edit by Ram.
197   Added the interfaces INTERPRETED-FUNCTION-LAMBDA-EXPRESSION and
198   INTERPRETED-FUNCTION-CLOSURE.  These use the new FIND-IF-IN-CLOSURE operation
199   pick apart the closure that is an interpreted function.
200
201 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
202 26-Jan-90 16:35:51, Edit by Ram.
203   Moved a bunch of stuff from COMPILE-FILE to SUB-COMPILE-FILE.  Wrote
204   MAKE-LISP-SOURCE-INFO and MAKE-STREAM-SOURCE-INFO.  Wrote
205   COMPILE-FROM-STREAM, and added appropriate uses of the in-core compilation
206   interface to various functions.
207
208 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/globaldb.lisp
209 26-Jan-90 16:09:30, Edit by Ram.
210   Made the CACHE-NAME slot be duplicated in both kinds of environment rather
211   than inherited from INFO-ENV so that the inline type checks for the slot
212   access will win, allowing bootstrapping to work.
213
214 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval-comp.lisp
215 26-Jan-90 13:12:09, Edit by Ram.
216   Changed COMPILE-FOR-EVAL to call the new MAKE-LISP-SOURCE-INFO, rather than
217   rolling its own.
218
219 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/globaldb.lisp
220 26-Jan-90 11:59:58, Edit by Ram.
221   Added code to cache the last name looked up, since we commonly consecutively
222   look up several types of info for the same name.  [Maybe even some types more
223   than once!]
224
225 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
226 26-Jan-90 09:30:59, Edit by Ram.
227   Fixed PROCESS-TYPE-PROCLAMATION to not try to call TYPES-INTERSECT on
228   function types so that we don't flame out.  This was probably what I was
229   really trying to fix in the last change to PROCESS-TYPE-DECLARATION.  Really
230   both were broken.
231
232 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
233 25-Jan-90 10:58:43, Edit by Ram.
234   Added transform for ARRAY-DIMENSION that converts to LENGTH when possible.
235
236 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/typetran.lisp
237 25-Jan-90 10:46:00, Edit by Ram.
238   Moved array typep code here from vm-type-tran, since it turned out not to be
239   VM dependent after all.
240
241 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/typetran.lisp
242 23-Jan-90 15:31:32, Edit by Ram.
243   Transformed array type tests to %ARRAY-TYPEP so that clever
244   implementation-dependent things can be done.
245
246 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
247 23-Jan-90 18:45:14, Edit by Ram.
248   Fixed up some messed up backquote stuff in DO-MACROLET-STUFF where it was
249   trying to coerce the lambda to a function.
250
251 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/envanal.lisp
252 23-Jan-90 13:06:41, Edit by Ram.
253   Don't annotate as TAIL-P nodes whose DERIVED-TYPE is NIL, so that we don't
254   tail-call functions such as ERROR.
255
256 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
257 23-Jan-90 12:44:28, Edit by Ram.
258   Fixed %DEFUN translator to record an inline expansion when the INLINEP value
259   is :MAYBE-INLINE as well as :INLINE.
260
261 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
262 23-Jan-90 08:49:50, Edit by Ram.
263   Changed PUSH-IN and DELETEF-IN to only call FOO-GET-SETF-METHOD when
264   CLC::*IN-THE-COMPILER* is true, so that we can still use these macros in the
265   old compiler.
266
267 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/seqtran.lisp
268 22-Jan-90 16:11:28, Edit by Ram.
269   Added a transform for MEMBER where the list is a constant argument (primarily
270   to help MEMBER type tests.)
271
272 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval.lisp
273 22-Jan-90 15:20:27, Edit by Ram.
274   Replaced all uses of COMBINATION- accessors with BASIC-COMBINATION- accessors
275   so that MV combinations will work.
276
277 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval.lisp
278 22-Jan-90 15:08:07, Edit by Ram.
279   Put a couple of macros in EVAL-WHEN (COMPILE LOAD EVAL) so that they are
280   avaliable to SETF in the bootstrap environment.  Also, changed %SP-[UN]BIND
281   to the appropriate %PRIMITIVE calls.
282
283 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/fndb.lisp
284 20-Jan-90 20:21:34, Edit by Ram.
285   Fixed up FBOUNDP & stuff to correspond to the FUNCTION-NAME cleanup.  Now
286   FBOUNDP can take a list as well as a symbol.
287
288 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
289 20-Jan-90 09:56:43, Edit by Ram.
290   In #+NEW-COMPILER, made DO-MACROLET-STUFF coerce the lambda expression to a
291   function.
292
293 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval-comp.lisp
294 20-Jan-90 09:52:20, Edit by Ram.
295   Added bind of *FENV* to () in COMPILE-FOR-EVAL.
296
297 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
298 20-Jan-90 09:50:59, Edit by Ram.
299   And made IR1-TOP-LEVEL *not* bind *FENV* to () so that top-level MACROLETs
300   will be recognized...
301
302 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
303 20-Jan-90 09:47:19, Edit by Ram.
304   Added binding of *FENV* to () in SUB-COMPILE-FILE so that MACROLET processing
305   won't flame out.
306
307 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/macros.lisp
308 19-Jan-90 22:25:15, Edit by Ram.
309   Made WITH-IR1-ENVIRONMENT bind a bunch more variables.  *fenv*, etc.  Wrote
310   WITH-IR1-NAMESPACE, which allocates the gloabal namespace hashtables.
311
312 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval-comp.lisp
313 19-Jan-90 22:35:44, Edit by Ram.
314 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
315 19-Jan-90 22:34:20, Edit by Ram.
316   Flushed IR1-TOP-LEVEL-FOR-EVAL and changed IR1-TOP-LEVEL to take a FOR-VALUE
317   flag so that it can do the same thing.  Added use of WITH-IR1-NAMESPACE.
318
319 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
320 19-Jan-90 21:43:20, Edit by Ram.
321   Made SUB-COMPILE-FILE bind *CURRENT-COOKIE* so that people can randomly call
322   (POLICY NIL ...) to get at the current policy, and will never see any
323   leftover local policy from a dynamically enclosing IR1 conversion.
324   ### Maybe this should really be bound somewhere else, like COMPILE-COMPONENT.
325
326 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
327 19-Jan-90 22:00:35, Edit by Ram.
328 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/node.lisp
329 19-Jan-90 22:01:47, Edit by Ram.
330   Added a keyword constructor for CBLOCK, and changed all MAKE-BLOCK calls
331   outside of IR1 conversion to use this new constructor, specifying all the
332   values that would otherwise be defaulted from specials.  This is necessary to
333   make stuff properly reentrant.
334
335 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
336 19-Jan-90 17:26:17, Edit by Ram.
337   In FIND-FREE-VARIABLE, flushed the assertion that non-constant variables
338   never have constant values.  This isn't really right, but it is better.
339   ### Really, the implementation of "constant but value unknown" variables
340   should be either flushed or redone.
341
342 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval-comp.lisp
343 19-Jan-90 15:31:33, Edit by Ram.
344   New file from Chiles.
345
346 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval.lisp
347 19-Jan-90 15:30:03, Edit by Ram.
348   New file from chiles.  Changed MY-EVAL to INTERNAL-EVAL and made it frob
349   *ALREADY-EVALED-THIS*.
350
351 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
352 19-Jan-90 14:53:28, Edit by Ram.
353   Made IR1 conversion reentrant by having IR1-TOP-LEVEL bind all of the state
354   variables.  Removed DEFVAR initial values for variables that should never be
355   referenced outside of IR1 conversion.  Rather than always making four new
356   hashtables every time, I kept around the global values, allowing them to be
357   used on the outermost call.
358
359 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
360 19-Jan-90 11:06:50, Edit by Ram.
361   Changed PROPAGATE-TO-REFS to do nothing when the variable type is a function
362   type so that we don't lose specific function type information, and also so
363   that TYPE-INTERSECTION doesn't gag.
364
365 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
366 19-Jan-90 11:24:07, Edit by Ram.
367   Changed PROCESS-TYPE-DECLARATION to quietly set the var type when either the
368   old or new type is a function type, rather than losing trying to do
369   TYPE-INTERSECTION.
370   ### Someday when we have a incompatible-redefinition detection capability, we
371   might want to hook it in here.
372
373 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
374 18-Jan-90 16:45:20, Edit by Ram.
375   In %DEFMACRO IR1 convert, when #+NEW-COMPILER, coerce the expander to a
376   function before sticking it in the MACRO-FUNCTION.
377
378 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
379 18-Jan-90 14:11:44, Edit by Ram.
380   Changed %DEFUN translator to dump an inline expanion when appropriate.
381
382 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/fndb.lisp
383 18-Jan-90 12:33:17, Edit by Ram.
384   Added %STANDARD-CHAR-P and %STRING-CHAR-P to the imports list. 
385
386 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/globaldb.lisp
387 18-Jan-90 12:24:34, Edit by Ram.
388   In #+NEW-COMPILER, added info type defaults that get information from the
389   environment.  This only affected functions and constant values, since
390   everything else is already stored in the global database.
391
392 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
393 18-Jan-90 11:51:45, Edit by Ram.
394   In COMPILE-FILE, fixed FROB to always pathnamify the thing so that
395   OPEN-FASL-FILE won't choke.  Also, this way any syntax error always happens
396   in COMPILE-FILE.
397
398 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/life.lisp
399 18-Jan-90 10:44:11, Edit by Ram.
400   And also in NOTE-CONFLICTS, fixed the declaration for Live-List to be
401   (OR TN NULL) rather than TN.
402
403 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/life.lisp
404 18-Jan-90 10:39:41, Edit by Ram.
405   In NOTE-CONFLICTS, fixed the type for Live-Bits to be LOCAL-TN-BIT-VECTOR,
406   not SC-BIT-VECTOR.
407
408 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
409 17-Jan-90 20:47:37, Edit by Ram.
410   Fixed IR2-CONVERT-NORMAL-LOCAL-CALL to set up the argument pointer.  It
411   seems this was only happening in tail calls, so stack arguments did not in
412   general work in local calls.
413
414 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
415 17-Jan-90 16:20:28, Edit by Ram.
416   Changed FIND-TEMPLATE to guard the unsafe policy "trusting" result test by a
417   check for any non-null value of TYPE-CHECK, rather than just T or :ERROR.
418   This since the value might have also been :NO-CHECK, this was usually
419   preventing us from believing the assertion.
420
421   This was resulting in the rather baffling efficiency note that output type
422   assertions can't be trusted in a safe policy, when the policy wasn't safe...
423   I added an assertion that the policy really is safe when we emit that note.
424   Although it should always be the case, lossage in either VALID-FUNCTION-USE
425   or template selection could cause us to end up in that branch.
426
427 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/globaldb.lisp
428 16-Jan-90 21:25:42, Edit by Ram.
429   Renamed the types ENTRY-INFO and ENTRIES-INDEX to be COMPACT-INFO-ENTRY and
430   COMPACT-INFO-ENTRIES-INDEX.  We already had a structure called ENTRY-INFO.
431
432 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/proclaim.lisp
433 16-Jan-90 11:23:51, Edit by Ram.
434   Set the symbol-function of PROCLAIM to the definition of %PROCLAIM.
435
436 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
437 16-Jan-90 11:15:56, Edit by Ram.
438   Fixed DEFMACRO ir1 convert to unquote the original arglist before setting the
439   FUNCTIONAL-ARG-DOCUMENTATION.
440
441 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/codegen.lisp
442 15-Jan-90 13:04:59, Edit by Ram.
443   Oops...  I seem to have broken codegen when I changed to it give each block a
444   label, sometimes emitting a label more than once.
445
446 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
447 13-Jan-90 13:09:05, Edit by Ram.
448   Changed DELETEF-IN and PUSH-IN to use FOO-GET-SETF-METHOD rather than
449   GET-SETF-METHOD so that they will expand correctly in the bootstrapping
450   environment.
451
452 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
453 13-Jan-90 12:27:12, Edit by Ram.
454   Fixed a CDR circularity detection in FIND-SOURCE-PATHS a bit.
455
456 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/globaldb.lisp
457 13-Jan-90 11:49:48, Edit by Ram.
458   In addition to initializing *INFO-CLASSES* in GLOBALDB-INIT for benefit of
459   bootstrapping, we must also init *TYPE-COUNTER* and *TYPE-NUMBERS*.
460
461 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/globaldb.lisp
462 12-Jan-90 16:15:25, Edit by Ram.
463   Changed to use a special FIND-TYPE-INFO function instead of FIND, since the
464   slot accessor TYPE-INFO-NAME isn't avaliable for use as a funarg before
465   top-level forms run.
466
467 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/globaldb.lisp
468 11-Jan-90 11:14:44, Edit by Ram.
469   I'm sooo embarrassed...  I got the rehashing algorithm wrong in compact
470   environments.  The second hash could be 0, resulting in infinite looping.
471   [b.t.w., this is a new largely rewritten version of globaldb that uses
472   special hashtables instead of standard hashtables.  There are two kinds of
473   environments: volatile and compact.  Volatile environments can be modified,
474   but are not especially compact (comparable to the old hashtable
475   implementation, but faster.)  Compact environments are not modifiable, but
476   reduce memory usage by at least half.]
477
478 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
479 10-Jan-90 12:04:33, Edit by Ram.
480   Rather than asserting that (INFO FUNCTION WHERE-FROM <name>) is :ASSUMED
481   whenever the LEAF-WHERE-FROM is assumed, we just quietly skip the unknown
482   function warning code when the name no longer names an assumed function.
483
484 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
485 10-Jan-90 11:27:03, Edit by Ram.
486 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
487 10-Jan-90 11:24:07, Edit by Ram.
488   Added special-case top-level form processing of EVAL-WHEN, PROGN and MACROLET
489   so that we don't get huge compilations when these forms enclose lots of code
490   at top-level.  To do this, I split off the environment manipulation code in
491   EVAL-WHEN and MACROLET.
492   ### Probably should expand macros to see if they turn into a magic form
493   ### before just compiling the thing.
494
495 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
496 09-Jan-90 13:23:41, Edit by Ram.
497   Wrote a version of PROGV.  This IR1 translator is in IR2tran because it goes
498   directly from syntax to shallow-binding primitives.
499
500 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
501 08-Jan-90 14:39:46, Edit by Ram.
502   Made FIND-SOURCE-PATHS hack circular source code.  CAR circularities are
503   detected by noticing that the cons is already in the source paths hashtable.
504   CDR circularities are detected using the two-phase trailing pointer hack.
505   This support is necessary as long as circular constants are allowed (which is
506   strongly implied by the presence of the #=/## read syntax.)  Of course if
507   there is circular evaluated code, bad things will still happen...
508
509 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
510 08-Jan-90 13:36:03, Edit by Ram.
511   Made PRINT-SUMMARY print information about compilation units that were
512   aborted, and inhibited printing of unknown function warnings when the warning
513   compilation unit is unwound.
514
515 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
516 08-Jan-90 10:58:02, Edit by Ram.
517 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
518 08-Jan-90 10:49:04, Edit by Ram.
519 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/node.lisp
520 08-Jan-90 10:28:23, Edit by Ram.
521 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1final.lisp
522 08-Jan-90 10:40:20, Edit by Ram.
523   Changed *UNKNOWN-FUNCTIONS* a bit.  Now it is a list of UNKNOWN-FUNCTION
524   structures.  This was done primarily to allow the number of warnings to be
525   limited in IR1-CONVERT-OK-COMBINATION-FER-SHER rather than in PRINT-SUMMARY.
526   It turns out that recording hundreds of error locations for tents of
527   functions can suck down a large amount of memory.
528
529 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
530 05-Jan-90 16:24:40, Edit by Ram.
531 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
532 05-Jan-90 15:58:34, Edit by Ram.
533   Changed *UNKNOWN-FUNCTIONS* to be an alist with one entry for each name, with
534   the value being a list of all the error contexts for the calls.  Made
535   PRINT-SUMMARY print the undefined function warnings sorted by name, limiting
536   the number of warnings per function to *UNKNOWN-FUNCTION-WARNING-LIMIT*.
537
538 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
539 05-Jan-90 15:51:31, Edit by Ram.
540   Changed PRINT-SUMMARY to print a warning for each unknown function.
541
542 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
543 05-Jan-90 15:46:02, Edit by Ram.
544 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1final.lisp
545 05-Jan-90 15:45:49, Edit by Ram.
546   Moved detection of unknown function calls to
547   IR1-CONVERT-OK-COMBINATION-FER-SHER so that we can conveniently note the
548   error context each time around.  *UNKNOWN-FUNCTIONS* is now a list of conses
549   (Name . Compiler-Error-Context), with entries for each call to an unknown
550   function.
551
552 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
553 05-Jan-90 15:22:04, Edit by Ram.
554   Split off error context determination from error printing by introducing the
555   COMPILER-ERROR-CONTEXT structure.  The current error context can now be saved
556   for future use by calling FIND-ERROR-CONTEXT.
557
558 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/debug-dump.lisp
559 04-Jan-90 10:56:42, Edit by Ram.
560   New file.
561
562 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
563 04-Jan-90 10:39:31, Edit by Ram.
564   Put in hooks for dumping debug info.
565
566 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/entry.lisp
567 03-Jan-90 15:04:07, Edit by Ram.
568   Added code to dump the arg documentation.  For now, we do pretty much what
569   the old compiler did, i.e. printing it to a string.
570   ### Eventually, we may want to put in code to flush package qualifiers on the
571   variable names and omit complex default forms.
572
573 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/node.lisp
574 03-Jan-90 14:44:54, Edit by Ram.
575 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
576 03-Jan-90 14:50:15, Edit by Ram.
577   Added FUNCTIONAL-ARG-DOCUMENTATION slot and made IR1 conversion set it.
578
579 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/node.lisp
580 03-Jan-90 14:34:44, Edit by Ram.
581 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
582 03-Jan-90 14:34:27, Edit by Ram.
583 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/debug.lisp
584 03-Jan-90 14:40:06, Edit by Ram.
585   Added LAMBDA-OPTIONAL-DISPATCH and made IR1 conversion set it in :OPTIONAL
586   lambdas.  Made consistency checker allow this.
587
588 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
589 03-Jan-90 14:07:30, Edit by Ram.
590   In DELETE-OPTIONAL-DISPATCH, don't clear the ENTRY-FUNCTION in the :OPTIONAL
591   lambdas.  This info is now kept in the LAMBDA-OPTIONAL-DISPATCH slot, and is
592   not cleared when the lambda stops being an entry point.
593
594 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/dfo.lisp
595 03-Jan-90 10:35:50, Edit by Ram.
596   But we still want to compute the component name in such components...
597
598 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/dfo.lisp
599 03-Jan-90 09:27:51, Edit by Ram.
600   Changed FIND-INITIAL-DFO to move all components containing a top-level lambda
601   to the end of the compilation order, even if there are XEPs.  This does a
602   better job of ensuring that environment analysis is done before we compile
603   the top-level component which does cross-component references.
604   ### This probably still loses in some pathological case.
605
606 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
607 02-Jan-90 17:01:46, Edit by Ram.
608   Fixed CLEAR-IR2-INFO to check whether there is a tail set before attempting
609   to clear its INFO.
610
611 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
612 02-Jan-90 14:51:46, Edit by Ram.
613   Changed IR2-CONVERT-CLOSURE to not use the IR2-ENVIRONMENT-ENVIRONMENT, since
614   this is now blown away after the component is compiled.  Instead we use the
615   ENVIRONMENT-CLOSURE, which is just as good.  Actually, this should only
616   happen with references in XEPs, since that is the only kind of function that
617   can reference functions across component boundaries.
618
619 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
620 17-Dec-89 15:30:10, Edit by Ram.
621   Wrote CLEAR-IR2-INFO and made COMPILE-TOP-LEVEL call it after it was done
622   with the IR2 for each component.  This should allow the IR2 data structures
623   to be reclaimed after each component is compiled, even in a multi-component
624   compilation.
625
626   ### Eventually it should be possible for the IR1 to be reclaimed after the
627   component is compiled, but there currently cross-component links that inhibit
628   this.  It would also cause problems with IR1 consistency checking, since we
629   currently need to check all components together.
630
631 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
632 15-Dec-89 13:33:44, Edit by Ram.
633   In IR1-CONVERT-VARIABLE, when we find a CT-A-VAL, we convert an ALIEN-VALUE
634   form rather than referencing the CT-A-VAL as a leaf.
635
636 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1final.lisp
637 13-Dec-89 13:38:51, Edit by Ram.
638   In NOTE-FAILED-OPTIMIZATION, also inhibit any attempt to give a note if the
639   combination is no longer a known call.
640
641 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/gtn.lisp
642 12-Dec-89 12:25:57, Edit by Ram.
643 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
644 12-Dec-89 12:36:38, Edit by Ram.
645   To avoid having to fix this right right now, changed all passing locations to
646   be *ANY-PRIMITIVE-TYPE* and added code to do necessary coercions to/from the
647   actual variable representation.
648
649 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/type.lisp
650 12-Dec-89 10:21:15, Edit by Ram.
651   Fixed a bunch of declarations that were calling things TYPEs instead of
652   CTYPEs.
653
654 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
655 11-Dec-89 10:11:31, Edit by Ram.
656   Changed default fasl file extension from "fasl" to "nfasl", at least for now.
657
658 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/fndb.lisp
659 11-Dec-89 08:15:47, Edit by Ram.
660   Changed most uses of the FUNCTION type to CALLABLE, now that FUNCTION doesn't
661   encompass SYMBOL but we can still call them.  Also fixed some lossage where
662   someone believed that the SUBSTITUTE/NSUBSTITUTE family of functions had the
663   same arguments as the DELETE/REMOVE family.
664
665 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
666 10-Dec-89 20:33:05, Edit by Ram.
667   Oops...  (fifth x) /==> (nth 5 x), is really (nth 4 x).  So that's why
668   PACKAGE-INIT was losing...
669
670 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/macros.lisp
671 10-Dec-89 09:23:47, Edit by Ram.
672   Fixed DO-NODES-BACKWARDS to work when the current node is deleted now that
673   UNLINK-NODE blasts the PREV.  Also fixed two bugs in this macro that seem not
674   to have affected the sole use in FLUSH-DEAD-CODE.  One was that it randomly
675   referenced the variable CONT in one place, rather than commaing in the
676   appropriate argument.  The other was that it did an extra iteration binding
677   CONT to the block start and NODE to whatever its USE was (often NIL.)
678
679 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
680 09-Dec-89 13:31:24, Edit by Ram.
681 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1final.lisp
682 09-Dec-89 13:30:52, Edit by Ram.
683   Wrote NODE-DELETED and made NOTE-FAILED-OPTIMIZATION call it so that we won't
684   gag trying to look at deleted code.  This also prevents bogus efficiency
685   notes about code that was actually optimized away.
686
687 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
688 09-Dec-89 13:22:39, Edit by Ram.
689   Made UNLINK-NODE set the NODE-PREV of the deleted node to NIL so that we can
690   recognize deleted nodes.  Also, fixed the degenerate exit branch to add a use
691   by EXIT rather than NODE.
692
693 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/checkgen.lisp
694 08-Dec-89 11:28:54, Edit by Ram.
695   Changed CONVERT-TYPE-CHECK to call LOCAL-CALL-ANALYZE now that this is not
696   being done in COMPILE-COMPONENT.
697
698 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
699 08-Dec-89 11:24:13, Edit by Ram.
700   Fixed PROPAGATE-FUNCTION-CHANGE to call MAYBE-LET-CONVERT in addition to
701   COMVERT-CALL-IF-POSSIBLE so that IR1 optimize will let convert calls that it
702   discovers can be local.
703
704 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/vop.lisp
705 08-Dec-89 10:58:23, Edit by Ram.
706   Looks like when I made OLD-CONT and RETURN-PC environment TNs (and requiring
707   the IR2-ENVIRONMENT-SLOTS to be initialized after the environment was
708   created), I modified the wrong slots to allow NIL.  Only detected now because
709   I was running with safe defstruct accessors.
710
711 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/debug.lisp
712 08-Dec-89 09:58:33, Edit by Ram.
713   IR1 invariants now a bit different: :DELETED continuations can only be
714   received by blocks with DELETE-P set, and blocks with DELETE-P set can have
715   no successors. 
716
717 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/locall.lisp
718 08-Dec-89 09:51:24, Edit by Ram.
719   Don't attempt to let-convert when the REF is in a block with DELETE-P set
720
721 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
722 08-Dec-89 09:50:13, Edit by Ram.
723   Don't attempt to do IR1 optimizations when the block has DELETE-P set, just
724   delete it instead.
725
726 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
727 08-Dec-89 09:46:20, Edit by Ram.
728 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/node.lisp
729 08-Dec-89 09:51:26, Edit by Ram.
730   Added BLOCK-DELETE-P and made DELETE-CONTINUATION set it in the DEST block
731   and its predecessors.  Changed most uses of DELETE-CONTINUATION to assert
732   that there isn't a DEST.
733
734 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
735 07-Dec-89 22:08:35, Edit by Ram.
736   In IR1-OPTIMIZE-IF, set COMPONENT-REANALYZE before UNLINK-NODE so that there
737   is still a component in the block.
738
739 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
740 07-Dec-89 21:17:43, Edit by Ram.
741   In IR1-CONVERT-OK-COMBINATION-FER-SHER, set the CONTINUATION-%DERIVED-TYPE
742   and CONTINUATION-TYPE-CHECK of the fun cont in addition to setting
743   CONTINUATION-REOPTIMIZE.
744
745 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
746 07-Dec-89 21:08:09, Edit by Ram.
747   Moved definitions of the arithmetic & logic functions %LDB et al. here from
748   eval.lisp, since we need them in the bootstrapping environment.
749
750 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
751 07-Dec-89 19:17:48, Edit by Ram.
752   Changed USE-CONTINUATION not to set the CONTINUATION-%DERIVED-TYPE, as this
753   inhibits CONTINUATION-DERIVED-TYPE from seeing whether the assertion needs to
754   be intersected, etc.
755
756 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
757 07-Dec-89 18:55:32, Edit by Ram.
758   Changed IR1-OPTIMIZE to more explicitly ignore a block when it is directly
759   deleted due to :DELETED kind or no predecessors.  The old code should have
760   realized not to optimize a deleted block, but in a rather obscure way.
761
762 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
763 07-Dec-89 13:25:38, Edit by Ram.
764   Changed IR1-OPTIMIZE-UNTIL-DONE to count the number of iterations that didn't
765   introduce any new code (set COMPONENT-REANALYZE) rather than just the total
766   number of iterations.  Reduced MAX-OPTIMIZE-ITERATIONS to 3, since we now
767   don't have to worry so much about the results of transforms being adequately
768   optimized.  Changed IR1-PHASES to call GENERATE-TYPE-CHECKS where it was
769   calling CHECK-TYPES.  Flushed old call to GENERATE-TYPE-CHECKS in
770   COMPILE-COMPONENT.
771
772 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
773 07-Dec-89 13:24:20, Edit by Ram.
774   Changed IR1-OPTIMIZE-IF to set COMPONENT-REANALYZE if it does anything.
775
776 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/checkgen.lisp
777 07-Dec-89 12:56:18, Edit by Ram.
778 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
779 07-Dec-89 12:28:19, Edit by Ram.
780 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
781 07-Dec-89 13:01:31, Edit by Ram.
782   Changed type checking around a bunch, fixing some bugs and inefficiencies.
783   The old CHECK-TYPES phase is gone.  The determination of
784   CONTINUATION-TYPE-CHECK is now done on the fly by CONTINUATION-DERIVED-TYPE.
785   The compile-time type error detection has been moved into type check
786   generation.  Type check generation is now driven by BLOCK-TYPE-CHECK, so it
787   doesn't have to look at everything on repeat iterations.  Made
788   ASSERT-CONTINUATION-TYPE set BLOCK-TYPE-CHECK when there is a new assertion.
789
790   There are two new values of TYPE-CHECK: :ERROR and :NO-CHECK.  These are used
791   by check generation to comminicate with itself and the back end.  :ERROR
792   indicates a compile-time type error, which always causes a type check to be
793   emitted, regardless of policy.  :NO-CHECK indicates that a check is needed,
794   but expected not to be generated due to policy or a safe implementation.
795   This inhibits LTN from choosing an unsafe implementation based on results of
796   new type information from the post-type-check optimization pass.
797
798 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/type.lisp
799 07-Dec-89 10:01:23, Edit by Ram.
800   Yep, that combined with a bug in how I hooked CTYPEP into TYPES-INTERSECT.
801   That function should return (VALUES T NIL) in the uncertain case, not
802   (VALUES NIL NIL).
803
804 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/type.lisp
805 07-Dec-89 09:54:44, Edit by Ram.
806   Fixed CTYPEP to return the second value T when it calls TYPEP.  Is this what
807   is causing all hell to break loose?  It shouldn't, since it should just
808   result in increased type uncertainty.
809
810 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/proclaim.lisp
811 06-Dec-89 21:24:00, Edit by Ram.
812 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/macros.lisp
813 06-Dec-89 21:26:24, Edit by Ram.
814   Added support for the DEBUG-INFO optimization quality (DEBUG for short).
815
816 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/type.lisp
817 06-Dec-89 11:25:36, Edit by Ram.
818   Made CTYPEP return a second value indicating whether it was able to determine
819   the relationship.  Made all callers look at the second value and propagate
820   the uncertainty.
821
822 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/proclaim.lisp
823 06-Dec-89 11:11:06, Edit by Ram.
824   Moved the actual establishing of the type definition to %%COMPILER-DEFSTRUCT
825   from %DEFSTRUCT.  Part of this was actually duplicated both places.  Now it
826   is only here.  Hopefully this won't cause any initialization problems.  Also,
827   made structure redefinition preserve the INCLUDED-BY list so that existing
828   structures won't suddenly be broken when the supertype is compiled.
829
830 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
831 06-Dec-89 10:43:21, Edit by Ram.
832   Changed PROCESS-TYPE-PROCLAMATION to call SINGLE-VALUE-TYPE so that we don't
833   try to call TYPE-INTERSECTION on a hairy function type (or make the type of a
834   variable, for all that matter.)
835
836 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
837 05-Dec-89 13:42:19, Edit by Ram.
838   Made NCOMPILE-FILE frob *DEFAULT-COOKIE* so as to make optimize proclamations
839   affect only the file that they appear in (and any compilations dynamically
840   enclosed in that file.)
841
842 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
843 04-Dec-89 09:38:18, Edit by Ram.
844   Flushed :SEMI-INLINE and :ALWAYS-INLINE values for INLINEP.  Added
845   :MAYBE-INLINE, which is interpreted in a more advisory manner.  Changed 
846   IR1-CONVERT-GLOBAL-INLINE so that it does something like the old
847   :SEMI-INLINE case for all inline calls so that recursive functions can be
848   INLINE.
849
850   Fixed this code so that you really can have recursive inline functions.  This
851   was supposedly supported for :SEMI-INLINE functions, but did not in fact
852   work.  We do a hack similar to LABELS: we enter a dummy FUNCTIONAL in the
853   *FREE-FUNCTIONS* to prevent repeated attempts to convert the expansion.
854
855 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
856 03-Dec-89 15:03:48, Edit by Ram.
857   Defined SAME-LEAF-REF-P and made transforms for EQ, EQL, < and > use it to
858   see if both args are references to the same variable or functional or
859   whatever.  Also use the EQ transform for CHAR= and EQUAL.
860
861 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
862 02-Dec-89 09:26:12, Edit by Ram.
863   Made MAX-OPTIMIZE-ITERATIONS be a ceiling on the number of times that
864   IR1-OPTIMIZE-UNTIL-DONE will iterate.  If exceeded, we clear a bunch of
865   REOPTIMIZE flags and punt.  This was made necessary by the addition of type
866   inference on set variables, which may take arbitrarily long to converge.
867
868 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
869 01-Dec-89 14:05:10, Edit by Ram.
870   Added code to compute the type of set LET variables as the union of the types
871   of the initial value and the set values.
872
873 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/checkgen.lisp
874 01-Dec-89 12:11:57, Edit by Ram.
875   Added code to check to see if it is cheaper to check against the difference
876   between the proven type and the assertion.  If so, emit a check against the
877   negation of this difference.
878
879 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
880 01-Dec-89 09:04:37, Edit by Ram.
881   Wrote IR1 transforms for < and > that attempt to statically determine the
882   relationship using type information.
883
884 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/type.lisp
885 01-Dec-89 10:06:56, Edit by Ram.
886   Wrote TYPE-DIFFERENCE.
887
888 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
889 30-Nov-89 12:04:24, Edit by Ram.
890   Marked the error signalling funny functions as not returning by using
891   TRULY-THE NIL.  Formerly this was subverting type inference, since the
892   primitive was considered to return *.
893
894 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
895 30-Nov-89 11:52:27, Edit by Ram.
896   Made SUBSTITUTE-CONTINUATION-USES do a REOPTIMIZE-CONTINUATION on the New
897   continuation so that we realize we need to recompute its type, etc.  This was
898   seriously crippling type inference.  It probably came unglued in let
899   conversion when we changed over to using the general substitute function.
900
901 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
902 30-Nov-89 11:31:00, Edit by Ram.
903   Changed FIND-FREE-VARIABLE to find the type of constants having values with
904   CTYPE-OF, rather than using INFO VARIABLE TYPE.  This way we find a good type
905   for all constants, without interacting with the vagaries of environment query.
906
907 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
908 30-Nov-89 10:50:37, Edit by Ram.
909 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/locall.lisp
910 29-Nov-89 13:14:40, Edit by Ram.
911   Moved merging of tail sets from CONVERT-CALL to IR1-OPTIMIZE-RETURN.  The old
912   code wasn't working because IR1 optimizations (such as deleting local EXITs)
913   could cause a local call to be tail-recursive yet the function would never
914   get added to the tail set because it had already been converted.
915
916   Inaccurate computation of the tail sets resulted in bad code problems, since
917   functions were returning in ways not expected by their callers.
918
919   ### This code still isn't quite right, since IR1 optimization is supposed to
920   be optional.  One possible fix would be to do tail annotation in IR1
921   optimization, but then you would have to run IR1 optimize to get proper tail
922   recursion.  This might not be much of an issue, since we will probably always
923   want to do at least some IR1 optimization. 
924
925 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
926 27-Nov-89 12:35:17, Edit by Ram.
927   Fixed a braino in mask computation in the %DPB, %MASK-FIELD and
928   %DEPOSIT-FIELD transforms.
929
930 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/fndb.lisp
931 26-Nov-89 15:28:27, Edit by Ram.
932   Fixed MACRO-FUNCTION def to specify a result type of (OR FUNCTION NULL),
933   rather than just FUNCTION.  This was disabling the use of this function as a
934   predicate to test whether a symbol names a macro.  Also fixed the argument
935   order to REPLACE.
936
937 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
938 25-Nov-89 22:44:32, Edit by Ram.
939   Fixed RPLACx transforms to return the right value.
940
941 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/type.lisp
942 22-Nov-89 19:27:58, Edit by Ram.
943   Fixed the definition of STRING-CHAR so that it wouldn't seem to be a subtype
944   of STANDARD-CHAR.
945
946 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/seqtran.lisp
947 22-Nov-89 14:31:40, Edit by Ram.
948   In MAPPER-TRANSFORM, I seem to have inverted the sense of the exit test when
949   converting from CONSP to ENDP.
950
951 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
952 21-Nov-89 16:51:31, Edit by Ram.
953   Moved GTN before control analysis so that the IR2-Environment is allocated by
954   the time that control analysis runs.
955
956 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/control.lisp
957 21-Nov-89 16:38:24, Edit by Ram.
958   Moved to ADD-TO-EMIT-ORDER the adding of IR2-Blocks to the
959   IR2-ENVIRONMENT-BLOCKS.  This way, overflow blocks created by conflict
960   analysis will appear in this list.  TNs only live in overflow blocks were
961   being considered not to conflict with :ENVIRONMENT TNs.
962
963 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/stack.lisp
964 21-Nov-89 16:34:05, Edit by Ram.
965   Made DISCARD-UNUSED-VALUES make an IR2 block for the cleanup block and call
966   ADD-TO-EMIT-ORDER on it.  I think that if this code ever ran, it would have
967   died.  This code was tested at one point, so it was probably broken by the
968   move of control analysis to before all the other IR2 pre-passes.
969
970 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/tn.lisp
971 21-Nov-89 14:43:29, Edit by Ram.
972 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/gtn.lisp
973 21-Nov-89 14:51:36, Edit by Ram.
974   Wrote MAKE-WIRED-ENVIRONMENT-TN so that the save TNs for old-cont and
975   return-pc could be made environment-live.  Made ASSIGN-IR2-ENVIRONMENT pass
976   the environment to MAKE-xxx-SAVE-TN so that they could make environment-live
977   TNs.
978
979 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/assembler.lisp
980 20-Nov-89 08:58:31, Edit by Ram.
981   In NEW-LOGIOR-ARGUMENT, added code to check that the SB for :REGISTER
982   operands is really REGISTERS.
983
984 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
985 20-Nov-89 08:29:42, Edit by Ram.
986   In EMIT-MOVE, added code to emit a type error when moving between
987   incompatible TNs.  It seems that this can happen with functions (especially
988   funny functions) that don't return.  This seems like a good fix until we can
989   figure out how to hack the flow graph when there is a non-returning function.
990   [Incompatible moves may also happen if there is a compile-time type error and
991   the check is deleted due to unsafe policy, etc.]
992
993 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/fndb.lisp
994 17-Nov-89 15:06:51, Edit by Ram.
995   Changed %PUT's IR1 attributes from (FLUSHABLE) to (UNSAFE).
996
997 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
998 17-Nov-89 10:12:48, Edit by Ram.
999   Fixed some missing commas in SOURCE-TRANSFORM-TRANSITIVE that only affected
1000   LOGEQV.  Good thing nobody uses it...
1001
1002 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/vmdef.lisp
1003 16-Nov-89 09:42:37, Edit by Ram.
1004   Fixed previous fix to work when there is a more result.
1005
1006 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/vmdef.lisp
1007 15-Nov-89 13:57:36, Edit by Ram.
1008   In TEMPLATE-TYPE-SPECIFIER, if we use a values type for the result, make it
1009   &REST T to represent the vagueness of values count matching.
1010
1011 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
1012 15-Nov-89 09:57:48, Edit by Ram.
1013   Added missing source transform for LOGEQV, which was missed in the previous
1014   pass.  This required changing SOURCE-TRANSFORM-TRANSTIVE, since that was
1015   already a source transform for LOGEQV.  It's a good thing I left in *both*
1016   checks for broken interpreter stubs.
1017
1018 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
1019 14-Nov-89 10:41:51, Edit by Ram.
1020   Added source transforms for zillions of trivial logic operations that were
1021   missing.
1022
1023 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
1024 14-Nov-89 10:43:24, Edit by Ram.
1025   In %DEFUN, added the presence of an IR2-CONVERT methods to the list of things
1026   that inhibits substitution of the actual definition for existing references.
1027
1028 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
1029 13-Nov-89 12:21:52, Edit by Ram.
1030   Added source transforms for RPLACA, RPLACD.
1031
1032 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
1033 13-Nov-89 12:17:32, Edit by Ram.
1034   Moved the test of NODE-REOPTIMIZE out of FIND-RESULT-TYPE and into
1035   IR1-OPTIMIZE-RETURN.  This fixes a bug that was introduced when the clearing
1036   of NODE-REOPTIMIZE was moved to the start of the loop in IR1-OPTIMIZE-BLOCK.
1037   We were never recomputing the RETURN-RESULT-TYPE, since REOPTIMIZE was never
1038   set when we got to IR1-OPTIMIZE-RETURN.  With this fix, the previous change
1039   should detect broken interpreter stubs.
1040
1041 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1final.lisp
1042 12-Nov-89 13:05:49, Edit by Ram.
1043   Made CHECK-FREE-FUNCTION give a note when it sees a function that doesn't
1044   return (return type is NIL.)  I thought that this would detect broken
1045   interpreter stubs.  It turns out not to, but still seems like a useful
1046   feature.
1047
1048 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
1049 13-Nov-89 11:47:30, Edit by Ram.
1050   Made LTN-ANALYZE-KNOWN-CALL give a warning when we are unable to find a
1051   template for a known call where there call is to the current function.  This
1052   should tell result in a warning when we compile an interpreter stub for a
1053   function that the code sources assume is implemented primitively, but the
1054   compiler doesn't recognize.
1055
1056 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
1057 12-Nov-89 10:54:25, Edit by Ram.
1058   Oops...  When doing unsafe global function references, use
1059   FAST-SYMBOL-FUNCTION, not FAST-SYMBOL-VALUE.
1060
1061 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
1062 10-Nov-89 13:37:15, Edit by Ram.
1063   Oops...  Have to dump package frobbing forms specially for cold load.  This
1064   might want to be on a switch someday.  Instead of actually compiling them, we
1065   dump them as lists so that Genesis can eval them.  The normal top-level form
1066   compilation must be suppressed, since the package system isn't initialized at
1067   the time that top-level forms run.
1068   
1069 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/dfo.lisp
1070 05-Nov-89 13:45:11, Edit by Ram.
1071   Changed FIND-INITIAL-DFO to return top-level components at the end of the
1072   list so that in a block compilation all the functions will be compiled before
1073   we compile any of the top-level references to them.
1074
1075 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/envanal.lisp
1076 01-Nov-89 11:57:58, Edit by Ram.
1077   Changed Find-Non-Local-Exits back to a loop over all the blocks in the
1078   component, rather than trying to find the exits from the Lambda-Entries.
1079   Unfortunately, the latter is not possible, since the exit continuation may
1080   become deleted if it isn't used.  A possible way to avoid this search would
1081   be to make the Entry node have a list of all the Exit nodes, rather than the
1082   continuations.
1083
1084 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/vop.lisp
1085 31-Oct-89 12:45:20, Edit by Ram.
1086   Allow (SETF xxx) for the Entry-Info-Name, in addition to strings and symbols.
1087
1088 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
1089 31-Oct-89 12:53:37, Edit by Ram.
1090   In Find-Source-Context, only take the car of list first args to DEFxxx forms
1091   when the form name is in a special list.  This list initially only contains
1092   DEFSTRUCT.
1093
1094 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
1095 31-Oct-89 12:23:57, Edit by Ram.
1096   In Convert-More-Entry, made the temporaries for the keyword and value
1097   ignorable so that we don't get "defined but never read" warnings when there
1098   aren't any keywords specified.
1099
1100 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
1101 31-Oct-89 12:11:24, Edit by Ram.
1102   Fixed Process-Declarations to correctly deal with pervasive special
1103   declarations.  Previously, a warning would be given if the varible was only
1104   locally declared, and not globally known.  Also an assertion failure would
1105   have resulted (rather than a Compiler-Error) when a constant was declared
1106   pervasively special.
1107
1108 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
1109 31-Oct-89 11:39:54, Edit by Ram.
1110   Changed Reference-Constant so that it doesn't call Reference-Leaf anymore,
1111   and made the source be an explicit argument.  Changed Reference-Leaf to just
1112   use the Leaf-Name as source, rather than (sometime incorrectly) inferring the
1113   source for constants.
1114
1115 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
1116 20-Oct-89 15:56:56, Edit by Ram.
1117   In the :UNKNOWN and :UNUSED cases of CONTINUATION-RESULT-TNS, always return
1118   TNs of the specified result types, rather than sometimes returing T TNs.
1119   This is some sort of compensation for our new belief that VOPS returining
1120   non-T results need not be prepared to accept T TNs.  How many other places
1121   does this need to be fixed?
1122
1123 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/stack.lisp
1124 17-Oct-89 12:36:38, Edit by Ram.
1125   In FIND-PUSHED-CONTINUATIONS, fix the check for pushes coming before pops.
1126   You can compare nodes and continuations all day without finding any that are
1127   EQ.
1128
1129 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/macros.lisp
1130 17-Oct-89 11:44:40, Edit by Ram.
1131   Flushed the code in DEFTRANSFORM that was creating a THE out of the CONT's
1132   asserted type.  This should be unnecessary, and was made incorrect by the
1133   continuation representation change.  If the node was the last in a block and
1134   the value wasn't used, then the value would be asserted to be of the NIL
1135   type, resulting in a warning. 
1136
1137 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
1138 17-Oct-89 10:51:27, Edit by Ram.
1139   Changed Compiler-Mumble to tell whether an error message precedes from
1140   *last-format-string*, rather than *last-source-context*, since the last
1141   message might not have had a source context.  Made *compiler-error-output* be
1142   globally bound to a synonym stream for *error-output* so that calls to
1143   Compiler-Error outside of the compiler will more or less work.
1144
1145 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/checkgen.lisp
1146 16-Oct-89 15:23:13, Edit by Ram.
1147   In Convert-Type-Check, set the start & end cleanups of the new block to the
1148   *start* cleanup of the Dest's block, and not the end cleanup.  Not sure this
1149   is really more correct, but it fixes one case.
1150
1151 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/pack.lisp
1152 12-Oct-89 14:05:43, Edit by Ram.
1153   Added a before-GC hook that flushes the per-SB conflict data structure
1154   whenever they aren't being used.  This should prevent megabyte-plus conflicts
1155   information from persisting after it is needed, and also reduce the cost of
1156   Init-SB-Vectors, since the vectors will stay smaller.
1157
1158 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
1159 11-Oct-89 11:37:16, Edit by Ram.
1160   Made Propagate-Function-Change ignore references that are :Notinline.
1161
1162 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
1163 10-Oct-89 23:28:33, Edit by Ram.
1164   In Print-Error-Message, use the *Current-Form* as the source form whenever if
1165   is non-NIL, even if there is a node in *Compiler-Error-Context*.  This way,
1166   messages during IR1 conversion of a transform will be more useful.
1167
1168 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
1169 10-Oct-89 22:47:56, Edit by Ram.
1170   Now Delete-Optional-Dispatch must be prepared for the main entry to be a let
1171   rather than just being deleted or a normal function, since let conversion is
1172   being triggered here.
1173
1174 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/locall.lisp
1175 09-Oct-89 17:56:35, Edit by Ram.
1176   Fixed Convert-Call to change the combination kind before changing the ref
1177   leaf so that the call will appear local at that time.  This allows let
1178   conversion to happen when we replace a optional dispatch with one of its EPs.
1179
1180 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
1181 09-Oct-89 17:34:42, Edit by Ram.
1182   Fixed Delete-Optional-Dispatch to call Maybe-Let-Convert if we notice that a
1183   former EP lambda has exactly one reference.
1184
1185 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
1186 04-Oct-89 19:05:16, Edit by Ram.
1187   In IR1-Optimize-Combination, we must be prepared for the derive-type method
1188   to return NIL.  This will happen if the arglist is incompatible with the
1189   call (and if the optimizer explicitly returns NIL.)
1190
1191 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/macros.lisp
1192 04-Oct-89 19:22:17, Edit by Ram.
1193   Check-Transform-Keys and Check-Keywords-Constant were checking the second
1194   (value) part of the key/value pair, so optimizers would never run if any
1195   keywords were supplied.
1196
1197 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
1198 04-Oct-89 15:39:27, Edit by Ram.
1199   When I changed Propagate-Local-Call-Args to clear the Continuation-Reoptimize
1200   flags, I forgot that a local call continuation can be NIL (for an unused
1201   argument.) 
1202
1203 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
1204 04-Oct-89 11:05:48, Edit by Ram.
1205   Oops...  In Propagate-Function-Change, we have to use
1206   Continuation-Derived-Type rather than Continuation-Type now that the latter
1207   changes function types to FUNCTION.
1208
1209 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/globaldb.lisp
1210 27-Sep-89 14:24:04, Edit by Ram.
1211   Exported basic interface (but not environment vars, pending some abstract
1212   interface to environment manipulation.)  Changed class and type names to be
1213   represented as strings at run time to avoid package lossage.  Changed names
1214   to be arbitrary equal objects (to allow setf functions).
1215
1216 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
1217 21-Sep-89 10:12:38, Edit by Ram.
1218   Changed OK-Result-TN to indicate need for a coercion if the result is unboxed
1219   and the TN is boxed.  This prevents load-TN packing from getting confused due
1220   to there being no intersection between the SC restriction and the types
1221   allowed by the SC.  This would happen when the result was restricted to a
1222   non-descriptor SC.
1223
1224 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
1225 21-Sep-89 10:39:04, Edit by Ram.
1226   Changed Restrict-Descriptor-Args to restrict the argument only when a
1227   coercion was required.  This allows immediate objects to be passed to
1228   templates in unboxed registers.
1229
1230 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
1231 30-Aug-89 14:37:36, Edit by Ram.
1232   Changed Change-Leaf-Ref (and hence Substitute-Leaf) to use Derive-Node-Type
1233   on the Ref with the Leaf-Type so that substituting a variable causes the new
1234   type to be noticed. 
1235
1236 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
1237 30-Aug-89 14:30:44, Edit by Ram.
1238   Changed IR1-Optimize-Block and all the combination optimization code to clear
1239   optimize flags *before* optimizing rather than after, so that a node will be
1240   reoptimized if necessary.
1241
1242 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/vmdef.lisp
1243 29-Aug-89 09:20:18, Edit by Ram.
1244   Made Template-Type-Specifier hack *'s in operand type restrictions.
1245
1246 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
1247 24-Aug-89 13:55:04, Edit by Ram.
1248   In LTN-Analyze-MV-Call, have to annotate the continuations in reverse order,
1249   now that the IR2-Block-Popped isn't built in reverse order.
1250
1251 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
1252 24-Aug-89 13:25:14, Edit by Ram.
1253   In LTN-Analyze, eliminated assertion that the block containing the use of a
1254   unknown-values continuation is not already in the
1255   IR2-Component-Values-Generators.  It is possible for a single block to
1256   contain uses of several MV continuations that have their DEST in a different
1257   block.
1258
1259 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/dfo.lisp
1260 22-Aug-89 12:12:49, Edit by Ram.
1261   Made Find-Initial-DFO-Aux call Walk-Home-Call-Graph on each block before
1262   walking the successors.  Walk-Home-Call-Graph is a new function that looks at
1263   the current block's home lambda's bind block to see if it is in a different
1264   component.  We need to do this to ensure that all code in a given environment
1265   ends up in the same component, since any successor might be a non-local exit
1266   (into a different environment.)  
1267
1268 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
1269 18-Aug-89 15:46:51, Edit by Ram.
1270   Flushed the (locally (declare (optimize (safety 0))) ...) around the body of
1271   Unwind-Protect's expansion.  I think that this was trying to suppress some
1272   type checking of the MV-Bind, but it was also causing unsafe compilation of
1273   the protected form.  If we really need this, it must be but back some other
1274   way.
1275
1276 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
1277 18-Aug-89 15:11:13, Edit by Ram.
1278   Oops...  We can't use Label-Offset in the generators for Make-Catch-Block,
1279   &c.  Instead, we use a :Label load-time constant.  The target argument to the
1280   VOPs is now a normal integer argument, rather than a label in the
1281   codegen-info.
1282
1283 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
1284 18-Aug-89 14:13:51, Edit by Ram.
1285   In LTN-Analyze-Return, don't annotate NLX continuations as :Unused so that
1286   the NLX entry code doesn't have to worry about this case.
1287
1288 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
1289 18-Aug-89 13:45:19, Edit by Ram.
1290   In Reoptimize-Continuation, don't do anything if the continuation is deleted.
1291
1292 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
1293 17-Aug-89 11:17:13, Edit by Ram.
1294   Oops...  In Node-Ends-Block, have to set the Block-Start-Uses, now that it is
1295   always supposed to hold the uses of block starts.
1296
1297 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
1298 10-Aug-89 10:49:01, Edit by Ram.
1299   Changed Find-Template to intersect the Node-Derived-Type with the
1300   Continuation-Asserted-Type rather than using the Continuation-Derived-Type in
1301   the case where we are allowed to use the result type assertion.  This works
1302   better when the continuation has multiple uses. 
1303
1304 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/typetran.lisp
1305 24-Jul-89 14:25:09, Edit by Ram.
1306   Fixed Source-Transform-Union-Typep to check that there really is a MEMBER
1307   type in the union, instead of assuming there is whenever LIST is a subtype.
1308   This was losing on (OR SYMBOL CONS).
1309
1310 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/assembler.lisp
1311 19-Jul-89 14:36:10, Edit by Ram.
1312   Made Init-Assembler nil out the Info slots in all the fixups so that the
1313   fixup freelist doesn't hold onto the entire IR.  More storage allocation
1314   lossage has been caused by the explicit freelists in the assembler than
1315   anything else.
1316
1317 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/macros.lisp
1318 12-Jul-89 15:34:09, Edit by Ram.
1319   Changed defining macros to stick the actual function object into the
1320   Function-Info &c to be compatible with the new definition of the Function
1321   type.
1322
1323 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
1324 12-Jul-89 12:57:24, Edit by Ram.
1325   Fixed goof in IR2-Convert-Local-Unknown call, where it was converting the
1326   result TN list to TN-refs twice.  For some reason, this was dying with a
1327   highly mysterious error in Reference-TN-List.  Perhaps this file was last
1328   compiled with an unsafe policy? 
1329
1330 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/life.lisp
1331 11-Jul-89 19:29:05, Edit by Ram.
1332   In Propagate-Live-TNs, when we convert a :Read-Only conflict to :Live, we
1333   null the entry in the local TNs to represent the elimination of local
1334   conflict information.
1335
1336 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
1337 11-Jul-89 18:46:17, Edit by Ram.
1338   Changed %Defun to only substitute the functional when it isn't notinline and
1339   isn't known to have any templates or transforms.  The latter constraint fixes
1340   big problems with interpreter stubs.
1341
1342 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
1343 05-Jul-89 22:11:10, Edit by Ram.
1344   In Return-From, put back code that made Cont start a block so that Cont will
1345   have a block assigned before IR1-Convert.  So that's why that was there.
1346
1347 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
1348 05-Jul-89 18:07:48, Edit by Ram.
1349   In Annotate-Unknown-Values-Continuation, make a safety note when we delete a
1350   check and the policy is safe.
1351
1352 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
1353 05-Jul-89 17:43:18, Edit by Ram.
1354   In IR1-Optimize-Exit, don't propagate Cont's type to the Value, since this
1355   moves checking of the assertion to the Exit, which is a bad place.
1356
1357 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
1358 05-Jul-89 15:10:34, Edit by Ram.
1359   In Emit-Return-For-Locs, changed the test for when to use known return
1360   convention from External-Entry-Point-P to *not* External-Entry-Point-P.
1361
1362 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
1363 05-Jul-89 14:41:55, Edit by Ram.
1364   Oops...  We need a UWP-Entry VOP for Unwind-Protect entries to force random
1365   live TNs onto the stack.  It doesn't actually do anything, but specifies the
1366   passing locations as results so that they aren't forced to the stack.
1367
1368 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
1369 03-Jul-89 16:46:09, Edit by Ram.
1370 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/stack.lisp
1371 03-Jul-89 16:39:53, Edit by Ram.
1372   Changed unknown values hackery to ignore non-local exits.  We don't record
1373   NLX uses of unknown-values continuations as generators, and we stop
1374   our graph walk when we hit the component root.  These changes were
1375   necessitated by the decision to make %NLX-Entry no longer use the values
1376   continuation. 
1377
1378 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/pack.lisp
1379 03-Jul-89 11:31:36, Edit by Ram.
1380   Fixed one-off error in Pack-Wired-TN's determination of when we have to grow
1381   the SB, and fixed it to handle SC-Element-Size /= 1 while I was at it.
1382
1383 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/locall.lisp
1384 29-Jun-89 12:02:16, Edit by Ram.
1385   In Local-Call-Analyze-1, moved the test for the reference being by the
1386   Basic-Combination-Fun to around the entire branch that attempts to convert,
1387   rather than immediately around the call to Convert-Call-If-Possible.  Before,
1388   a closure arg to a local function wouldn't get an XEP.
1389
1390   Also, changed Reference-Entry-Point to ignore references to :Cleanup and
1391   :Escape functions.
1392
1393 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/envanal.lisp
1394 28-Jun-89 16:57:12, Edit by Ram.
1395   In Emit-Cleanups, if we find there is no cleanup code, then do nothing,
1396   instead of inserting a cleanup block holding NIL.  This was causing blocks
1397   with no non-local uses to inhibit tail-recursion.
1398
1399 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/checkgen.lisp
1400 28-Jun-89 14:03:45, Edit by Ram.
1401   It finally happened.  A paren error that resulted in mysterious lossage.  In
1402   this case, the body of the loop in Make-Type-Check-Form was moved out of the
1403   loop, and always executed once.  The meant that only one value would ever be
1404   checked or propagated on to the original receiver.
1405
1406 /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/pack.lisp
1407 28-Jun-89 13:20:59, Edit by Ram.
1408   Oops...  I introduced a bug in the previously correct argument case of
1409   Load-TN-Conflicts-In-SB.  We terminate the loop when we reach the first
1410   reference, not the first argument.  This caused conflicts with temporaries
1411   with lives beginning at :Load to be ignored.
1412
1413 /usr1/lisp/compiler/pack.lisp, 23-Jun-89 15:54:32, Edit by Ram.
1414   Fixed logic in Load-TN-Conflicts-In-SB.  We weren't recognizing conflicts
1415   with other argument/result TNs that had already been packed.  This bug would
1416   only show up with multiple result load TNs.  The argument case was actually
1417   correct, but was asymmetrical with the result case, and only worked becase
1418   argument load TNs were packed in evaluation order.
1419
1420 /usr1/lisp/compiler/locall.lisp, 20-Jun-89 14:53:51, Edit by Ram.
1421   In Merge-Tail-Sets, quietly do nothing if the called function has no tail set
1422   (doesn't return), rather than dying.
1423
1424 /usr1/lisp/compiler/globaldb.lisp, 14-Jun-89 10:14:04, Edit by Ram.
1425   Flushed Top-Level-P attribute.
1426
1427 /usr1/lisp/compiler/macros.lisp, 14-Jun-89 10:14:03, Edit by Ram.
1428   Allow a doc string in Def-IR1-Translator (made the FUNCTION documentation).
1429   Removed support for Top-Level-P attribute.
1430
1431 /usr1/lisp/compiler/ir1opt.lisp, 22-May-89 15:30:59, Edit by Ram.
1432 /usr1/lisp/compiler/ir1util.lisp, 22-May-89 15:22:17, Edit by Ram.
1433   Undid last change to Node-Ends-Block and Join-Blocks.  This was fucking up
1434   big time, since it messed with the continuation even when it was a block
1435   start.
1436
1437 /usr1/lisp/compiler/locall.lisp, 22-May-89 13:24:48, Edit by Ram.
1438   Changed Local-Call-Analyze to maintain the Component-New-Functions exactly up
1439   to date, only popping a function off exactly as it analyzes it.  This way, a
1440   lambda is always referenced either in the Lambdas or New-Functions (except
1441   during a brief window), so we can do consistency checking during local call
1442   analysis.
1443
1444 /usr1/lisp/compiler/ir1util.lisp, 19-May-89 10:05:28, Edit by Ram.
1445 /usr1/lisp/compiler/ir1opt.lisp, 19-May-89 10:05:27, Edit by Ram.
1446   In Flush-Dest and Reoptimize-Continuation, take care not to assume that the
1447   Continuation-Block is an undeleted block.  Instead, we pick up the component
1448   to reoptimize from the uses or Dest.
1449   
1450 /usr1/lisp/compiler/ir2tran.lisp, 17-May-89 12:48:35, Edit by Ram.
1451   In Move-Results-Coerced and Move-Results-Checked, subtract Nsrc from Ndest,
1452   rather than the other way around.
1453
1454 /usr1/lisp/compiler/control.lisp, 15-May-89 11:53:36, Edit by Ram.
1455   Made Control-Analyze walk XEPs first to eliminate the idiocy of never getting
1456   the drop-through in components with only one EP.
1457
1458 /usr1/lisp/compiler/ir1util.lisp, 13-May-89 15:23:28, Edit by Ram.
1459   And similarly, in Node-Ends-Block, move the last continuation to the new
1460   block when its block is the old block.
1461
1462 /usr1/lisp/compiler/ir1opt.lisp, 13-May-89 15:02:31, Edit by Ram.
1463   In Join-Blocks, move the Cont of the Last to Block1 when it's block is
1464   currently Block2.  This way, the continuation isn't left pointing at some
1465   random deleted block.
1466
1467 /usr1/lisp/compiler/ir1util.lisp, 14-Mar-89 10:12:04, Edit by Ram.
1468   Also, in Delete-Block, when we delete a bind, call Delete-Lambda, rather
1469   than trying to roll our own.
1470
1471 /usr1/lisp/compiler/ir1util.lisp, 14-Mar-89 10:07:01, Edit by Ram.
1472   In Delete-Lambda, we must remove a let from its home's lets.
1473
1474 /usr1/lisp/compiler/ir1util.lisp, 14-Mar-89 09:34:54, Edit by Ram.
1475   In Unlink-Node, the assertion that the start and end cleanups are the same
1476   must use Find-Enclosing-Cleanup, rather than just comparing the values
1477   directly.
1478
1479 /usr1/lisp/compiler/ir2tran.lisp, 14-Mar-89 08:26:04, Edit by Ram.
1480   Wrote Flush-Tail-Transfer and made people who do TR stuff use it.  This
1481   function deletes the link between the blocks for a TR node and the block
1482   containing the return node.  We have to do this so that lifetime analysis
1483   doesn't get confused when there are TNs live at the return node, but some
1484   predecessors of the return don't write the TNs because the return some other
1485   way.
1486
1487 /usr1/lisp/compiler/srctran.lisp, 10-Mar-89 19:11:51, Edit by Ram.
1488   Made the transforms into %typep always pass until we do type predicates for
1489   real.
1490
1491 /usr1/lisp/compiler/assembler.lisp, 10-Mar-89 18:56:45, Edit by Ram.
1492   Fixed Macrolet of Emit-Label in Def-Branch to have a paren in the right
1493   place.  As written, it expanded into its argument, and didn't enclose any
1494   code anyway.  But I think this would only affect instructions that both were
1495   a branch and had a load-time fixup.
1496
1497 /usr1/lisp/compiler/assembler.lisp, 10-Mar-89 18:47:50, Edit by Ram.
1498   Added code to Def-Branch in the choose function that calls
1499   Undefined-Label-Error when the the label isn't defined.  This function uses
1500   the *assembler-nodes* source info and the branch instruction location to
1501   print the source node responsible for generating the bogus branch.
1502
1503 /usr1/lisp/compiler/assembler.lisp, 10-Mar-89 17:59:51, Edit by Ram.
1504   Made Gen-Label initalize the Elsewhere-P slot to :Undecided.  Also made
1505   Merge-Code-Vectors ignore labels whose Elsewhere-P is undecided.  The theory
1506   is that it should be o.k. to make labels that aren't emitted as long as you
1507   don't reference them.  Of course, I will probably find that the losing labels
1508   are referenced.  Renamed the Location slot in Label to %Location, and defined
1509   Label-Location to filter out undefined labels.
1510
1511 /usr1/lisp/compiler/ltn.lisp, 10-Mar-89 17:43:39, Edit by Ram.
1512   In LTN-Analyze-Return, we must check for the Return-Info-Count being :Unknown
1513   rather than null when we want to know if a fixed number of values are
1514   returned.
1515
1516 /usr1/lisp/compiler/ir2tran.lisp, 07-Mar-89 18:13:12, Edit by Ram.
1517   In the Values-List IR2 convert method, we must also handle :Unused
1518   continuations, only punting when the continuation is :Fixed.  When called
1519   with a TR result continuation, we have to emit the unknown-values return
1520   ourself.  Otherwise, there isn't any way to write the Values-List function.
1521
1522 /usr1/lisp/compiler/ir2tran.lisp, 06-Mar-89 21:25:12, Edit by Ram.
1523   Make-Closure takes the number of closure vars and the function-entry, rather
1524   than the other way around.
1525
1526 /usr1/lisp/compiler/ir2tran.lisp, 06-Mar-89 20:48:29, Edit by Ram.
1527   And always pass 1 as the number of symbols to Unbind, rather than 0.
1528
1529 /usr1/lisp/compiler/ir2tran.lisp, 06-Mar-89 20:43:47, Edit by Ram.
1530   Args to the Bind miscop are (Value, Symbol), and not the other way around.
1531
1532 /usr1/lisp/compiler/ir2tran.lisp, 06-Mar-89 19:09:16, Edit by Ram.
1533   In IR2-Convert-IF, we have to negate the sense of the test when using an EQ
1534   NIL check.  Made IR2-Convert-Conditional take an additional not-p argument.
1535
1536 /usr1/lisp/compiler/ctype.lisp, 06-Mar-89 17:22:40, Edit by Ram.
1537   In Definition-Type, when we make the Function-Type, include the list of
1538   keyword info that we have built.
1539
1540 /usr1/lisp/compiler/ir2tran.lisp, 02-Mar-89 18:16:40, Edit by Ram.
1541   In Init-XEP-Environment, when we are checking for whether there is a more
1542   arg, look at the entry-function rather than the XEP.
1543
1544 /usr1/lisp/compiler/main.lisp, 01-Mar-89 15:58:32, Edit by Ram.
1545   Made Clear-Stuff clear the Finite-SB-Live-TNs in all SBs.  Maybe this will
1546   nuke some garbage.
1547
1548 /usr1/lisp/compiler/pack.lisp, 01-Mar-89 15:50:41, Edit by Ram.
1549   In Grow-SC, fill the Finite-SB-Live-TNs vector with NILs before we lose it so
1550   that if it is statically allocated, it won't hold onto garbage.  But this
1551   shouldn't make any difference, since we never use the Live-TNs in unbounded
1552   SBs.
1553
1554 /usr1/lisp/compiler/locall.lisp, 01-Mar-89 01:15:22, Edit by Ram.
1555   In Make-XEP-Lambda, in the lambda case, we now include an ignore declaration
1556   for the nargs var when policy suppresses the argument count check.
1557
1558 /usr1/lisp/compiler/ir1util.lisp, 28-Feb-89 19:39:56, Edit by Ram.
1559   Also clear :Optional kind for the Main-Entry in Delete-Optional-Dispatch.
1560
1561 /usr1/lisp/compiler/locall.lisp, 28-Feb-89 19:31:07, Edit by Ram.
1562   Changed Local-Call-Analyze so that it pushes new lambdas on the
1563   Component-Lambdas before it does any call analysis or let conversion.  This
1564   gets the normal consistency maintenance code to handle removal of deleted
1565   and let lambdas.  Before, there was a local list of new lambdas that could
1566   become inconsistent.
1567
1568 /usr1/lisp/compiler/ir1tran.lisp, 28-Feb-89 18:12:15, Edit by Ram.
1569   Instead of trying to set the :Optional kind everywhere that hairy lambda
1570   conversion creates a lambda, we wait until we are done and set the kind only
1571   the lambdas that are actually e-ps.  This was causing internal lambdas that
1572   weren't e-ps to be marked as optional.  The fix is also clearer, and causes
1573   less complication in the already-hairy code.
1574
1575 /usr1/lisp/compiler/ir1tran.lisp, 24-Feb-89 15:26:29, Edit by Ram.
1576   Changed Optional-Dispatch stuff to set the Functional-Entry-Function of the
1577   :Optional lambdas to the result Optional-Dispatch structure.
1578
1579 /usr1/lisp/compiler/ir1opt.lisp, 24-Feb-89 14:46:57, Edit by Ram.
1580   In IR1-Optimize, changed test for being in a deleted lambda to just look at
1581   the block-lambda, rather than at it's home.  The result should be the same.
1582
1583 /usr1/lisp/compiler/entry.lisp, 24-Feb-89 14:30:37, Edit by Ram.
1584   Changed Compute-Entry-Info to use the XEP's environment to determine whether
1585   the function is a closure.  The result should be the same, but is more easily
1586   obtained.
1587
1588 /usr1/lisp/compiler/ir1util.lisp, 24-Feb-89 14:26:58, Edit by Ram.
1589   Deleted definition of Find-XEP-Call, since this doesn't make sense anymore.
1590
1591 /usr1/lisp/compiler/debug.lisp, 24-Feb-89 14:21:09, Edit by Ram.
1592   Flushed permission of random wired live TNs at the start of an XEP.
1593
1594 /usr1/lisp/compiler/debug.lisp, 24-Feb-89 14:18:01, Edit by Ram.
1595   In Check-Block-Successors, flushed permission of random successor count in
1596   XEPs.
1597
1598 /usr1/lisp/compiler/ir2tran.lisp, 24-Feb-89 14:14:12, Edit by Ram.
1599   Flushed check for being the bind block for an XEP that inhibited emission of
1600   a block-finishing branch in Finish-IR2-Block.  Control flow is now normal in
1601   XEPs, so we don't want to randomly flush branches.
1602
1603 /usr1/lisp/compiler/ir1opt.lisp, 24-Feb-89 14:07:52, Edit by Ram.
1604   Flushed check for being in an XEP in Join-Successor-If-Possible.  Now that
1605   argument count dispatching is done explicitly, there is no need to force the
1606   call to a block boundry (for easy location).  Also, we are getting more
1607   complex code in the XEP, making block merging a desirable optimization.
1608
1609 /usr1/lisp/compiler/ir1util.lisp, 24-Feb-89 14:03:35, Edit by Ram.
1610   Fixed code in Delete-Lambda that was trying to notice when we are deleting
1611   the the XEP for an optional dispatch.  The test was right, but the action was
1612   wrong: it was setting the Functional-Entry-Function for all the e-p's to NIL,
1613   yet they were already NIL.  Instead, we call Delete-Optional-Dispatch, which
1614   deletes the unreferenced e-p's.
1615
1616 /usr1/lisp/compiler/ir1tran.lisp, 23-Feb-89 20:17:21, Edit by Ram.
1617   Wrapped a (locally (declare (optimize (safety 0))) ...) around the body of
1618   the loop created in Convert-More-Entry so that no type checking is done on
1619   the fixnum arithmetic.
1620
1621 /usr1/lisp/compiler/ir2tran.lisp, 23-Feb-89 14:34:49, Edit by Ram.
1622   Flushed most of the hair associated with the %Function-Entry funny function.
1623   What remains is now in Init-XEP-Environment, which is called by
1624   IR2-Convert-Bind when the lambda is an XEP.
1625
1626 /usr1/lisp/compiler/gtn.lisp, 23-Feb-89 14:24:20, Edit by Ram.
1627   Flushed some special-casing of XEPs that is no longer needed now that XEP's
1628   have args.  Also, allocation of argument passing locations in XEPs is now
1629   more similar to the non-XEP case: we don't allocate passing locations for
1630   unused arguments.
1631
1632 /usr1/lisp/compiler/locall.lisp, 22-Feb-89 15:26:50, Edit by Ram.
1633   Change handling of XEPs.  Most of the action in XEPs is now represented by
1634   explicit IR1 in the XEP: argument dispatching is done by a COND, etc.
1635   Instead of using funny functions such as %XEP-ARG to access the passed
1636   arguments, NARGS and all the positional arguments are passed as arguments to
1637   the XEP (with garbage defaults for unsupplied args).  The code in the XEP
1638   just references these variables.
1639
1640   This simplifies creation of the XEP, since we can just cons up a lambda form
1641   and convert it, instead of creating each XEP call by hand.  It also moves
1642   complexity out of IR2 conversion, since argument dispatching has already been
1643   implemented.
1644
1645 /usr1/lisp/compiler/ir2tran.lisp, 16-Feb-89 15:12:17, Edit by Ram.
1646   Fixed %XEP-Arg to use Move-Argument rather than just Move.
1647
1648 /usr1/lisp/compiler/node.lisp, 15-Feb-89 00:36:30, Edit by Ram.
1649   Made Functional specify :Defined and Function as the defaults for the
1650   Where-From and Type slots so that we know defined functions are in fact
1651   functions.
1652
1653 /usr1/lisp/compiler/ir1tran.lisp, 14-Feb-89 23:48:37, Edit by Ram.
1654   In %Defun translator, fixed the test for being at top level (and thus o.k. to
1655   substitute).  The sense was negated, but it was also broken so that it was
1656   always false, so the normal top-level thing happened anyway.
1657
1658 /usr1/lisp/compiler/ir1tran.lisp, 14-Feb-89 15:02:14, Edit by Ram.
1659   Wrote Leaf-Inlinep and changed uses to (cdr (assoc leaf *inlines*)) with the
1660   new function.  This means that global declarations will now affect function
1661   references.
1662
1663 /usr1/lisp/compiler/main.lisp, 13-Feb-89 12:19:39, Edit by Ram.
1664   Call Init-Assembler *before* Entry-Analyze so that we don't emit labels when
1665   the assembler isn't initialized.
1666
1667 /usr1/lisp/compiler/ltn.lisp, 02-Feb-89 15:41:40, Edit by Ram.
1668   Changed Annotate-Function-Continuation not to clear Type-Check unless the
1669   policy is unsafe.  Changed LTN-Default-Call to take a policy argument and
1670   pass it through.
1671
1672 /usr1/lisp/compiler/ir1tran.lisp, 02-Feb-89 15:16:32, Edit by Ram.
1673   Changed IR1-Convert-Combination-Args and the translator for
1674   Multiple-Value-Call to assert that the function continuation yeilds a value
1675   of type Function.
1676
1677 /usr1/lisp/compiler/assembler.lisp, 31-Jan-89 14:13:54, Edit by Ram.
1678 /usr1/lisp/compiler/codegen.lisp, 31-Jan-89 14:13:53, Edit by Ram.
1679   Added a function version of Emit-Label that can be called outside of
1680   Assemble.  Used this in Generate-Code so that we don't have to worry about
1681   faking the current node for Assemble, when we aren't emitting any code
1682   anyway.
1683
1684 /usr1/lisp/compiler/assembler.lisp, 31-Jan-89 13:56:08, Edit by Ram.
1685   In Init-Assembler, Null out the Assembler-Node-Names in *Assembler-Nodes* so
1686   that we don't hold onto old garbage.  Also zero the code vectors so that
1687   unitialized bytes always come up zero.
1688
1689 /usr1/lisp/compiler/ir2tran.lisp, 31-Jan-89 12:37:21, Edit by Ram.
1690   Fixed IR2-Convert-Local-Unknown-Call to use Standard-Value-TNs to get the
1691   result TNs, rather than calling incorrectly calling Make-Standard-Value-TNs
1692   on a continuation.
1693
1694 /usr1/lisp/compiler/ir1opt.lisp, 30-Jan-89 23:28:08, Edit by Ram.
1695   Changed Check-Types to not set Type-Check when the asserted type is T and the
1696   derived type is *.
1697
1698 /usr1/lisp/compiler/ir1util.lisp, 30-Jan-89 19:36:09, Edit by Ram.
1699   Changed Delete-Ref not to call Delete-Lambda or Delete-Optional-Dispatch when
1700   the functional is already deleted.
1701
1702 /usr1/lisp/compiler/locall.lisp, 30-Jan-89 19:23:26, Edit by Ram.
1703   Convert-MV-Call must add the ep to the Lambda-Calls for the home lambda (as
1704   in Convert-Call) so that DFO can detect the control transfer implicit in
1705   local call.
1706
1707 /usr1/lisp/compiler/ir1util.lisp, 30-Jan-89 18:30:27, Edit by Ram.
1708   Changed Delete-Optional-Dispatch to call Delete-Lambda on all entry points
1709   with no references.
1710
1711 /usr1/lisp/compiler/ir1util.lisp, 30-Jan-89 17:04:33, Edit by Ram.
1712   Changed Delete-Lambda to mark the Lambda's lets as :Deleted as well,
1713   guaranteeing that all code in the environment of a deleted lambda is deleted
1714   (without having to do flow analysis).
1715
1716 /usr1/lisp/compiler/locall.lisp, 30-Jan-89 16:37:31, Edit by Ram.
1717   Changed Convert-MV-Call not to call Let-Convert, since the last entry may
1718   have spurious references due to optional defaulting code that hasn't been
1719   deleted yet.  Changed Maybe-Let-Convert to set the Functional-Kind of the
1720   lambda to :Let or :MV-Let, depending on the combination type.
1721
1722 /usr1/lisp/compiler/locall.lisp, 30-Jan-89 15:35:52, Edit by Ram.
1723   Changed Merge-Cleanups-And-Lets to use Find-Enclosing-Cleanup to determine
1724   whether there is any cleanup in effect at the call site, rather than directly
1725   using the Block-End-Cleanup.
1726
1727 /usr1/lisp/compiler/ir1util.lisp, 30-Jan-89 15:12:51, Edit by Ram.
1728   Changed Node-Ends-Block to set the start and end cleanups of the *new* block
1729   (not the old) to the ending cleanup of the old block.  This is clearly more
1730   right, but may not be totally right.
1731  
1732 /usr1/lisp/compiler/life.lisp, 27-Jan-89 17:09:01, Edit by Ram.
1733   Make Clear-Lifetime-Info always set the TN-Local slot for local TNs, using
1734   some other referencing block when there there are global conflicts.
1735
1736 /usr1/lisp/compiler/pack.lisp, 10-Jan-89 15:27:21, Edit by Ram.
1737   Fixed Select-Location not to infinite loop when Finite-Sb-Last-Offset is 0.
1738
1739 /usr0/ram/compiler/ir2tran.lisp, 30-Jun-88 13:57:12, Edit by Ram.
1740   Fixed IR2-Convert-Bind to ignore vars with no Refs.
1741
1742 /usr0/ram/compiler/gtn.lisp, 30-Jun-88 13:54:51, Edit by Ram.
1743   Fixed Assign-Lambda-Var-TNs and Assign-IR2-Environment to ignore vars with no
1744   Refs.
1745
1746 /usr0/ram/compiler/life.lisp, 02-Mar-88 17:06:18, Edit by Ram.
1747   Aaaargh!  When clearing the Packed-TN-Local in Clear-Lifetime-Info, iterate
1748   up to Local-TN-Limit, not SC-Number-Limit.
1749
1750 /usr0/ram/compiler/ir1util.lisp, 20-Feb-88 22:00:37, Edit by Ram.
1751   Made Substitute-Leaf and Change-Ref-Leaf do an Up-Tick-Node on the changed
1752   Refs.
1753
1754 /usr0/ram/compiler/ltn.lisp, 20-Feb-88 16:25:11, Edit by Ram.
1755   Changed Find-Template to deal with output assertions correctly once again.
1756   Instead of assuming that the Node-Derived-Type is true, we look at the
1757   Type-Check flag in the continuation.  If the continuation type is being
1758   checked, then we only use a template when it doesn't have an output
1759   restriction.
1760
1761   In Find-Template-For-Policy, use safe templates as a last resort, even when
1762   policy is :Small or :Fast.  A safe template is surely faster and smaller than
1763   a full call.
1764
1765   In Ltn-Analyze, clear the Type-Check flags on all continuations when our
1766   policy is unsafe.
1767
1768 /usr0/ram/compiler/debug.lisp, 18-Feb-88 17:17:19, Edit by Ram.
1769   And fixed Check-VOP-Refs to ensure that the temporary write comes before
1770   (which is after in the reversed VOP-Refs) the read, rather than vice-versa...
1771
1772 /usr0/ram/compiler/vmdef.lisp, 18-Feb-88 17:10:35, Edit by Ram.
1773   Fixed Compute-Reference-Order to begin temporary lifetimes with the write
1774   rather than the read.
1775
1776 /usr0/ram/compiler/gtn.lisp, 18-Feb-88 16:06:41, Edit by Ram.
1777   Have to fetch the Equated-Returns inside the loop in Find-Equivalence
1778   classes, since Equate-Return-Info will change the returns for the current
1779   environment.  This used to work, since Equate-Return-Info used to be
1780   destructive.
1781
1782 /usr0/ram/compiler/ir1opt.lisp, 14-Feb-88 14:30:47, Edit by Ram.
1783   Oops.  Fixed the test in Propagate-From-Calls for being a call to the
1784   function concerned.  Now that this optimization can actually happen, who
1785   knows?
1786
1787 /usr0/ram/compiler/ltn.lisp, 11-Feb-88 18:01:38, Edit by Ram.
1788   Made Annotate-1-Value-Continuation delay global function references to
1789   functions that aren't notinline.  Made LTN-Default-Call,
1790   LTN-Analyze-Full-Call and LTN-Analyze-MV-Call annotate their function
1791   continuation. 
1792
1793 /usr0/ram/compiler/flowsimp.lisp, 11-Feb-88 16:44:48, Edit by Ram.
1794   Now that returns aren't being picked off in flow-graph-simplify, we have to
1795   fix join-block-if-possible not to attempt to join the XEP return to the
1796   component tail...
1797
1798 /usr0/ram/compiler/ir1util.lisp, 11-Feb-88 16:14:52, Edit by Ram.
1799   Made Delete-Ref call Maybe-Let-Convert when deleting the second-to-last
1800   reference to a lambda.
1801
1802 /usr0/ram/compiler/flowsimp.lisp, 10-Feb-88 16:46:56, Edit by Ram.
1803 /usr0/ram/compiler/locall.lisp, 11-Feb-88 13:24:04, Edit by Ram.
1804   Moved let-conversion to locall from flowsimp, and made it be triggered by
1805   Maybe-Let-Convert.  This is called on each new lambda after local call
1806   analysis, and can also be called whenever there is some reason to believe
1807   that a lambda might be eligible for let-conversion.  We clear any :Optional
1808   function kinds since the entry functions can be treated as normal functions
1809   after local call analysis.
1810
1811   This change was made to solve problems with lambdas not being let-converted
1812   when the return node was deleted due to being unreachable.  This is important
1813   now that being a let has major environment significance.  Originally let
1814   conversion was regarded as a way to delete a return, and thus made some kind
1815   of sense to have it be a flow graph optimization.  Now that a let can have
1816   only one reference, we can trigger let conversion by noticing when references
1817   are deleted.
1818
1819 /usr0/ram/compiler/node.lisp, 11-Feb-88 13:12:38, Edit by Ram.
1820 /usr0/ram/compiler/ir1tran.lisp, 11-Feb-88 13:12:47, Edit by Ram.
1821   Added :Optional Functional-Kind that is initially specified for the
1822   entry-point lambdas in optional-dispatches so that we know there may be
1823   references to the function through the optional dispatch. 
1824
1825 /usr0/ram/compiler/ir1util.lisp, 11-Feb-88 12:23:11, Edit by Ram.
1826   Changed assertion in Control-Equate to allow an existing value-equate to the
1827   same continuation.
1828
1829 /usr0/ram/compiler/ir1tran.lisp, 25-Jan-88 19:27:57, Edit by Ram.
1830   Changed the default policy to be all 1's, and modified calls to Policy in all
1831   files so that they do "the right thing" when compared qualities are equal.
1832   The default action should be chosen so as to minimize mystification and
1833   annoyance to non-wizards.  In general, the default should be chosen according
1834   to the ordering: safety > brevity > speed > space > cspeed.  Checks for 0 and
1835   3 meaning "totally unimportant" and "ultimately important" are also o.k.
1836
1837 /usr0/ram/compiler/gtn.lisp, 24-Jan-88 11:20:37, Edit by Ram.
1838   Changed Equate-Return-Info so that it effectively ignores the Count and Types
1839   in :Unused continuations, yet still combines the Entry-P and Tail-P values.
1840
1841 /usr0/ram/compiler/locall.lisp, 23-Jan-88 21:41:28, Edit by Ram.
1842   Make Convert-XEP-Call set the Return-Point too...
1843
1844 /usr0/ram/compiler/ir1util.lisp, 22-Jan-88 16:17:38, Edit by Ram.
1845   Made Immediately-Used-P special-case local calls by using
1846   Basic-Combination-Return-Point.
1847
1848 /usr0/ram/compiler/locall.lisp, 22-Jan-88 16:13:32, Edit by Ram.
1849 /usr0/ram/compiler/node.lisp, 22-Jan-88 16:12:03, Edit by Ram.
1850   Added a Basic-Combination-Return-Point slot so that local calls can rebember
1851   where they are supposed to return to.
1852
1853 /usr0/ram/compiler/gtn.lisp, 22-Jan-88 10:03:37, Edit by Ram.
1854   Fixed Assign-Lambda-Vars to set the TN-Leaf.
1855
1856 /usr0/ram/compiler/flowsimp.lisp, 22-Jan-88 10:22:53, Edit by Ram.
1857   Made Convert-To-Let do an Intersect-Continuation-Asserted-Type on the actual
1858   continuation with the dummy's assertion when the let call is the only use of
1859   the actual continuation.
1860
1861 /usr0/ram/compiler/ir1tran.lisp, 22-Jan-88 09:42:49, Edit by Ram.
1862   Tack NIL on the end of the forms that we convert so that no top-level form is
1863   in a for-value context.
1864
1865 /usr0/ram/compiler/ir1opt.lisp, 21-Jan-88 17:50:52, Edit by Ram.
1866   Made Check-Types intersect the new type with the Node-Derived-Type for all
1867   the continuation uses so that IR1Opt doesn't go and change the type right
1868   back. 
1869
1870 /usr0/ram/compiler/main.lisp, 21-Jan-88 17:31:57, Edit by Ram.
1871 /usr0/ram/compiler/ir1opt.lisp, 21-Jan-88 17:30:31, Edit by Ram.
1872   Type checking was being done wrong.  We need to check types even if IR1Opt
1873   doesn't do anything, and we need to give IR1Opt a second chance if type check
1874   does anything.  Made Check-Types return whether it did anything.
1875
1876 /usr0/ram/compiler/ir1tran.lisp, 21-Jan-88 17:14:13, Edit by Ram.
1877   Fixed IR1 translator for THE to use Find-Uses to find whether the
1878   continuation is used, rather than incorrectly doing it itself (using an old
1879   interpretation of Continuation-Use).
1880
1881 /usr0/ram/compiler/ir1tran.lisp, 16-Nov-87 15:58:39, Edit by Ram.
1882   Made %proclaim (and hence proclaim) return (undefined-value) rather than
1883   arbitrary randomness.
1884
1885 /usr1/ram/compiler/flowsimp.lisp, 23-Aug-87 22:00:39, Edit by Ram
1886   Changed Flow-Graph-Simplify not to merge blocks unless the cleanups for the
1887   two blocks are identical.  The is a sub-optimal (but conservative) way to
1888   ensure that cleanups are only done on block boundaries.
1889
1890 /usr1/ram/compiler/ir1opt.lisp, 23-Aug-87 21:26:53, Edit by Ram
1891   Just look for the :Let functional kind in Top-Down-Optimize, instead of
1892   figuring out from first principles.
1893
1894 /usr1/ram/compiler/ir1util.lisp, 20-Aug-87 22:12:45, Edit by Ram
1895   The only worthwhile use for the functional nesting was in Delete-Ref, where
1896   it would walk all the inferiors, marking them as deleted as well.  But I
1897   think that just marking the outer function as deleted will eventually cause
1898   all the inner functions to be deleted.  As it stands, Delete-Ref is a lot
1899   simpler.  If there are problems with deleted-but-somehow-undeletable
1900   references holding onto functions, we may want to look at all references in
1901   Delete-Ref and see if some enclosing function is deleted.
1902
1903 /usr1/ram/compiler/ir1tran.lisp, 22-Aug-87 15:38:50, Edit by Ram
1904   Changed stuff to use the new Functional and Cleanup structures.  Mostly
1905   involves flushing stuff.
1906
1907 /usr1/ram/compiler/locall.lisp, 21-Aug-87 14:24:32, Edit by Ram
1908 /usr1/ram/compiler/ir1opt.lisp, 20-Aug-87 22:05:33, Edit by Ram
1909   Changed Local-Call-Analyze to just take a component and analyze the
1910   New-Functions.  This simplifies (and optimizes) the late uses in IR1
1911   optimize.  Also changed convert-call-if-possible to know to try to convert
1912   the call to the real function rather than the XEP.
1913
1914 /usr1/ram/compiler/node.lisp, 23-Aug-87 20:12:58, Edit by Ram
1915   Flushed bogus hierarchical information in the Functional, Environment and
1916   Cleanup structures.  Now that I've taken a stab at implementing the IR2
1917   conversion passes, it is obvious that this information is useless and
1918   difficult to maintain.
1919
1920   We do need a way to iterate over all the functions in a component, but doing
1921   a tree walk is bogus.  Instead, we have a list of all the lambdas in each
1922   component.  When functions are initially converted, they are placed on the
1923   component New-Functions list.  Local call analysis moves analyzed lambdas
1924   into the Lambdas list.  We don't bother to remove lambdas from this list when
1925   they are deleted.
1926
1927   A change needed in the cleanup stuff to make it work is to have continuations
1928   with no immediately enclosing cleanup point have their lambda as the cleanup.
1929   Then when we convert the lambda to a let, we set the Cleanup slot in the
1930   lambda to any cleanup enclosing the call so that we realize stuff needs to be
1931   cleaned up.
1932
1933 /usr1/ram/compiler/flowsimp.lisp, 23-Aug-87 20:49:36, Edit by Ram
1934   Changed Find-Initial-DFO to build the Lambdas lists for the components.  At
1935   the same time, we also use XEP references to (correctly) merge components
1936   with potential environment inter-dependencies, rather than attempting to use
1937   the lambda nesting.  Changed Join-Components to combine the Lambdas and
1938   New-Functions lists.
1939
1940   Changed Delete-Return to convert to a let only when there is a single call,
1941   and also to mark the lambda with the :Let functional kind.  This makes
1942   let-calls exactly correspond to the functions that IR1 optimize can
1943   substitute for.  This also solves problems with cleanups, since it is
1944   trivially true that all calls are in the same dynamic environment.
1945
1946 /usr1/ram/compiler/ir1tran.lisp, 18-Aug-87 15:25:18, Edit by Ram
1947   In IR1-Convert, if the function is not a symbol, but doesn't look even
1948   vaguely like a lambda, then complain about an illegal function call,
1949   rather than having IR1-Convert-Lambda say it is an illegal lambda.
1950
1951 /usr1/ram/compiler/numacs.lisp, 16-Aug-87 13:48:11, Edit by Ram
1952   Added a Defvar that doesn't use OR (and create a LET and freak out IR1
1953   conversion.)
1954
1955 /usr1/ram/compiler/ir1util.lisp, 16-Aug-87 18:14:10, Edit by Ram
1956 /usr1/ram/compiler/debug.lisp, 16-Aug-87 15:19:47, Edit by Ram
1957 /usr1/ram/compiler/flowsimp.lisp, 16-Aug-87 15:19:13, Edit by Ram
1958 /usr1/ram/compiler/ir1opt.lisp, 16-Aug-87 15:18:47, Edit by Ram
1959 /usr1/ram/compiler/node.lisp, 16-Aug-87 19:58:30, Edit by Ram
1960 /usr1/ram/compiler/ir1tran.lisp, 16-Aug-87 20:29:36, Edit by Ram
1961 /usr1/ram/compiler/locall.lisp, 16-Aug-87 20:22:28, Edit by Ram
1962   Changed stuff for new explicit external entry point concept.  The external
1963   entry point is now a real function containing local calls to the entry
1964   points.  This represents reality better, making lots of things previously
1965   special-cased automatically happen in our favor.  We really needed this for
1966   environment analysis and IR2 conversion to work.
1967   
1968   Functional-Entry-Kind is replaced by Functional-Kind and
1969   Functional-Entry-Function.  The Kind is kind of like the old Entry-Kind.  The
1970   Entry-Function is the XEP (or a back-pointer in an XEP).  Uses of Entry-Kind
1971   were replaced with Kind or Entry-Function or flushed, as appropriate.
1972
1973   Note-Entry-Point has been flushed.  %Defun doesn't need to do anything to
1974   cause the function to be an entry point.  The top-level lambda is no longer
1975   a real entry-point: instead we just directly link it to the component head
1976   and tail.
1977
1978   The more-arg XEP creates a more-arg cleanup.  The local-call case still needs
1979   to be fixed.
1980
1981 /usr1/ram/compiler/fndb.lisp, 16-Aug-87 20:37:28, Edit by Ram
1982   Added some definitions for %mumble magic compiler functions.
1983
1984 /usr1/ram/compiler/ir1tran.lisp, 16-Aug-87 20:29:36, Edit by Ram
1985   Changed uses of the two-arg Arg for more-arg hackery into %More-Arg, since
1986   this isn't the user-level functionality we will ultimately want for
1987   more-args.
1988
1989 /usr1/ram/compiler/main.lisp, 16-Aug-87 18:35:29, Edit by Ram
1990   Changed Compile-Component not to do any IR1 passes on the top-level component
1991   except for Type-Check.  These optimizations are unlikely to have any useful
1992   effect on top-level code, and they might want to inject illegal stuff into
1993   the top-level component.
1994
1995 /usr1/ram/compiler/macros.lisp, 16-Aug-87 18:26:19, Edit by Ram
1996   Changed With-IR1-Environment to bind *Converting-Top-Level*.  Currently you'd
1997   better not use this on top-level code unless you are sure you won't emit
1998   anything that can't go in top-level, since IR1-Convert-Lambda will bogue out
1999   because there is no *Initial-Component* to switch to.
2000
2001 /usr1/ram/compiler/macros.lisp, 13-Aug-87 20:16:47, Edit by Ram
2002 /usr1/ram/compiler/node.lisp, 13-Aug-87 22:24:30, Edit by Ram
2003 /usr1/ram/compiler/main.lisp, 13-Aug-87 22:35:11, Edit by Ram
2004 /usr1/ram/compiler/globaldb.lisp, 13-Aug-87 20:21:12, Edit by Ram
2005 /usr1/ram/compiler/locall.lisp, 13-Aug-87 22:57:54, Edit by Ram
2006 /usr1/ram/compiler/flowsimp.lisp, 13-Aug-87 22:52:01, Edit by Ram
2007 /usr1/ram/compiler/ir1opt.lisp, 13-Aug-87 22:59:11, Edit by Ram
2008 /usr1/ram/compiler/ir1tran.lisp, 13-Aug-87 23:06:03, Edit by Ram
2009   Changed stuff to support having separate top-level and initial components.
2010   Whenver we see a lambda or anything hairy, we switch over to the initial
2011   component.  Hairyness of special-forms is determined by the :Top-Level-P
2012   keyword to Def-IR1-Translator.
2013
2014   We make appropriate special forms hairy to guarantee that the top-level
2015   component doesn't contain any stuff that would make life hard for IR2
2016   conversion.  In particular, it contains no variables, no functions other than
2017   the top-level lambda and no non-local exit targets.
2018
2019   Local call analysis refuses to convert calls appearing in the top-level
2020   component.  In other files, stuff related to Functional-Top-Level-P was
2021   ripped out.
2022
2023 /usr1/ram/compiler/ir1opt.lisp, 13-Aug-87 17:58:37, Edit by Ram
2024   Changed propagate-from-calls to punt if any use is a mv-combination.  Changed
2025   Top-Down-Optimize not to Substitute-Let-Vars unless the only use is not a
2026   MV-Combination.  Un-commented-out the substituion of functionals for non-set
2027   let vars. 
2028
2029 /usr1/ram/compiler/locall.lisp, 13-Aug-87 18:31:24, Edit by Ram
2030   Frobbed Find-Top-Level-Code to recognize DEFUNs with no calls as
2031   non-top-level.  The entire concept is probably wrong, though.
2032
2033 /usr1/ram/compiler/ir1tran.lisp, 13-Aug-87 19:07:22, Edit by Ram
2034   Changed IR1-Convert-OK-Combination to look at the leaf-type of the leaf
2035   rather than the derived type for the function continuation.  This allows
2036   known calls to be recognized again (I'm sure that worked at one point.
2037   Perhaps before they were becoming known later on somehow?).  This is all not
2038   really right anyway, given the broken interpretation of function types
2039   currently used in IR1. 
2040
2041 /usr/ram/compiler/ir1tran.slisp, 12-Jan-87 11:48:32, Edit by Ram
2042   Fixed Find-Source-Paths to use a DO with ATOM test rather than a dolist, so
2043   that it won't blow up on dotted lists.
2044
2045 /usr/ram/compiler/ir1util.slisp, 12-Jan-87 10:28:07, Edit by Ram
2046   Fixed Delete-Block to null out the DEST for the continuations belonging to
2047   each node as we delete the node, so we don't try to deliver a result to a
2048   node that doesn't exist anymore.