/[cmucl]/src/general-info/alpha-notes-thru-92.txt
ViewVC logotype

Contents of /src/general-info/alpha-notes-thru-92.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.43 - (show annotations)
Sat Dec 5 23:23:55 1992 UTC (21 years, 4 months ago) by wlott
Branch: MAIN
CVS Tags: sparc-tramp-assem-base, double-double-array-base, post-merge-intl-branch, release-19b-pre1, release-19b-pre2, merged-unicode-utf16-extfmt-2009-06-11, double-double-init-sparc-2, unicode-utf16-extfmt-2009-03-27, double-double-base, snapshot-2007-09, snapshot-2007-08, snapshot-2008-08, snapshot-2008-09, ppc_gencgc_snap_2006-01-06, sse2-packed-2008-11-12, snapshot-2008-05, snapshot-2008-06, snapshot-2008-07, snapshot-2007-05, snapshot-2008-01, snapshot-2008-02, snapshot-2008-03, intl-branch-working-2010-02-19-1000, snapshot-2006-11, snapshot-2006-10, double-double-init-sparc, snapshot-2006-12, unicode-string-buffer-impl-base, sse2-base, release-20b-pre1, release-20b-pre2, unicode-string-buffer-base, sse2-packed-base, sparc-tramp-assem-2010-07-19, amd64-dd-start, snapshot-2003-10, snapshot-2004-10, release-18e-base, release-19f-pre1, snapshot-2008-12, snapshot-2008-11, intl-2-branch-base, snapshot-2004-08, snapshot-2004-09, remove_negative_zero_not_zero, snapshot-2007-01, snapshot-2007-02, snapshot-2004-05, snapshot-2004-06, snapshot-2004-07, release-19e, release-19d, GIT-CONVERSION, double-double-init-ppc, release-19c, dynamic-extent-base, unicode-utf16-sync-2008-12, LINKAGE_TABLE, release-19c-base, cross-sol-x86-merged, label-2009-03-16, release-19f-base, PRE_LINKAGE_TABLE, merge-sse2-packed, mod-arith-base, sparc_gencgc_merge, merge-with-19f, snapshot-2004-12, snapshot-2004-11, intl-branch-working-2010-02-11-1000, unicode-snapshot-2009-05, unicode-snapshot-2009-06, amd64-merge-start, ppc_gencgc_snap_2005-12-17, double-double-init-%make-sparc, unicode-utf16-sync-2008-07, release-18e-pre2, unicode-utf16-sync-2008-09, unicode-utf16-extfmts-sync-2008-12, prm-before-macosx-merge-tag, cold-pcl-base, RELEASE_20b, snapshot-2008-04, snapshot-2003-11, snapshot-2005-07, unicode-utf16-sync-label-2009-03-16, RELEASE_19f, snapshot-2007-03, release-20a-base, cross-sol-x86-base, unicode-utf16-char-support-2009-03-26, unicode-utf16-char-support-2009-03-25, release-19a-base, unicode-utf16-extfmts-pre-sync-2008-11, snapshot-2008-10, sparc_gencgc, snapshot-2007-04, snapshot-2010-12, snapshot-2010-11, unicode-utf16-sync-2008-11, snapshot-2007-07, snapshot-2011-09, snapshot-2011-06, snapshot-2011-07, snapshot-2011-04, snapshot-2007-06, snapshot-2011-02, snapshot-2011-03, snapshot-2011-01, snapshot-2003-12, release-19a-pre1, release-19a-pre3, release-19a-pre2, pre-merge-intl-branch, release-19a, UNICODE-BASE, double-double-array-checkpoint, double-double-reader-checkpoint-1, release-19d-base, release-19e-pre1, double-double-irrat-end, release-19e-pre2, snapshot-2010-05, snapshot-2010-04, snapshot-2010-07, snapshot-2010-06, snapshot-2010-01, snapshot-2010-03, snapshot-2010-02, release-19d-pre2, release-19d-pre1, snapshot-2010-08, release-18e, double-double-init-checkpoint-1, double-double-reader-base, label-2009-03-25, snapshot-2005-03, release-19b-base, cross-sol-x86-2010-12-20, double-double-init-x86, sse2-checkpoint-2008-10-01, intl-branch-2010-03-18-1300, snapshot-2005-11, double-double-sparc-checkpoint-1, snapshot-2004-04, sse2-merge-with-2008-11, sse2-merge-with-2008-10, snapshot-2005-10, RELEASE_20a, snapshot-2005-12, release-20a-pre1, snapshot-2005-01, snapshot-2009-11, snapshot-2009-12, unicode-utf16-extfmt-2009-06-11, portable-clx-import-2009-06-16, unicode-utf16-string-support, release-19c-pre1, cross-sparc-branch-base, release-19e-base, intl-branch-base, double-double-irrat-start, snapshot-2005-06, snapshot-2005-05, snapshot-2005-04, ppc_gencgc_snap_2005-05-14, snapshot-2005-02, unicode-utf16-base, portable-clx-base, snapshot-2005-09, snapshot-2005-08, lisp-executable-base, snapshot-2009-08, snapshot-2007-12, snapshot-2007-10, snapshot-2007-11, snapshot-2009-02, snapshot-2009-01, snapshot-2009-07, snapshot-2009-05, snapshot-2009-04, snapshot-2006-02, snapshot-2006-03, release-18e-pre1, snapshot-2006-01, snapshot-2006-06, snapshot-2006-07, snapshot-2006-04, snapshot-2006-05, pre-telent-clx, snapshot-2006-08, snapshot-2006-09, HEAD
Branch point for: release-19b-branch, double-double-reader-branch, double-double-array-branch, mod-arith-branch, RELEASE-19F-BRANCH, portable-clx-branch, sparc_gencgc_branch, cross-sparc-branch, RELEASE-20B-BRANCH, unicode-string-buffer-branch, sparc-tramp-assem-branch, dynamic-extent, UNICODE-BRANCH, release-19d-branch, ppc_gencgc_branch, sse2-packed-branch, lisp-executable, RELEASE-20A-BRANCH, amd64-dd-branch, double-double-branch, unicode-string-buffer-impl-branch, intl-branch, release-18e-branch, cold-pcl, unicode-utf16-branch, cross-sol-x86-branch, release-19e-branch, sse2-branch, release-19a-branch, release-19c-branch, intl-2-branch, unicode-utf16-extfmt-branch
Changes since 1.42: +10 -0 lines
File MIME type: text/plain
11/23/92 to 12/5/92:
1 11/23/92 to 12/5/92:
2
3 Code:
4
5 Minor fixes to LOOP and DELETE-PACKAGE.
6
7 Low level support for various subtypes of function for use with Dylan.
8
9
10
11 10/21/92 to 11/23/92:
12
13 Code:
14
15 Fixed ``enum'' alien types to always use up 32 bits to be compatable with
16 the various C compilers on the machines we are using.
17
18 Fixed a bug in the ~<...~:> FORMAT directive where ~^ would blow out of
19 whatever the ~<...~:> was inside instead of just the ~<...~:>.
20
21 Extended hash tables to allow user defined :tests. There is now a function
22 DEFINE-HASH-TABLE-TEST that takes three arguments: the symbol name of the
23 hash table test, the test function, and the hash function. It registers
24 the name, test function, and hash function so that MAKE-HASH-TABLE can be
25 called with either the name or the test function for the :test argument.
26 The hash function should take one argument (the object) and return a
27 positive fixnum hash value.
28
29 Delete-package function added according to X3J13/92 specification.
30
31 Fixed pprint-lambda-list to print a space before the dot when the tail of
32 the lambda list is shared. In other words, print (foo . #1=(bar baz))
33 instead of (foo. #1=(bar baz)).
34
35 The newest implementation of LOOP employs a recursive descent parser with
36 an intermediate representation in terms of variable, clause and loop
37 structures. After the entire expression is parsed the loop template is
38 filled according to a set of rules determined by the clause operator. Parts
39 of this system are based on code in Peter Norvig's book Paradigm's of
40 Artificial Intelligence Programming: Case Studies in Common Lisp (Ch 24.5).
41 The complete implementation satisfies all the test cases in the MIT test
42 suite and in the less complete ANSI Loop specification.
43
44
45 Compiler:
46
47 Fixed FIND-RESULT-TYPE to correctly handle assignment conversion.
48
49 Only try to generate a disassembly when making a trace file if the
50 disassembler has been set up for the backend we are using.
51
52 Added a ``variable-lenght'' instruction attribute that indicates that the
53 instruction can be a variable length, and hence cannot be used in a branch
54 delay slot.
55
56
57 C Support Code:
58
59 [SPARC only] Fixed a bug were it would sometimes not save the floating
60 point state on a signal. This was causing all sorts of lossage.
61
62
63 Tools:
64
65 Added clmcom.lisp, as script to compile the clm stuff. And added stuff to
66 compile-all to invoke it.
67
68
69
70 10/9/92 to 10/21/92:
71
72 Compiler:
73
74 Changed %MORE-ARG-CONTEXT to be a :translate instead of a def-source-
75 transform to get rid of one more use of %primitive.
76
77 Changed MOVE-FROM-mumble-FLOAT to do the st[d]f after the pseudo-atomic so
78 that if we take a trap, we won't try to handle it while pseudo-atomic is
79 active. [Sparc only]
80
81 Removed definitions for primitive types random and interior because they
82 arn't needed anymore.
83
84 Couple patches from Miles to make the disassembler work better when
85 disassembling into a trace file during a compile-file.
86
87
88 C Runtime Support:
89
90 When we get a trap_PendingInterrupt, skip over the breakpoint instruction.
91 Otherwise, we will try to handle the signal again and again.
92
93 When done fixing up after a pseudo-atomic-interrupted, skip past the
94 tagged-add instruction. Otherwise, we turn pseudo-atomic off twice, which
95 results in it being left on, which confuses the garbage collector. [Sparc
96 only.]
97
98
99 9/29/92 to 10/9/92
100
101 Added arch specific routine SANCTIFY-FOR-EXECUTION that is suppowed to do
102 whatever cache magic is necessary to make it so we can execute newly
103 created code objects, and changed load and in-core compile to call it.
104 [This is needed for the HP port.]
105
106
107 9/25/92 to 9/29/92
108
109 Compiler fix to inline expansion of functions in non-null environments.
110 Recompiled CLX with this fix so that it works again.
111 Fix to the MAKE-LOAD-FORM for hash-tables to actually work.
112
113
114 9/7/92 to 9/25/92
115
116 Code changes:
117 -- Various C code changes.
118 -- Changed PROFILE argument count determination to parse the function type and
119 look at it, instead of trying to fake it. Among other things, this allows
120 efficient profiling of functions with FTYPE declarations even when
121 compilation policy has caused the function-object's type to be dropped.
122 -- In SERVE-EVENT, fixed WAIT-UNTIL-FD-USABLE to correctly borrow from the
123 timeout seconds when computing the new value for the timeout microseconds
124 and it is negative.
125 -- Added interpreter stub for VALUE-CELL-REF (for interpreted
126 LOAD-TIME-VALUE).
127 -- Fixed MAKE-INTERPRETED-FUNCTION to pass the arglist in so that it is
128 available to DESCRIBE.
129
130 Compiler:
131
132 It is now possible to inline expand global functions which are defined in a a
133 not-completely-empty environment information (containing local macros, etc.)
134 Inline expansion now works for local and block-compiled functions. Now
135 local-call conversion is responsible for copying lambdas for copy-per-call
136 inlining.
137
138 DEFUN handling has been totally rewritten. Semi-inline expansion now has
139 exactly the same semantics as introducing a non-entry-point copy of the
140 function into the current compilation block. A new DEFINED-FUNCTION leaf is
141 entered in *FREE-FUNCTIONS* to represent functions which either have inline
142 expansions or are defined in the current compilation block. This allowed the
143 implementation of block compilation and inline expansion to be cleaned up.
144
145 The new variable EXT:*INLINE-EXPANSION-LIMIT* controls the maximum number of
146 inline expansions done in a given function (or block compilation.) This serves
147 to keep inline expansions of recursive functions from crashing the compiler.
148
149 Added block compilation declarations to ir1 conversion and optimization. Moved
150 some stuff around to get better locality. Substantially revamped known call
151 reoptimization so that more code is sharable with ir1-conversion. Formerly
152 some stuff (like inline expansion) only happend at ir1-conversion time.
153 Some other minor compile speed tweaks such as declaring some simple utilities
154 inline.
155
156 Compiler bug fixes:
157 -- Added a hack to IF-IF optimization to prevent some spurious unreachable
158 code notes.
159 -- Fixed the code which converts "assignment" lets to ordinary lets to
160 actually work.
161 -- Merged William's change to load-time-value to not include make-value-cell
162 in the name.
163 -- Don't compile load-time-value lambdas if they've already been compiled
164 because they ended up in a non-top-level component.
165 -- Don't run the back-end(s) on components with no code.
166 -- Fixed START-BLOCK, END-BLOCK and recognized declarations to be ignored in
167 %PROCLAIM (they only make it that far when called by the interpreter.
168 Changed the unrecognized proclamation error to be a warning.
169 -- instruction scheduler fixes.
170
171
172 8/17/92 to 9/7/92 [PMAX only]
173
174 Code:
175
176 Changed the way continuing from breakpoints is implemented. It should work
177 in more cases, and be easier to port to other machines now.
178
179 When printing the initial frame in the debugger, ignore errors that occur
180 while looking for the source.
181
182 Changed DOLIST not to introduce the spurious let around the result form when
183 there is no result form. Also, just read the var in the spurious let, instead
184 of using IGNORABLE, since the var might be special.
185
186
187 Compiler:
188
189 Re-worked some aspects of how the various compiler backends are defined in
190 order to make the compiler more compact.
191
192 Fixed several bugs left over from the pmax ``improvements.''
193
194 Picked up several disassembler fixes from Miles.
195
196
197
198 8/4/92 to 8/17/92
199
200 Many low level interal improvements for the pmax. None of this is user
201 visable, except that allocation should be faster. *** Note: these internal
202 changes require all files to be recompiled. If you try to load an old fasl
203 file, you will get an error message to this effect.
204
205
206 Code:
207
208 Changed backq-list, etc., from being inline functions to compiler-macros, since
209 although the optimizer does eventually get the right code, it has to work awful
210 hard.
211
212 When groveling a defmacro lambda list, check to see if some part is a LIST
213 before checking to see if it is a SYMBOL, because we want NIL to act like
214 the empty list, and not an attempt to bind NIL.
215
216 Fixed quote-string to stop at the fill pointer for strings with fill
217 pointers.
218
219 In %defsetf, don't bother creating temp vars for constants. This is
220 necessary so that keywords stay keywords, and are not changed to gensyms.
221
222 Set *ENVIRONMENT-LIST* to NIL before we start to push things on it in
223 ENVIRONMENT-INIT so that we don't keep around the old values.
224
225 Changed GET-INTERNAL-RUN-TIME to use UNIX-FAST-GETRUSAGE to avoid
226 number-consing and generic arithmetic. Also, rearranged the computation so
227 that the time is correctly computed for up to 457 days, instead of only 71
228 minutes.
229
230 Added UNIX-FAST-GETRUSAGE which is inline, only returns the system and user
231 time, and returns them as seconds and microseconds.
232
233
234 Compiler:
235
236 Fixed a problem with conflict analysis of :more TNs (which are created
237 when a single vop has ~>= 50 operands.)
238
239
240 PCL:
241
242 Don't clobber DEFINE-COMPILER-MACRO, because we have it now.
243
244
245
246 7/31/92 to 8/4/92
247
248 [SPARC only]
249
250 Fixes to bit-bash and compiler to get bit-bash to stop consing.
251
252 July 92 beta PCL. Mostly MOP and ANSI enhancements, and some tweaks to
253 structure-class support.
254
255 Fixed debugger VPRINT command to actually be verbose again.
256
257 Flushed old-assembler stuff, and import new-assem stuff directly into the C
258 package. Various tweaks for the byte compiler and instruction scheduler.
259
260 If we discover a FUNCALL to an inline function, convert it (unless it is a SETF
261 function.)
262
263 Gag bound-but-not-referenced warnings when brevity = 3.
264
265
266 7/24/92 to 7/31/92
267
268 [SunOS SPARC only]
269
270 Code:
271
272 Fixed OUTPUT-SYMBOL to no longer call CHECK-FOR-CIRCULARITY now that
273 OUTPUT-OBJECT does it for us. This was causing gensyms to print as #1=#1#
274 when *PRINT-CIRCLE* was T.
275
276 In FORCE-PRETTY-OUTPUT, EXPAND-TABS before outputing the output buffer.
277
278 Fixed RUN-PROGRAM to know that UNIX-FORK returns NIL, not -1, when it
279 fails.
280
281 Hacked over unix-select to actually work with nfds>32 and to be more
282 effecient in that case.
283
284 Fixed UNIX-FORK to actually return the error code when it fails.
285
286
287 Compiler:
288
289 Flushed old assembler.
290
291 Changed NATIVE-COMPILE-COMPONENT to output the disassembly to the trace
292 file, and added DISASSEM:DISASSEMBLE-BLOCKS, which actually does it.
293
294 Moved the (compiler-mumble "~&") from native-compile-component to compile-
295 component, so it happens when byte compiling also.
296
297 Added stream argument to two write-char's in DISASSEM's
298 PRINT-CURRENT-ADDRESS where it was left out.
299
300 Several changes to the new assembler in preperation to running the
301 instruction scheduler and supporting the disassembler.
302
303
304
305 7/7/92 to 7/24/92
306
307 [SunOS SPARC only.]
308
309 Code:
310
311 Many improvements to the debugger:
312 - Exported variables *use-block-starts-only* and *print-code-location-kind*
313 which control the verbosity of LIST-LOCATIONS.
314 - Imroved source file organization.
315 - Changed PRINT-FRAME-CALL to print the source if verbosity >= 2 and the
316 source is available.
317 - Removed mentions of *current-code-location*, which was only set, never read.
318 - Changed source location printing to cache information so that it is much
319 faster when many locations in the same function are printed.
320 - The source file is now only printed when the file changes from one
321 printing to the next.
322 - The format of LIST-LOCATIONS is now more readable. The number: comes
323 before the form, and consecutive locations with the same souce print as
324 ranges, not as multiple lines.
325
326 Changed BREAK to accept a condition as well as a format string.
327
328 Changed default base file name for LOAD-FOREIGN to be the name used to run
329 lisp, and not "lisp".
330
331 Changed INSPECT::PLAN-DISPLAY-OBJECT to use WITH-SLOTS instead of
332 accessors, since those accessors don't seem to exist anymore.
333
334 Added code to support CONNECT-TO-UNIX-SOCKET so that Unix domain sockets
335 are available for connecting to other processes.
336
337 Changed timeout handling in SERVE-EVENT to work for non-integer timeouts.
338 Moved WAIT-UNTIL-FD-USABLE into the SERVE-EVENT block so that it could
339 share timeout hackery. Compiled with efficiency notes & tweaked
340 declarations. Broke SERVE-EVENT into a couple of functions for
341 readability.
342
343 Changed #a reader to allow arbitrary sequences instead of just lists.
344
345 Merged Olssons fix to WITH-ENABLED-INTERRUPTS now that it doesn't change
346 interrupt characters anymore.
347
348 Changed NTRACE to use PRINT-FRAME-CALL instead of the internal
349 PRINT-CALL-FRAME-1.
350
351 Added new SYSCALL* macro which signals an error instead of returing errno.
352 Changed gettimeofday and rusage to use this version. Changed timeval slots to
353 be long, not unsigned-long, since they really are, and this simplifies
354 representation problems.
355
356 Fixed unix-select to shift the masks by -32 instead of shifting -32 by the
357 masks.
358
359
360 Compiler:
361
362 Code generation changed to use the new assembler.
363
364 Don't call CONTINUATION-CHECK-TYPES if PROBABLE-TYPE-CHECK-P returns NIL.
365 This lets type checking assume that the continuation does have a DEST,
366 and also avoids some unnecessary work.
367
368 Fixed dump-1-location to also take integer positions directly, instead of
369 always requiring labels.
370
371 Added checking for potentially TR local calls with different tail sets. Added
372 BARF restart which allows conditional ignoring of particular error messages.
373
374 Fixed IR2-CONVERT-ENTRY to correctly handle tagbodies with more than one tag
375 that is non-locally exited to.
376
377 MERGE-TAIL-SETS before potential let-conversion so that we will
378 correctly recognize all tail calls. Make the analogous change to
379 CONVERT-MV-CALL.
380
381 Fixed DUMP-DATA-MAYBE-BYTE-SWAPPING to work. [Needed for cross compiling.]
382
383 In the new assembler, fixed FORGET-OUTPUT-BLOCKS to also reset
384 *ALL-OUTPUT-BLOCKS*. When using ADJUST-ARRAY to extent the vector of
385 OUTPUT-BLOCKS, spec the initial-element as nil so it doesn't just leave the
386 0's behind.
387
388
389 Tools:
390
391 Change $* to $@ in sample-wrapper.
392
393 When compiling the compiler, keep a bit more safety and debug-info when
394 #-small.
395
396
397 CLX:
398
399 Fixed fast pixarray functions to return T when they do something.
400
401 Fixed copy-bit-rect to correctly compute indices for bit-bash-copy
402 so that it will actually work.
403
404 Fixed ANGLEP to test for being a real before it assumes it is.
405
406 Fixed several places where values that could really be negative were
407 declared to be array-indices.
408
409
410 Documentation, etc.
411
412 Clarified that CMUCL_EMPTYFILE must be a file in sunos-README.
413
414 Update for new TR number, use cmu-titlepage style.
415
416 Added new debugger breakpoint commands and new trace documentation.
417
418 Ran spell checker.
419
420 Fixed various minor formatting problems, especially w.r.t description
421 environments.
422
423 Updated debugger documentation to describe the prefix-completing command
424 parser (which has been in for quite a while.)
425
426 Incorporated Paul's suggested improvements in the debugger and aliens
427 chapters.
428
429 Updated indexing to make much greater use of subindexing.
430
431
432
433 6/22/92 to 7/7/92
434
435 Code:
436
437 Added debugger commands to manipulate breakpoints. See the debugger help
438 string for details.
439
440 Changed the type of *TOTAL-BYTES-CONSED* from fixnum to integer because it
441 is very easy to cons more than most-positive-fixnum bytes. It just takes a
442 while.
443
444 Added some type declarations so that a call to make-array in
445 make-hash-table gets open coded.
446
447 Removed *task-data* and *task-notify* because they aren't used, and I have
448 no idea what they should be changed to under mach 3.0.
449
450
451 Compiler:
452
453 Fixed MAKE-LOAD-TIME-CONSTANT-TN to quit looking once it found an matching
454 constant, so that it actually uses the same constant slot for the same
455 value.
456
457
458
459 6/15/92 to 6/22/92
460
461 Code:
462
463 Fixed PACKAGE-ERROR to have a PACKAGE slot instead of a PATHNAME slot.
464
465 Two changes to DEBUG-INTERNALS to support breakpoint debugger commands:
466 - Added CODE-LOCATION-KIND.
467 - Changed HANDLE-BREAKPOINT-AUX to correctly handle the case in which all
468 breakpoints at a location are deactivated and then at least one is
469 activated within the hook functions.
470
471
472 Compiler:
473
474 Changed the defknown for PACKAGE-NAME to include NIL as a possible result,
475 because that is what it is supposed to return after the package is fed
476 to DELETE-PACKAGE.
477
478 More internal changes to for the HP PA-RISC 1.1 port.
479
480
481
482 6/12/92 to 6/15/92
483
484 Code:
485
486 Reworked the internals of circularity detection and depth abbreviation.
487 Structure print-functions that use PPRINT-LOGICAL-BLOCK will no longer be
488 counted as as two levels against *PRINT-LEVEL*, and will no longer be
489 printed as #1=#1# when *PRINT-CIRCLE* is set. Also, printing various
490 condition structures (for example, TYPE-ERROR) will no longer flame out
491 when *PRINT-CIRCLE* is set.
492
493 Note: any uses of PPRINT-LOGICAL-BLOCK will have to be recompiled.
494
495
496
497 6/3/92 to 6/12/92
498
499 Code:
500
501 Don't destructively modify the breakpoint list in SUB-ACTIVATE-BREAKPOINT so
502 that any breakpoints activated while we are already at this location will not
503 be processed this time around.
504
505 Fixed dispatch macro characters to be case-insensitive, and to disallow digits
506 as sub-characters.
507
508
509 Compiler:
510
511 Moved the page size into the backend structure.
512
513 Changed not to barf if a block has no predecessors. This really shouldn't
514 happen, since we do DFO before constraint if it is needed, and that should
515 flush any blocks with no predecessors (or that are otherwise unreachable), but
516 it is happening...
517
518 Moved tail-set merging out of IR1-OPTIMIZE-RETURN into LTN. Changed
519 MAYBE-DELETE-EXIT to call MERGE-TAIL-SETS.
520
521 Set COMPONENT-REANALYZE in MAYBE-TERMINATE-BLOCK if we do terminate.
522
523 Added setting of COMPONENT-REANALYZE all places where we do UNLINK-BLOCKS and
524 might create dead code.
525
526 Changed CONVERT-CALL-IF-POSSIBLE to not attempt to convert when the call is in
527 a deleted function or a delete-p block.
528
529 Moved tail-set merging here from IR1-OPTIMIZE-RETURN, since it wasn't being
530 triggered reliably (and required IR1 optimization to run to completion for
531 correctness.) Now we merge tail sets whenever we convert a local call that
532 delivers its value to a return (regardless of whether it is truly TR.) This
533 liberalization actually improves type inference: previously non-TR calls would
534 mess up type inference.
535
536 Now MERGE-TAIL-SETS must be called whenever IR1 is modified so that a local
537 call is changed to be potentially tail recursive (i.e. deliver its value to a
538 return.) It seems that the only such place is in MAYBE-DELETE-EXIT in ir1opt.
539
540 Changed to bind *features* to (backend-features *target-backend*) just
541 before doing the read instead of binding *features* to (backend-features
542 *backend*) for the duration of the compile. This way, the compiler can use
543 (backend-featurep :foo) to tell how to compile, and cross compilers can be
544 compiled correctly with respect to #+foo.
545
546 Fixed RANDOM derive-type method when the class is NIL, or is FLOAT and FORMAT
547 is specified (need to get the right type of zero.)
548
549
550 Hemlock:
551
552 Couple fixes to dired:
553 - Updated function merge-dirs to reflect updated pathname-directory returns a
554 list rather than a simple vector and amended its use of make-pathname to
555 set :device argument to :unspecific rather than :absolute.
556 - In set-write-date spliced in the *utimes-buffer* list into the
557 unix:unix-utimes function call.
558
559
560 CLX:
561
562 Fixed ANGLE to handle ratios. In now discards all unnecessary precision
563 when doing the bounds check.
564
565
566 PCL:
567
568 Fixed function environment hackery to work even when *LEXICAL-ENVIRONMENT* is
569 NIL (i.e. we aren't in the compiler.)
570
571
572
573 5/25/92 to 6/3/92
574
575 New PCL, version March 92 2a. Supposed to have many bug fixes and some
576 performance enhancements.
577
578 Code:
579
580 Merged Mile's fix to MAKE-PATHNAME so that it knows the difference between
581 an arg being NIL and being unsupplied.
582
583 Fixed ACTIVATE-BREAKPOINT to build the breakpoints list in forward order to
584 preserve the desired hook invocation order.
585
586 Made function-end breakpoints for known-return functions signal an error, since
587 they aren't implemented.
588
589 Defined new parameterized PRINT-HERALD, exported *HERALD-ITEMS*. Doc for
590 *herald-items*:
591 Determines what PRINT-HERALD prints (the system startup banner.) This is a
592 database which can be augmented by each loaded system. The format is a
593 property list which maps from subsystem names to the banner information for
594 that system. This list can be manipulated with GETF -- entries are printed
595 in, reverse order, so the newest entry is printed last. Usually the system
596 feature keyword is used as the system name. A given banner is a list of
597 strings and functions (or function names). Strings are printed, and
598 functions are called with an output stream argument.
599
600 Trace has been substantially rewritten, and has a new syntax as well as new
601 functionality. It now subsumes the old encapsulation-based trace via the
602 :ENCAPSULATE option. Interpreted functions and generic functions are traced
603 via encapsulation by default, which works. Conditional stuff works much
604 better. *debug-print-level* is used instead of a separate
605 *trace-print-level*. Here is the new doc string:
606 TRACE {Option Global-Value}* {Name {Option Value}*}*
607 TRACE is a debugging tool that prints information when specified functions
608 are called. In its simplest form:
609 (trace Name-1 Name-2 ...)
610
611 TRACE causes a printout on *TRACE-OUTPUT* each time that one of the named
612 functions is entered or returns (the Names are not evaluated.) The output
613 is indented according to the number of pending traced calls, and this trace
614 depth is printed at the beginning of each line of output.
615
616 Options allow modification of the default behavior. Each option is a pair
617 of an option keyword and a value form. Options may be interspersed with
618 function names. Options only affect tracing of the function whose name they
619 appear immediately after. Global options are specified before the first
620 name, and affect all functions traced by a given use of TRACE.
621
622 The following options are defined:
623
624 :CONDITION Form
625 :CONDITION-AFTER Form
626 :CONDITION-ALL Form
627 If :CONDITION is specified, then TRACE does nothing unless Form
628 evaluates to true at the time of the call. :CONDITION-AFTER is
629 similar, but suppresses the initial printout, and is tested when the
630 function returns. :CONDITION-ALL tries both before and after.
631
632 :WHEREIN Names
633 If specified, Names is a function name or list of names. TRACE does
634 nothing unless a call to one of those functions encloses the call to
635 this function (i.e. it would appear in a backtrace.) Anonymous
636 functions have string names like "DEFUN FOO".
637
638 :BREAK Form
639 :BREAK-AFTER Form
640 :BREAK-ALL Form
641 If specified, and Form evaluates to true, then the debugger is invoked
642 at the start of the function, at the end of the function, or both,
643 according to the respective option.
644
645 :PRINT Form
646 :PRINT-AFTER Form
647 :PRINT-ALL Form
648 In addition to the usual prinout, he result of evaluating Form is
649 printed at the start of the function, at the end of the function, or
650 both, according to the respective option. Multiple print options cause
651 multiple values to be printed.
652
653 :FUNCTION Function-Form
654 This is a not really an option, but rather another way of specifying
655 what function to trace. The Function-Form is evaluated immediately,
656 and the resulting function is traced.
657
658 :ENCAPSULATE {:DEFAULT | T | NIL}
659 If T, the tracing is done via encapsulation (redefining the function
660 name) rather than by modifying the function. :DEFAULT is the default,
661 and means to use encapsulation for interpreted functions and funcallable
662 instances, breakpoints otherwise. When encapsulation is used, forms are
663 *not* evaluated in the function's lexical environment, but DEBUG:ARG can
664 still be used.
665
666 :CONDITION, :BREAK and :PRINT forms are evaluated in the lexical environment
667 of the called function; DEBUG:VAR and DEBUG:ARG can be used. The -AFTER and
668 -ALL forms are evaluated in the null environment.
669
670
671 Compiler:
672
673 Fixed several uses of FIND to use EQUAL instead of EQL to compare function
674 names, because (SETF mumble) is now a valid function name, and isn't
675 necessarily EQL.
676
677 More stuff in preperation for more ports and the byte-compiler.
678
679 Changed NEW-BACKEND to call DEFINE-STANDARD-TYPE-PREDICATES to fill in
680 the BACKEND-TYPE-PREDICATES and BACKEND-PREDICATE-TYPES slots.
681
682 Fixed some bugs revealed by the new PCL and William's hackery. Support for
683 "assignments" (local functions used for iteration) was rather proken, and still
684 has at least one problem.
685
686
687 5/17/92 to 5/25/92
688
689 Code:
690
691 Lots of internal fixes to how breakpoints are handled. There currently is
692 nothing that uses this stuff, but it works better now.
693
694 Fixed DEFPACKAGE not to loose when the :use option is specified.
695
696
697 Compiler:
698
699 More internal changes to help facilitate future ports.
700
701 Internal changes to support the above mentioned breakpoint improvements.
702
703
704 PCL
705
706 Fixed a bug in WALK-ARGLIST where it would ignore the rest of the current
707 arglist if the current arg destructured. This was causing it to compile
708 forms like:
709 (macrolet ((foo ((a b) c) ...)) ...)
710 as:
711 (macrolet ((foo ((a b)) ...)) ...)
712 note the loss of the arg c.
713
714
715 Other:
716
717 The loading of CLX and Hemlock has been changed to more easily allow
718 loading them into cores originally built without them.
719
720
721
722 4/30/92 to 5/17/92
723
724 Code:
725
726 Inline expand %MAKE-ALIEN and FREE-ALIEN to avoid spurious Alien-value consing.
727
728 Changed DESCRIBE to allow T or NIL as the stream argument.
729
730 Rewrote most of the hash table support:
731 - MAKE-HASH-TABLE now conforms to the ANSI spec.
732 - EQL hash tables now work with complex numbers, and better in general.
733 - HASH-TABLE-mumble accessors now exist.
734
735 Changed several uses of DEFINE-CONDITION to use the new syntax.
736
737 Removed several extra )'s
738
739 Changed several setfs of arguments that were inhibiting the compiler from
740 using all the argument type information available for list and sequence
741 functions.
742
743 Changed IN-PACKAGE to conform to the new definition. But if you use an
744 old-style IN-PACKAGE, it will use the old behavior.
745
746 Rewrote DEFPACKAGE to tell you about inconsistencies between the package
747 and the DEFPACKAGE form.
748
749 Rewrote the DO-mumble-SYMBOLS iterators in order to stamp out more uses of
750 prog. They now wrap the user body in an flet and then just use regular
751 looping constructs to grovel through the packages.
752
753 Several fixes to the new TRACE:
754 - Fixed to actually allow tracing anonymous function objects.
755 - Changed to allow tracing of macros.
756 - When tracing an already traced function, untrace and retrace it, instead
757 of ignoring the second request.
758 - Moved the undefined error for UNTRACE to the UNTRACE-1 subfunction,
759 instead of signalling it at macroexpand time.
760 - In TRACE-1, added an assertion that there isn't already an entry in the
761 trace breakpoint table, since sometimes we seem to be forgetting about
762 breakpoints.
763
764
765 Compiler:
766
767 Several internal changes in preperation for supporting future ports.
768
769
770 CLX:
771
772 READ-BITMAP-FILE modified to decrement the indexed property :x-hot only if
773 non-nil and positive. If already negative, it is left unchanged to indicate
774 that the bitmap has no hotspot.
775
776
777
778
779 4/7/92 to 4/30/92
780
781 **** FASL files have been incompatibly changed in this release. You must
782 recompile all your fasl files.
783
784
785 Big Change:
786
787 Function call is now different. Specifically, named-call has been changed
788 so that it can be used for both regular functions and setf functions.
789 Named calls to setf functions are now just as efficient as named calls to
790 regular functions.
791
792
793
794 Code:
795
796 Changed the handler-bind in debug-loop to not invoke the debugger directly.
797 Otherwise, debug:*stack-top-hint* never gets set for errors received while
798 debugging.
799
800 Fixed MACROEXPAND-1 to pass the environment into MACRO-FUNCTION when
801 checking to see if the form has a macro defintion. Otherwise,
802 macroexpanding macrolets doesn't work.
803
804 Fixed doc string for maphash to indicate that it returns NIL instead of T.
805
806 Changed the undefined-symbol-error handler to use fdefn-name to extract out
807 the name from the fdefn object when its really a fdefn object that was
808 undefined instead of a symbol.
809
810 Added function-subtype and (setf function-subtype). These functions can be
811 used to retrieve and set the header type for functions and closures.
812
813 Moved lots of exports from lispinit.lisp into the files that contain the
814 thing being exported. Moved the object-set stuff into serve-event.lisp.
815
816 Added a call to GC-INIT to REINIT to facilitate making sure set-auto-gc-
817 trigger gets called.
818
819 Added the start of stuff necessary to support byte compiled functions.
820
821 Export REALP from LISP now that it's a real function. Minor tweek to
822 bounds testing in %%typep of complex numbers.
823
824 Chagned the unmatched close parenthesis warning to include the file
825 position so that it is easier to track them down.
826
827
828 Compiler:
829
830 Lots of changes to support the new function call, and to fix bugs exposed
831 by these changes.
832
833 On the SPARC, fixed sap+ not to flame out when the second argument is an
834 immediate that doesn't fit in a signed-byte 13 offset.
835
836 Don't substitute out LET variables when the initial value is a reference to a
837 :NOTINLINE functional. The inlinep information must be retained, since we
838 count on :NOTLININE calls never being local call converted.
839
840 Removed some debugger code that accedently got left behind.
841
842 Fixed SOURCE-TRANSFORM-STRUCTURE-TYPEP to return T-or-NIL in the frozen
843 included case, and not some random non-null lists.
844
845
846
847 3/29/92 to 4/7/92
848
849 Code:
850
851 Changed the default structure printer to print slot names as keywords
852 instead of unqualified symbols as per X3J13 cleanup STRUCTURE-READ-PRINT-
853 SYNTAX:KEYWORDS.
854
855 Added COMPILER-MACRO-FUNCTION, COMPILER-MACROEXPAND, COMPILER-
856 MACROEXPAND-1, and DEFINE-COMPILER-MACRO.
857
858 Fixed things that invoke *MACROEXPAND-HOOK* to coerce it to a function
859 before calling it as per X3J13 cleanup FUNCTION-TYPE:X3J13- MARCH-88 by
860 introducing KERNEL:INVOKE-MACROEXPAND-HOOK, which does that and then
861 funcalls it.
862
863 Fixed MACRO-FUNCTION to take an environment argument as per X3J13 cleanup
864 MACRO-FUNCTION-ENVIRONMENT:YES.
865
866 Added BYTES-CONSED-BETWEEN-GCS, a function that returns (and sets when
867 used with setf) *BYTES-CONSED-BETWEEN-GCS*. Additionally, it changes
868 *GC-TRIGGER* immediately to reflect the new values of *bytes-consed...*.
869
870 Changed GET-SETF-METHOD-MULTIPLE-VALUE to try to macroexpand-1 the form
871 when it's an atom in case it's a symbol-macro as per the X3J13 cleanup
872 SYMBOL-MACROLET-SEMANTICS:SPECIAL-FORM. Now you can safely INCF, etc.
873 symbol macros where the macroexpansion has side effects.
874
875 Fixed SETF of GETF to evaluate the various parts in the correct order as
876 per X3J13 cleanup SETF-SUB-METHODS:DELAYED-ACCESS-STORES.
877
878 Fixed bug in NTH-VALUE where it expanded into bogus code unless ``n'' was a
879 constant integer.
880
881 X3J13 cleanup SETF-MULTIPLE-STORE-VARIABLES:
882
883 Extend the semantics of the macros SETF, PSETF, SHIFTF, ROTATEF, and
884 ASSERT to allow "places" whose SETF methods have more than one "store
885 variable". In such cases, the macros accept as many values from the
886 newvalue form as there are store variables. As usual, extra values
887 are ignored and missing values default to NIL.
888
889 Extend the long form of DEFSETF to allow the specification of more
890 than one "store variable", with the obvious semantics.
891
892 Clarify that GET-SETF-METHOD signals an error if there would be more
893 than one store-variable.
894
895 Added real support for the REAL type.
896
897 Export REALP from LISP now that it's a real function. Minor tweek to
898 bounds testing in %%typep of complex numbers.
899
900 Changed the return value of SET-SYNTAX-FROM-CHAR from NIL to T as per X3J13
901 cleanup RETURN-VALUES-UNSPECIFIED:SPECIFY. [Hard to believe nobody has
902 complained about not conforming to this one.]
903
904 Removed the :enable-gc from save-lisp option, as it's no longer needed.
905
906 Allow SHADOW to take strings in addition to symbols as per X3J13 cleanup
907 SHADOW-ALREADY-PRESENT:WORKS.
908
909
910 Compiler:
911
912 Fixed a bug in DEFAULT-UNKNOWN-VALUES where it wasn't resetting the stack
913 if between 2 and 6 (inclusive) values were expected. Also, spiffed up the
914 case where > 6 values were expected. [On the RT, change 6 to 3]
915
916 Fixed NUMERIC-CONTAGION with respect to (COMPLEX RATIONAL).
917
918 Fixed the ``fold identity operation'' for *, /, and EXPT to no longer
919 consider #C(0 1) identity.
920
921 BARF is not return type NIL, since it calls CERROR.
922 Fixed function consistency checking to work better on deleted functions.
923 Added a condition handler in PRINT-ALL-BLOCKS.
924
925 Fixed RETURN-VALUE-EFFICENCY-NOTE not to flame out when some functions in the
926 tail set have no RETURN.
927
928 Changed SUBSTITUTE-SINGLE-USE-CONTINUATION to not substitute if the
929 continuation type assertions conflict.
930
931 Added optimization which deletes MV-BINDS when all variables have been deleted.
932
933 Minor tweeks to conform to X3J13 cleanup MACRO-DECLARATIONS:MAKE-EXPLICIT.
934
935 Added noise to support compiler-macros. Removed #+/- new-compiler
936 conditialization.
937
938 Fixed SYMBOL-MACROLET to allow declarations as per X3J13 cleanup SYMBOL-
939 MACROLET-DECLARE:ALLOW. When declaring things about symbol macros, type
940 declarations just wrap (the type ...) around the expansion, special
941 declarations signal an error, and ignore/ignorable declarations are
942 ignored.
943
944 Apply global function type declarations to calls and definitions of global
945 inline functions.
946
947 Changed CONVERT-AND-MAYBE-COMPILE to temporarily increate *bytes-consed-
948 between-gcs* by a factor of 4 instead of turning off all garbage
949 collection.
950
951
952 Construction Tools:
953
954 Changed the way the garbage collector gets turned on.
955
956
957
958
959 3/23/92 to 3/29/92
960
961 Code:
962
963 Adjust-array has been updated to be ANSI compliant by allowing arrays which
964 were not created with :adjustable non-nil to be adjusted to new dimensions.
965
966 Adjustable-array-p has been updated to ANSI standards. It returns T if adjust
967 ADJUST-ARRAY would return an EQ array.
968
969 Fixed DESCRIBE of alien variables.
970
971 Fixed EVAL of alien variables. We just hand it off to the real
972 interpreter.
973
974 Fixed DEFINE-CONDITION to clean up the slot description before handing it
975 to defstruct now that defstruct is less forgiving.
976
977 Added EXT:BYTES-CONSED-BETWEEN-GCS, a function that returns (and sets when
978 used with setf) *BYTES-CONSED-BETWEEN-GCS*. Additionally, it changes
979 *GC-TRIGGER* immediately to reflect the new values of *bytes-consed...*.
980
981 Added GC-INIT to facilitate making sure set-auto-gc-trigger.
982
983 Changed ROOM-MINIMAL-INFO to print everything that doesn't use
984 map-allocated-objects and also to indicate whether or not the garbage
985 collector is currenty on or off.
986
987 Fixed FIND-INTERRUPTED-FRAME to FLUSH-FRAMES-ABOVE before returning the
988 frame.
989
990 Changed PURIFY to bind *INTERNAL-GC* and then invoke the garbage collector
991 so all the auxiliary stuff (hooks, etc.) gets handled correctly.
992
993 Removed the :ENABLE-GC option from SAVE-LISP, as it's no longer needed.
994
995
996 Compiler:
997
998 Rewrote the way pseudo-atomic works for the SPARCs. Hence, all sparc fasl
999 files will have to be recompiled. An error will be signaled if you try to
1000 load an old fasl file. [SPARC only]
1001
1002 Fixed {alloc,dealloc}-number-stack-space to work with large amounts.
1003
1004 Changed CONVERT-AND-MAYBE-COMPILE to temporarily increate *bytes-consed-
1005 between-gcs* by a factor of 4 instead of turning off all garbage
1006 collection.
1007
1008 Rewrote the ub-32 logcount vop. The new version uses an O(log2 32) algo.
1009 resulting in 30 cycles (no branches). The old version used an O(n) algo.
1010 where n was the integer-length of the argument, resulting in somewhere
1011 between 4 and 130 cycles. [MIPS only]
1012
1013
1014
1015 3/7/92 to 3/23/92
1016
1017 Code:
1018
1019 Several debugger improvements:
1020 - The debugger now checks a new special DEBUG:*STACK-TOP-HINT* for a hint
1021 as to what it should use for the top of the stack. INTERNAL-ERROR, ERROR,
1022 BREAK, etc. all bind this before calling INVOKE-DEBUGGER so that there are
1023 not zillions of irrelevent stack frames at the top of the stack.
1024 - Fixed def-debugger-command to remove the old definition when a command
1025 is redefined.
1026 - Merged Miles' changes that allow the use of restart names as debugger
1027 commands.
1028 - Added ``DESCRIBE'' debugger command, which calls DESCRIBE on the function
1029 in the current frame.
1030
1031 Two fixes/changes to the new breakpoint based trace facility:
1032 - Protected function-end-cookie-valid-p against running across interpreted
1033 frames. This was causing it to flame out.
1034 - Don't bother warning about dynamic flow of control, because it is obvious
1035 from the call depth numbers and the warning can happen at real confusing
1036 times.
1037
1038 More DEFSTRUCT changes:
1039 - Make stuff work when conc-names make a subtype slot accessor have the
1040 same name as the supertype accessor.
1041 - Fixed PARSE-1-DSD to correctly recognize conc-name accessor duplication
1042 when there is multi-level inheritance. Now we look at the ACCESSOR-FOR
1043 info and see if it is an accessor for the same slot.
1044 - In PARSE-1-DSD, don't blow away the accessor when we are just redefining
1045 the same structure. For shadowing to be a problem, the accessor must be of
1046 a supertype.
1047 - In DSD-NAME, intern the symbol in *PACKAGE* if the accessor is NIL.
1048 - In DEFAULT-STRUCTURE-PRINT, directly use DSD-%NAME, rather than messing
1049 around creating a symbol.
1050
1051 A few more improvements to the new aliens stuff.
1052
1053 Declare the BACKQ-mumble's INLINE to avoid gratuitous pessimization.
1054
1055 Fixed define-condition to clean up the slot description before handing it
1056 to defstruct now that defstruct is less forgiving.
1057
1058 Added partial support for FDEFN objects.
1059
1060 Export FEATUREP from EXT.
1061
1062 Changed WITH-SYMBOL package hashtable lookup to not repeated call REM when
1063 going down a collision chain.
1064
1065 In TIME, fixed display of consing and page faults in the case where no GC time
1066 is displayed.
1067
1068 Added SEARCH-LIST-DEFINED-P, a predicate that tells if the search list is
1069 currently defined.
1070
1071
1072 Compiler:
1073
1074 Redid the way compiler backend specific data structures are accessed to
1075 simplify changing the set of backend specific data structures.
1076
1077
1078 Hemlock:
1079
1080 Fixed GET-EDITOR-TTY-INPUT to read the data into an c-call:unsigned-char
1081 buffer instead of a c-call:char so that when we access the elements from
1082 it, we don't get negative numbers, which make code-char unhappy.
1083
1084
1085 C runtime support code:
1086
1087 Fixed a bug in os_allocate_at that was causing load-foreign to lose.
1088
1089
1090 Construction scripts:
1091
1092 Changed ``mk-lisp'' to pause for 5 minutes before actually building the
1093 core to allow people to clear out. This can be overridden by supplying
1094 ``-now'' as the first argument.
1095
1096
1097
1098
1099 3/4/92 to 3/7/92
1100
1101 Code:
1102
1103 Several new-aliens changes:
1104 - Export SYSTEM-AREA-POINTER from ALIEN for consistency.
1105 - Export MAKE-ALIEN and FREE-ALIEN from ALIEN.
1106 - Export ALIEN-VALUE-TYPE from ALIEN-INTERNALS so that TYPE-OF can use it.
1107 - Changed ALIEN-VALUE printer to be less verbose.
1108 - Implemented %MAKE-ALIEN and FREE-ALIEN using malloc/free. Changed MAKE-ALIEN
1109 to accept an alien-type object as well as an Alien type descriptor.
1110 - Now that we've implemented FREE-ALIEN, finalize the Aliens created by
1111 interpreted WITH-ALIEN.
1112 - Added an (OPTIMIZE-INTERFACE (SAFETY 2)) declaration on %CAST so that we get
1113 a better type error message.
1114 - Added NULL-ALIEN and many doc-strings.
1115 - Allow (* char) in the c-string lisp-rep as well.
1116 - Allow storing of (* char) in c-strings so that we can initialize c-string
1117 variables and slots.
1118 - Added support in TYPE-OF for alien-value structures.
1119
1120 Added compiled-debug-function branch to DI:DEBUG-FUNCTION-FUNCTION.
1121
1122 Changed a few places where ESCAPE-REGISTER was left over to
1123 VM:SIGCONTEXT-REGISTER. This was causing function-end breakpoints
1124 to die.
1125
1126 Added Miles' changes to keep errors and warnings on one line if they fit.
1127
1128 Added Miles' stuff to use the same stream for input and output if they are
1129 the same file descriptor. This makes CHAR-POS work after input.
1130
1131 Changed LOAD-FOREIGN to be exported from ALIEN. Changed it have keyword args
1132 instead of optionals. Deleted obsolete linker argument.
1133
1134 Added Miles' stuff to diddle the child's pgrp for better signal handling in
1135 EXT:RUN-PROGRAM.
1136
1137 Fixed UNIX-IOCTL to not flame out of the cmd is a ub-32 instead of a sb-32.
1138
1139 Added Miles' UNIX:TCSETPGRP, UNIX:TCGETPGRP, and UNIX:TTY-PROCESS-GROUP.
1140
1141
1142 Compiler:
1143
1144 Picked up a SPARC specific assembly routine call improvement from Miles.
1145
1146 Miles' fixes to make disassembling [mc][tf]c1 work on the PMAX.
1147
1148
1149 Hemlock:
1150
1151 Fixed GET-EDITOR-TTY-INPUT to read the data into an c-call:unsigned-char
1152 buffer instead of a c-call:char so that when we access the elements from
1153 it, we don't get negative numbers, which make code-char unhappy.
1154
1155
1156 C Runtime Support:
1157
1158 Fixed function-end breakpoints for the sparc.
1159
1160
1161
1162 3/2/92 to 3/4/92 [16a]
1163
1164 Code:
1165
1166 Fixed a major bug in def-alien-type where the macroexpansion wouldn't
1167 include the code to define the type if the type was defined at compile
1168 time.
1169
1170 Allow LISP:AND, LISP:OR, and LISP:NOT in features lists in addition to
1171 :AND, :OR, and :NOT. This makes FEATUREP useful outside of #+ and #-.
1172
1173 Added ``:verbose nil'' to the load of site-init.lisp.
1174
1175
1176 C Runtime support:
1177
1178 Whenever we allocate a chunk of memory, set the protections to include
1179 VM_PROT_EXECUTE so that we can execute code on it.
1180
1181
1182
1183 2/24/92 to 3/2/92
1184
1185 Code:
1186
1187 Added some dimension type checking to parsing of alien array types.
1188
1189 Fixed a bug where the size of single-floats and double-floats wasn't know
1190 by the new aliens stuff.
1191
1192 Really make sure compute-time-overhead-ax has function type info in
1193 profile.
1194
1195 Reworked the SETQ branch of EVAL to pass more cases (like setting alien
1196 vars or constants) off to the real interpreter.
1197
1198 Fixed FMAKUNBOUND to return the symbol instead of T.
1199
1200 Moved OS-INIT into mumble-os.lisp, so that different OSes can do different
1201 things for initialization.
1202
1203 SET now protects against setting T, NIL, and keywords. (SETF
1204 SYMBOL-FUNCTION) now expands into FSET, which protects against defining
1205 NIL. %SET-SYMBOL-PACKAGE is a new function that sets the symbol package.
1206 %SP-SET-PLIST has been renamed %SET-SYMBOL-PLIST.
1207
1208 Fixed the ``mumble doesn't start with a search-list'' error message.
1209
1210 Fixed the MIPS disassembler OR control to look at the RT field instead of
1211 the RD field.
1212
1213
1214 Compiler:
1215
1216 Weakened component kind type assertion in JOIN-COMPONENTS.
1217
1218 Changed the %DEFCONSTANT transform to protect against trying to change T,
1219 NIL, or keywords.
1220
1221 Changed LET* and &AUX to allow duplicate variable names.
1222
1223 Re-wrote the SAP-REF-mumble VOPs for better immediate support.
1224
1225
1226 CLX:
1227
1228 Don't try to set char-bits for CMU, because we don't have any.
1229
1230
1231 C runtime support:
1232
1233 Instead of using os_zero to zero the control stack after a GC, fill it with
1234 zeros ourselves.
1235
1236 Whenever we allocate a chunk of memory, set the protections to include
1237 VM_PROT_EXECUTE so that we can execute code on it. This is so we can run
1238 under MACH 3.0.
1239
1240
1241
1242 2/18/92 to 2/23/92
1243
1244 Code:
1245
1246 Several bug fixes to the new alien stuff.
1247
1248 All SAP-REF-mumble functions now uniformly take the offset argument in
1249 bytes.
1250
1251 Changed *LOAD-VERBOSE* initial value to T.
1252
1253 Added *GC-RUN-TIME* accounting. Added some declarations, primarily for the
1254 benefit of GET-BYTES-CONSED.
1255
1256 Changed TIME to use *GC-RUN-TIME* to print the amount of time spent in GC.
1257
1258 Allow search-lists to expand into relative pathnames by quietly merging
1259 them with ``default:''.
1260
1261
1262 Compiler:
1263
1264 Added a new DEFTRANSFORM keyword, :IMPORTANT, which means an failed
1265 transform efficiency note should be generated when brevity<=speed, not just
1266 brevity<speed.
1267
1268 Added an assertion that we don't join components with random kinds.
1269
1270 Bind *PRINT-LINES* around compiler error output to *ERROR-PRINT-LINES*.
1271
1272 Make DELETE-COMPONENT set COMPONENT-KIND to :DELETED so that we can detect
1273 inconsistencies more easily.
1274
1275 When checking if the call we are about to convert is going to be deleted, look
1276 at the block holding the combination, not the ref, since the combination may be
1277 deleted when the ref isn't.
1278
1279
1280
1281
1282 2/12/92 to 2/18/92
1283
1284 Aliens and the foreign function call interface have been totally
1285 re-designed and re-written. Therefore, anything using aliens will have to
1286 be re-written. Complete docs are forthcomming.
1287
1288 Additional changes are as follows:
1289
1290 Code:
1291
1292 The USER package has been renamed COMMON-LISP-USER (with USER as a
1293 nickname) to go along with the LISP->COMMON-LISP rename.
1294
1295 Unix system calls are no longer in the MACH package, but in a new package
1296 named UNIX.
1297
1298 UNIX-DUP now returns the new FD as the first return value instead of the
1299 second to be more consistent with the other system calls.
1300
1301 You can no longer pass UNIX-READ a string (or any other vector). If you
1302 really want to do this, do something like:
1303 (system:without-gcing
1304 (unix:unix-read fd (system:vector-sap string) ...))
1305 Before, if someone interrupted the read, GCed, and then restarted the read,
1306 it would have read into the wrong place.
1307
1308 Fixed FORMAT to print the floating point exponent in decimal irrespective
1309 of *PRINT-BASE*.
1310
1311 The initial value of *LOAD-VERBOSE* is now T. Additional, LOAD no longer
1312 always binds *LOAD-VERBOSE* and *LOAD-PRINT-STUFF*. Now it only binds them
1313 when :verbose or :print are explicity supplied. Therefore, you can set
1314 either of these in your init file and it will take effect.
1315
1316 LOAD is less verbose when *LOAD-VERBOSE* is T. Specifically, it just
1317 prints the filename that was loaded (if it can be figured out).
1318
1319 Added ANSI features *LOAD-TRUENAME*, *LOAD-PATHNAME* and *LOAD-PRINT*.
1320
1321 As per ANSI, bind *READTABLE* to itself to make assignments file-local.
1322
1323 Added new variables EXT:*SOURCE-FILE-TYPES* and EXT:*OBJECT-FILE-TYPES*. When
1324 no file type is specified, LOAD tries the types in these lists to locate the
1325 source and object files. LOAD now recognizes source types "l", "cl" and "lsp"
1326 in addition to "lisp".
1327
1328 The compiler OPTIMIZE policy is now bound during load, so proclamations in a
1329 file don't leave the global policy clobbered when the load is finished.
1330
1331 Changed the :IF-SOURCE-NEWER option to signal an error and use restarts, rather
1332 than PROMPT-FOR-Y-OR-N. Fixed the load source case to actually load the
1333 source, rather than loading the object as a source file...
1334
1335 Changed load to deal with source files having NIL type more reasonably.
1336
1337 Added support for wild pathnames in load.
1338
1339 Improved handling of nonexistent files, in particular, don't always assume
1340 that missing files are source files. Added condition restarts for missing
1341 files.
1342
1343 Improved formatting of error and warning messages.
1344
1345 PRINT-UNREADABLE-OBJECT returns NIL, not #\>
1346
1347 Changed FLONUM-TO-STRING to consider widths < 1 to be 1 to prevent infinite
1348 looping in those cases.
1349
1350 Print the package name instead of NIL when we can't find a package in symbol
1351 reading. Also, read |LISP|::cons as CONS, not |cons|.
1352
1353 Replaces {alloc,realloc,dealloc}ate-system-memory with versions that use
1354 the routines exported by os.c instead of MACH specific vm_allocate.
1355
1356 Changed pointer< and pointer> to sap< and sap>.
1357
1358
1359 Compiler:
1360
1361 Fixed a bug that caused an internal error when a never-referenced function
1362 (e.g. from FLET) had non-local exit code in it.
1363
1364 Fixed spelling of "efficency" in several function names.
1365
1366 Print a error summary even when *compile-verbose* is false. (This is only
1367 printed when there are errors, so this doesn't seem a violation of the spirit
1368 of the spec.)
1369
1370
1371 Hemlock:
1372
1373 Removed all RFS authentication stuff from the MH interface, because
1374 kerberose handles it for us now.
1375
1376
1377
1378 2/3/92 to 2/12/92
1379
1380 Code:
1381
1382 Several changes to the reader. Specifically:
1383 - READTABLE-CASE is now supported.
1384 - Several bugs with respect to #+, #-, #n=, and #n# have been fixed.
1385 - The reader now signals the correct type of error when things go wrong
1386 instead of always signaling a simple-error.
1387 - Export new variable *ignore-extra-close-parentheses* if true (the
1388 default), extra close parens are only a warning, not an error. They used
1389 to be quietly ignored.
1390 - # is now a non-terminating macro character, so foo#bar is read as a
1391 symbol.
1392 - Added Ted's changes to make INTERNAL-READ-EXTENDED-TOKEN work when there
1393 are `|' escapes. The main significance of this is that #+nil '|foo;bar|
1394 and #:|foobar| now work properly. Also change this function to recognize
1395 unquoted colons so that #:foo:bar will error, but not #:foo\:bar.
1396
1397 Print unbound-markers to the correct stream instead of always printing them
1398 to *standard-output*.
1399
1400 Added UPGRADED-COMPLEX-PART-TYPE and UPGRADED-ARRAY-ELEMENT-TYPE.
1401
1402 Fixed (typep x '(and ...)) to not always return NIL.
1403
1404 When restarting a core, process the command line before printing the herald
1405 so that we can eval some form and quit without printing anything.
1406
1407 Added exports for LEAST-NEGATIVE-NORMALIZED-mumble-FLOAT.
1408
1409 The ``LISP'' package has been renamed ``COMMON-LISP'' with the nicknames
1410 ``LISP'' and ``CL.''
1411
1412
1413 Compiler:
1414
1415 Don't look at the LAMBDA-TAIL-SET of deleted functions to find out the result
1416 type, because there isn't any.
1417
1418 Changed LET* and &AUX to allow duplicate variable names.
1419
1420 Properly qualify kernel::*values-specifier-type-cache-vector* in BOUNDP check
1421 in %NOTE-TYPE-DEFINED. We were never clearing the cache.
1422
1423 More tweaking of arithmetic identities. (* x 0) transform is also
1424 rational-specific. Include CONSTANT-ARGUMENT in various arg type restrictions
1425 so that we don't get silly efficiency notes.
1426
1427 Changed multiplier recoding to left-associate the sum so that we are less
1428 likely to run out of non-descriptor registers.
1429
1430
1431
1432 1/26/92 to 2/3/92
1433
1434 Fixed filename parsing to correctly handle "/foo".
1435
1436 Changed NCONC to signal an error if a non-null ATOM appears other than as the
1437 last argument.
1438
1439 Fixed PPRINT to call OUT-SYNONYM-OF on it's stream argument so that it will
1440 actually work for the ``streams'' T and NIL.
1441
1442 Fixed profile to work again now that argument information may be omitted (due
1443 to low debug info.) First of all, don't seg-fault on functions w/o arg info;
1444 print a warning instead, and assume arbitrary args. Also, determine the
1445 precise arg counts for closures and funcallable instances (generic functions.)
1446
1447 Fixed some DIRED bugs resulting from the new pathname changes.
1448
1449 Compiler:
1450
1451 [Sparc:] Fixed integer comparison VOPs to be appropriately prioritized by cost.
1452
1453 In %DEFTRANSFORM, when determining wither to replace a transform or add a new
1454 one, check that it has the same note as well as the same type. This provides a
1455 way to have more than one transform with the same type signature.
1456
1457 Fixed (- x) to expand directly to (%negate x), rather than going by the
1458 intermediate of (- 0 x), since this is not a correct transformation. (- 0 0.0)
1459 is 0.0, not -0.0. Fixed the (- 0 x) transform to be restricted to rational
1460 args.
1461
1462 Changed COMMUTATIVE-ARG-SWAP to actually splice in the constant arg, so that
1463 variable substitution can't swap it back again.
1464
1465 Fixed multiply recoding to include many TRULY-THE's in the expansion so that
1466 the resulting shift-and-add code would actually open coded.
1467
1468 Added comprehensive handling of arithmetic and logical identities when an arg
1469 is -1, 0 or +1.
1470
1471
1472 1/17/92 to 1/26/92
1473
1474 Fixed the multi-dim array printer to use aref on the data vector instead
1475 of svref, because despite being simple and being a vector, it's not a
1476 simple-vector.
1477
1478 Fixed compiler error context stuff to know that the source-info-name for a file
1479 is now the namestring and not the pathname. This allows filenames to be
1480 printed in error context once again.
1481
1482 Fixed a bug in Purify that was manifesting on the RT.
1483
1484
1485 12/22/91 to 1/17/92
1486
1487 Mostly minor bug fixes and cosmetic improvements.
1488
1489 Code:
1490
1491 The MIPS disassembler now supports all the bells and whistles of the SPARC
1492 version. [Courtesy of Miles]
1493
1494 The pretty printer now ``unparses'' the results of backquote expressions
1495 and rebuilds the original backquote-comma expression. This makes reading
1496 macro definitions, etc. much easier. [Also courtesy of Miles]
1497
1498 Fixed a few minor bugs in debug-int.lisp:
1499 - When computing interpreted debug blocks, ignore successors to the component
1500 tail or other functions.
1501 - Compute the correct result for DEBUG-FUNCTION-START-LOCATION with
1502 interpreted debug functions.
1503 - In parse-debug-blocks, fix typecase to look for I-D-FUNCTION, not BLOCK.
1504
1505 Fixed FORMAT-JUSTIFICATION to assume the charpos is 0 if we can't tell from
1506 the stream. This was causing (FORMAT (MAKE-BROADCAST-STREAM) ...) to fail.
1507 The compiler sometimes binds *ERROR-OUTPUT* to (MAKE-BROADCAST-STREAM) when
1508 it wants to suppress error output.
1509
1510 Fixed OUTPUT-VECTOR to not consider *PRINT-ARRAY* in string printing.
1511
1512 Changed FEATUREP to barf if it is passed a list form with a strange CAR.
1513
1514 Changed the default list pretty-printer to only print lists that start with
1515 symbols as function calls if the symbol is fboundp.
1516
1517 Fixed MERGE-DIRECTORIES to correctly handle the case when the second
1518 directory spec is NIL. In this case it should just use the first directory
1519 verbatim. This fixes (MERGE-PATHNAMES "foo/bar" "").
1520
1521 Changed WITH-PATHNAME to call PARSE-NAMESTRING on the result of FILE-NAME.
1522
1523
1524 Compiler:
1525
1526 When we have a :SAFE VOP, flush result type checks when the result has only a
1527 single use.
1528
1529 In COMPILE-FILE use PATHNAME of the output stream rather than TRUENAME of the
1530 output-file. It seems that sometimes the file doesn't appear in the file
1531 system until some time after we close the file.
1532
1533 When computing costs for references by MOVE VOPs, don't signal an error if a
1534 cost is missing.
1535
1536 Several minor fixes to the SPARC code generators:
1537 - Fixed result type assertion on the :SAFE (tagged add) VOPs. The result type
1538 must be FIXNUM (when with :SAFE VOPs need not be proven type, only asserted.)
1539 - Added GENERIC-EQL/FIXNUM VOPs (with higher costs) to prevent spurious
1540 representation number-consing when a fixnum and a word-integer are compared
1541 (e.g. in ZEROP.)
1542 - Added notes for character move/coerce VOPs.
1543 - Added notes for float move/coerce VOPs.
1544 - Updated the integer move/coerce VOPs to correspond to the MIPS version.
1545 The fixnum cases are split off so that we have a better idea of the cost (for
1546 efficiency notes.) Added notes to these VOPs.
1547 - Added notes for SAP coercion VOPs. Fixed cost for MOVE-FROM-SAP.
1548
1549
1550 Hemlock:
1551
1552 Fixed REVERT-PATHNAME not to call FILE-WRITE-DATE on NIL if there it no
1553 checkpoint file.
1554
1555 Don't call NAMESTRING on NIL in REGION-COMPILE.
1556
1557 Deleted EVAL-WHEN (COMPILE) around DEFINE-SEARCH-KIND and
1558 SEARCH-ONCE-{FORWARD,BACKWARD}-MACRO so that we don't have to compile this file
1559 to compile search2.
1560
1561
1562 CLX:
1563
1564 Fixed DEFTYPE for CHAR-INFO-VEC. It is not in fact always length six (in
1565 fact, I believe it never will be.)
1566
1567 Fixed ordering of some forms that got trashed in the last merge.
1568
1569
1570
1571 12/19/91 to 12/22/91
1572
1573 Various fixes in the new pathname code. Following is some clarification of the
1574 nature of the new pathname support.
1575
1576 Programs that actually conform to the CLtL1 pathname spec will have very few
1577 problems. However, the CLtL1 spec was extremely vague, and CMU CL did not make
1578 use of much of the allowed flexibility, so many technically non-portable
1579 programs previously worked under CMU CL.
1580
1581 The main incompatible changes from CLtL1 to CLtL2:
1582 -- Symbols are no longer acceptable filenames.
1583 -- PATHNAME-HOST may be any object.
1584 -- :UNSPECIFIC is now a legal pathname component.
1585 -- MERGE-PATHNAMES now recognizes relative pathnames and treats them
1586 specially.
1587
1588 The format of directories is now specified (to be a list in a certain format.)
1589 This required an incompatible change from the previous practice of using a
1590 vector PATHNAME-DIRECTORY and using "DEFAULT" or :ABSOLUTE in the
1591 PATHNAME-DEVICE to indicate relative and absolute pathnames.
1592
1593 In a related change, the CMU SEARCH-LIST extension was changed so that the
1594 search-list now appears in the PATHNAME-DIRECTORY as
1595 (:ABSOLUTE #<Search-list "name"> ...)
1596
1597 A consequence of this change is that search-list definitions can now only
1598 contain directories (and other search lists); the component pathnames cannot
1599 have name or type specified. Other changes to search-lists:
1600 -- (SETF SEARCH-LIST) now accepts a string or pathname, and converts it into
1601 a one-element list.
1602 -- Search-list elements are now canonicalized to pathnames rather than to
1603 strings.
1604
1605 New features which are now supported:
1606 -- Wildcard pathnames are now fully supported. In addition to allowing :WILD
1607 in any pathname component, "extended wildcards" such as "foo*.*" are also
1608 supported. A consequence of this is that PATTERN objects may appear in
1609 wildcard pathname components instead of strings. See PATHNAME-MATCH-P and
1610 TRANSLATE-PATHNAME.
1611 -- As a CMU CL extension, a wildcard pathname may be used as the argument to
1612 any filesystem interface (like OPEN) as long as it matches only one file.
1613 -- The pathname :COMMON case mechanism provides a way around the problems of
1614 portably specifying string pathname components in the presence of operating
1615 systems with differing preferred case in their filesystem. An uppercase
1616 string "LISP" is mapped to the "customary case" (lowercase on unix.)
1617 Lowercase is also inverted: "readme" becomes "README". Mixed case is left
1618 alone. Note that this mechanism is explicitly enabled by supplying :CASE
1619 :COMMON to functions such as MAKE-PATHNAME. The default is the old
1620 behavior (:CASE :LOCAL).
1621
1622 Also, DIRECTORY now actually returns the TRUENAME of each file (as it was
1623 always supposed to do.) If a matched file is a symbolic link, the truename may
1624 be a file in some other directory that doesn't even match the pattern. The old
1625 behavior can be obtained by specifying :FOLLOW-LINKS NIL.
1626
1627 The new wildcard pathname mechanism has not yet been used to replace the old
1628 single-wildcard matching in Hemlock DIRED, etc.
1629
1630 Other bug-fixes:
1631 -- PURIFY now places indirect value cells and funcallable instances in static
1632 space. Purified code that contained closures or generic functions as
1633 function constants could have experienced bad pointer problems.
1634 -- The compiler now correctly compiles dynamic scope binding forms such as
1635 CATCH and special binding even when there is no code the scope.
1636 -- Fixed a bug in the FASL dumper's byte-swapping. This affects only
1637 implementors who do cross-compilation.
1638
1639 Also, a new heap-groveling tools was used to locate a major reason for the
1640 spurious retention of deleted Hemlock buffers. This has now been fixed. Stay
1641 tuned for more memory leaks.
1642
1643
1644 12/13/91 to 12/19/91
1645
1646 Code:
1647
1648 All pathname support has been rewritten to conform to X3J13. (Except logical
1649 pathnames haven't been written yet). Any code that makes assumptions about
1650 the format for pathnames (e.g. pathname-device being the search-list, or
1651 pathname-directory being a simple-vector) will have to be rewritten.
1652
1653 Changed SHOW-RESTARTS to also display the restart name (but only if it's
1654 not shadowed by a higher priority restart). Changed the restart command to
1655 look for restarts by name if a symbol is typed.
1656
1657 Substantially rearranged function describing to make it more consistent, and
1658 added support for describing interpreted functions.
1659
1660 Changed the FORMATTER stuff to use positional args where possible instead
1661 of always extracting elements from the rest arg.
1662
1663 The control stack is now zeroed between top level forms to reduce the
1664 number of dangling pointers.
1665
1666 Fixed pprint-logical-block :suffixes and *print-line* abbreviations to work
1667 together.
1668
1669
1670 Compiler:
1671
1672 Dumping of constant structures has been fixed to conform to X3J13, except
1673 that the generic function MAKE-LOAD-FORM isn't really used. Instead, a new
1674 defstruct option, :make-load-form-fun, has been added that can be used to
1675 specify a function that acts like a MAKE-LOAD-FORM method. When we have a
1676 CLOS that supports STRUCTURE-CLASS, the default method for MAKE-LOAD-FORM
1677 will use this information instead of having the compiler use it directly.
1678
1679 When the INHIBIT-WARNINGS optimize policy is 3, suppress warnings about
1680 undefined functions and variables.
1681
1682
1683 PCL:
1684
1685 Fixed SET-FUNCTION-NAME to correctly set interpreted function names.
1686
1687
1688
1689 12/12/91 to 12/13/91
1690
1691 Code:
1692
1693 The printer now goes to extra care to make sure structures only count as
1694 one level against *print-level* and are handled correctly with respect to
1695 *print-circle*.
1696
1697 Several fixes to the pretty printer:
1698
1699 - Actually store the change in the suffix length in the pretty-stream
1700 structure (was causing suffixes to be ignored with line abbrevs).
1701
1702 - Fixed an off-by-one error in desciding when to use line abbrevs.
1703
1704 - Fixed output-line to make sure the buffer is large enough to fit
1705 the prefix before we copy it in.
1706
1707 - Added several new keywords to pprint-logical-block to allow better
1708 support for pretty printing non-list objects.
1709
1710 - Changed pprint-function-call to put a fill-style newline between the
1711 the function and the first arg instead of a miser style newline.
1712
1713 - Printing lists when *print-circle* and *print-pretty* are both T now
1714 works.
1715
1716
1717
1718 12/5/91 to 12/12/91
1719
1720 Code:
1721
1722 Added automatic closing of opened FD-streams when they become garbage.
1723
1724 Fixed the interpretive indexing conditional (~[...~]) to take into account
1725 the list of sections is reversed. Also, check to see if zero is less than
1726 or equal the index, not the index less than or equal zero.
1727
1728 Added doc strings for pretty-printer defvars. Added a descend-into for
1729 print-vector. Added an export for *print-pprint-dispatch*.
1730
1731 Changed the dispatch for cons to pprint-fill and added a dispatch for
1732 (cons symbol) to pprint-function-call. This way the results of
1733 (list-all-packages) won't show up as a function call.
1734
1735 Bind *current-level* to 0, *print-readably* to nil, and *read-eval* to T
1736 when entering the debugger to make sure things print as expected.
1737
1738 Picked up Miles' latest disassembler changes (source printing.)
1739
1740 Changed reader to ignore undefined macro characters when *read-suppress* is T
1741 (i.e. in #+/- conditionals.)
1742
1743
1744 Compiler:
1745
1746 Fixed various places where the result type of a node was spuriously being
1747 inferred to be NIL, causing spurious code deletion.
1748
1749 Give a warning in DERIVE-NODE-TYPE when we prove inconsistent types. This
1750 is probably always a bug, but I don't want to use ASSERT until all
1751 the problems are fixed.
1752
1753 The compiler now recognizes a new class of local functions and compiles them
1754 more efficiently. Basically, in many cases local functions with more than one
1755 call can share the same stack frame with the caller as long as there is only
1756 one place that the function ever returns to (all other calls must be
1757 tail-recursive.) This compiles recursion-loops much more like setq/go loops.
1758
1759 Fixed various bugs related to dead code deletion which were revealed by the new
1760 optimizations.
1761
1762 Fixed a bug in the implementation of tail-recursive calls which could cause
1763 functions to use the number stack without a frame having been allocated. One
1764 effect of this bug was that a segment violation would always kill lisp.
1765
1766 If we undefine a structure type because of incompatible redefinition, then
1767 unfreeze it also.
1768
1769 Really fixed named constant referencing to preserve EQL-ness.
1770
1771
1772 Startup code:
1773
1774 Fixed to install the correct instruction on non-mips machines instead of
1775 always installing a mips break instruction.
1776
1777
1778 Hemlock:
1779
1780 Fixed indentation for FLET&c to check that we are actually in the first arg
1781 form before doing funny indentation.
1782
1783 Set the typescript stream character position to zero whenever the user presses
1784 enter.
1785
1786
1787 11/27/91 to 12/5/91
1788
1789 Code:
1790
1791 Almost all of the printing code has been rewritten/restructured to support
1792 all of the printing features added to the language. Some highlights:
1793
1794 *PRINT-READABLY* is now supported.
1795
1796 *PRINT-CIRCLE* works irrespective of *PRINT-PRETTY*.
1797
1798 *PRINT-LEVEL* abbreviation now works automatically inside structure
1799 printers.
1800
1801 XP has been replaced with a native pretty printer that is fully
1802 integrated with the rest of the system.
1803
1804 The macros WITH-STANDARD-IO-SYNTAX and PRINT-UNREADABLE-OBJECT have
1805 been added.
1806
1807 The FORMATTER macro has been written, and FORMAT extended to accept
1808 a function instead of a control string.
1809
1810 DATA-VECTOR-SET, the internal function responsible for doing the work of
1811 (SETF (AREF ...) ...), has been fixed to type-check the value.
1812
1813 The FASL loader has been changed so that you can concatenate fasl files
1814 together and load the result.
1815
1816 Added *READ-EVAL*, which when set to NIL causes #. to signal an error
1817 instead of evaluating the next form.
1818
1819
1820 Compiler:
1821
1822 You can now (DECLARE (IGNORE #'FUN)) as per an ANSI cleanup.
1823
1824 IGNORABLE, as in (DECLARE (IGNORABLE ...)) is now exported from the LISP
1825 package as ANSI adopted it.
1826
1827 Fixed TYPES-INTERSECT to consider any supertype of T to definitely intersect
1828 with anything.
1829
1830
1831
1832 11/25/19 to 11/27/91
1833
1834 Code:
1835
1836 Made TRACE and UNTRACE handle function objects as well as function names.
1837
1838 Made calling UNTRACE while with a BREAK from TRACE'ing work fine. No output
1839 occurs at the end of the call even though there was TRACE output at the
1840 beginning of the call before going into the BREAK loop.
1841
1842 Modified HANDLE-BREAKPOINT-AUX to test whether any user hook deactivated any
1843 breakpoints at the current code location. When there are no longer any
1844 breakpoints at this location, it foregoes setting an after breakpoint to
1845 re-establish the break instruction at this code location. There is no reason
1846 to plan to re-establish the break instruction since there are no longer any
1847 active breakpoints at the location.
1848
1849 Modified SUB-DEACTIVATE-BREAKPOINT to only remove the break instruction from
1850 the code when there are no longer any active breakpoints at the code location.
1851
1852
1853 Compiler:
1854
1855 Picked up a large number of changes for Miles' disassembler.
1856
1857 Miles' disassembler is now used on the PMAX in addition to the SPARC.
1858
1859 Fixed named constant dumping to allow direct references to interned symbols.
1860
1861
1862
1863 11/19/91 to 11/25/91
1864
1865 Compiler:
1866
1867 The new special form LOAD-TIME-VALUE now exists. See CLtL2 for information
1868 on how to use it.
1869
1870 Handling of constants has been cleaned up. When using COMPILE and
1871 COMPILE-FROM-STREAM, anything is allowed as a constant. When using
1872 COMPILE-FILE, dumping of arrays has been brought up to spec with respect to
1873 X3J13. Specifically:
1874 - displaced or adjustable arrays and vectors with fill pointers are
1875 converted to a simple-array duplicate during the dump.
1876 - arrays of floats are left as arrays of floats instead of being converted
1877 into arrays of element-type T that just so happen to hold a bunch of
1878 floats.
1879
1880 The type declarations for DOCUMENTATION and (SETF DOCUMENTATION) have been
1881 fixed to allow any symbol for the document kind.
1882
1883 If we see a reference to a named constant that isn't a number or charcter,
1884 then convert it as SYMBOL-VALUE. This is so that DEFCONSTANT'ed values
1885 remain EQL.
1886
1887
1888 Hemlock:
1889
1890 Added wm-hints for pop-up display windows. This will be necessary to receive
1891 input in OpenLook windowing systems, but we also thought this might be be MWM
1892 bug that prevents pop-up windows from receiving input. It was unlikely this
1893 was the problem since other Hemlock windows could receive input without the new
1894 wm-hint we set to get input in OpenLook windowing systems.
1895
1896 Delete SET-WINDOW-ROOT-Y since it is no longer used since we installed window
1897 groups.
1898
1899
1900
1901 10/14/91 to 11/19/91
1902
1903 CLX: updated to CLX R5. Please report any new X lossage. X applications
1904 should probably be recompiled.
1905
1906 PCL: merged with the lastest PCL version. PCL/CLOS applications must be
1907 recompiled.
1908
1909 Note: although some problems with the existing Alien code have been fixed,
1910 many problems remain. In particular, interpreted Alien code doesn't work.
1911 We are currently implementing a new Alien interface with much greater
1912 functionality (as well as fewer bugs.)
1913
1914 Cleanups:
1915 -- The types BASE-CHARACTER and EXTENDED-CHARACTER have been renamed to
1916 BASE-CHAR and EXTENDED-CHAR as per the CHARACTER-VS-CHAR cleanup.
1917 -- Added syntax checking on the DEFSTRUCT :CONC-NAME option, and also, allow
1918 it to be a string as well as a symbol.
1919
1920 Enhancements:
1921 -- Modified DESCRIBE-FUNCTION-COMPILED to better output function documentation
1922 relative to displaying arguments. The format now is as follows:
1923
1924 Function:
1925 <printed representation of function object>
1926 Function Arguments:
1927 <printed representation of function object>
1928 Function Documentation:
1929 ...
1930 -- Added EXT:*TOP-LEVEL-AUTO-DECLARE*. This variable allows control over how
1931 the interpreter treats SETQ's of undeclared variables.
1932 -- Modified EXT:COMPLETE-FILE to correctly complete files relative to the
1933 defaults. This fixes a long standing Hemlock problem: you could find files
1934 relative to the defaults with subdirectory specs, but you could not
1935 complete them.
1936 -- Added definition of SYSTEM:FOREIGN-SYMBOL-ADDRESS, which returns the SAP
1937 corresponding to a loaded foreign symbol.
1938 -- NTH-VALUE now no longer cones for it now doesn't cons for non-constant N
1939 less than 3.
1940 -- Added :UNIX to the features list.
1941
1942 Bug fixes:
1943 -- Changed inspector font specs to use point size instead of pixel size so
1944 that they will work on 100dpi devices.
1945 -- FDEFINITION should now signal undefined function errors when appropriate,
1946 instead of returning a trap object.
1947 -- EXPT now handles the SINGLE-FLOAT x SINGLE-FLOAT arg type combination.
1948 -- TRUNCATE now handles the single-float/double-float case.
1949 -- Bignum printing now works with base 36.
1950 -- Fixed DIRECTORY to no longer signal errors. It's job is to return a list
1951 of files matching its argument, and it should return nil when the spec is
1952 inaccurate.
1953
1954 Debug Internals interface:
1955 Changed name of DI:DO-BLOCKS to DI:DO-DEBUG-FUNCTION-BLOCKS.
1956
1957 Wrote DI:FUNCTION-END-COOKIE-VALID-P which takes a frame and a
1958 function-end-cookie. It returns whether the cookie is still valid. This
1959 provides a way for function-end breakpoint users to detect that the
1960 function end breakpoint was never run due to a THROW (or other non-local
1961 exit.)
1962
1963 Wrote DEBUG-FUNCTION-START-LOCATION which takes a debug-function; it
1964 returns a code-location before the body of a function and after all the
1965 arguments are in place. If this cannot determine that location due to a
1966 lack of debug information, it returns nil.
1967
1968 Fdefinition.lisp is all new, and it contains the following interface routines:
1969 EXT:ENCAPSULATED-DEFINITION
1970 Returns whatever definition is stored for name, regardless of whether it
1971 is encapsulated. This is SETF'able.
1972 EXT:ENCAPSULATE
1973 Replaces the definition of name with a function that binds name's
1974 arguments a variable named argument-list, binds name's definition to a
1975 variable named basic-definition, and EVAL's body in that context. Type
1976 is whatever you would like to associate with this encapsulation for
1977 identification in case you need multiple encapsuations of the same name.
1978 EXT:UNENCAPSULATE
1979 Removes name's most recent encapsulation of the specified type.
1980 EXT:ENCAPSULATED-P
1981 Returns t if name has an encapsulation of the given type, otherwise nil.
1982
1983 The old encapsulation-based tracer has been replaced with a new one based on
1984 breakpoints. The new traced is exported from DEBUG, using the same name and
1985 interface as the old one. The old tracer is still exported from EXTENSIONS as:
1986 ext:*old-trace-print-level*
1987 ext:*old-trace-print-length*
1988 ext:*old-traced-function-list*
1989 ext:*max-old-trace-indentation*
1990 EXT:OLD-TRACE
1991 EXT:OLD-UNTRACE
1992
1993 Miles's retargetable disassebler should now be available on the SPARC.
1994
1995
1996 Compiler:
1997
1998 The compiler now recognizes function calls that never return, and takes this
1999 into consideration when determining the possible control flows. A function can
2000 be declared not to return by declaring its result type to be NIL (not to be
2001 confused with NULL). If a function declared NIL does return, and error will be
2002 signalled.
2003
2004 Optimizations:
2005 -- Fixed some problems where the compiler would unnecessarily number-cons
2006 because it wasn't taking into consideration the advantages of keeping a
2007 descriptor representation.
2008 -- The CLOS FUNCALLABLE-INSTANCE-P is now a primitive predicate.
2009 -- Loop rotation is now done, eliminating the unconditional branch at the
2010 bottom of while loops.
2011 -- Control flow determination now recognizes code that doesn't return (error
2012 traps, throws, etc.) so as to minimize unconditional branches in code
2013 containing error checks.
2014 -- Added derive-type methods for ASIN, ACOS, ACOSH, ATANH and SQRT which figure
2015 out whether the result type is real on the basis of the argument range.
2016 Added inference methods on irrational functions whose result is real
2017 when the args are.
2018 -- Many previously defined optimizations are now being triggered more
2019 consistently when they are applicable.
2020 -- Improved inline expansion of the set functions by causing implicit MEMBER
2021 calls to be inlined as well.
2022
2023 Enhancements/big fixes:
2024 -- Suppress argument assignment warning if the function type doesn't give us
2025 any new information.
2026 -- The compiler now recognizes that the second value of INTERN can be NIL.
2027 -- Lambdas with &key but no specified keywords are now correctly parsed.
2028 -- Fixed a block compilation / FTYPE declaration interaction.
2029 -- Fixed TAGBODY not to consider NIL to be a tag.
2030 -- PCL defmethods now have qualifiers and specializers in their names.
2031 -- Fixed a number of problems with dead code deletion, now that more dead code
2032 is being detected.
2033 -- FTYPE proclamations on structure accessors are now quietly ignored, instead
2034 of causing the structure to be undefined.
2035 -- Added a RANDOM derive-type method.
2036 -- Added multiplier recoding for ub-32 * ub-32 => ub-32.
2037
2038 SPARC:
2039 -- Fixed decode-float for long-floats (fixing long float printing, etc.)
2040 -- CHECK-STRUCTURE now uses a conditional trap, reducing code size.
2041
2042
2043 Hemlock:
2044
2045 Modified CREATE-WINDOW-WITH-PROPERTIES to supply :input :on to allow silly
2046 OpenLook pseudo-X11 Sun servers to do the right thing.
2047
2048 Added termcap parsing for things like begin/end bold, underline, etc.
2049
2050 Fixed a redisplay problem that often caused subprocess output to not be
2051 displayed until some input event came along.
2052
2053 There's a new "Buffer Modified Hook" function that raises the "Echo Area"
2054 window when it becomes modified. You can control this with the Hemlock
2055 variable: "Raise Echo Area When Modified". It isn't good enough to set "Set
2056 Window Autoraise" to :echo-only because output appears in the echo area at
2057 times when the echo area is not set as the current window. The only
2058 malfunction of setting this new variable is sometimes Hemlock clears the echo
2059 area, which modifies it, and then does not output any text; in this situation,
2060 Hemlock would raise the echo area, but it doesn't need to do so. This cannot
2061 be eliminated due to the nature of the "Buffer Modified Hook".
2062
2063 Fixed the :file branch of "Help on Parse" to trim leading directory
2064 components off the pathname if it wouldn't otherwise fit on the screen.
2065
2066 Before doing directory translations, try a probe-file of the source file
2067 first. This way, you don't have to have 400 different translations
2068 for ever conceivable source path.
2069
2070 Fixed "Load File" to correspond with the manual by making it regard "Remote
2071 Compile File". It was always going through RFS when it should do so
2072 conditionally.
2073
2074 Generalized FLET-style indentation to reference the variable
2075 "Lisp Indentation Local Definers", and also to recognize LABELS (as well as
2076 MACROLET and FLET.)
2077
2078 Added DEFINDENT's for the "WIRE" package.
2079
2080 Fixed name of mail drop MH profile component from mail-drop to MailDrop
2081
2082 "Insert Message Buffers" now handles multiple windows appropriately when
2083 inserting text into a Netnews Post buffer.
2084
2085 Changed Hemlock window flashing to be less spastic in the presence of net delays.
2086
2087 Netnews:
2088
2089 The binding #k"r" has changed to "Netnews Reply to Sender in Other Window" in
2090 "News-Headers" and "News-Message modes.
2091
2092 The binding #k"R" has changed to "Netnews Reply to Group in Other Window" in
2093 "News-Headers" and "News-Message" modes.
2094
2095 Changed NN-REPLY-CLEANUP-SPLIT-WINDOWS to delete the message-window instead of
2096 the reply-window.
2097
2098 Split CONNECT-TO-NNTP into two: RAW-CONNECT-TO-NNTP and CONNECT-TO-NNTP. The
2099 first is the same as the original with the addition of specifying a timeout
2100 value to MAKE-FD-STREAM. The second binds a handler for the IO-TIMEOUT
2101 condition and gives the user an error message.
2102
2103 Added Hemlock variable "Netnews NNTP Timeout Period" to control how long
2104 Netnews will wait (while connecting to NNTP) before timing out.
2105
2106 Changed *nntp-server* into Hemlock variable "Netnews NNTP Server".
2107
2108 Added command "Netnews Reply to Sender in Other Window".
2109
2110 Added functions NN-SETUP-FOR-REPLY-BY-MAIL and NN-REPLY-TO-SENDER to hold
2111 common code for "Netnews Forward Message", "Netnews Reply to Sender", and
2112 "Netnews Reply to Sender in Other Window".
2113
2114 Changed default bindings to use "Netnews Reply to Group in Other Window" and
2115 "Netnews Reply to Sender in Other Window"
2116
2117
2118 10/8/91 to 10/14/91
2119
2120 This is version 15b (destined for beta release.)
2121
2122 Debugger:
2123 Fixed to use SYMBOL-MACROLET instead of "SYMBOL-MACRO-LET."
2124 Updated documentation on MAKE-BREAKPOINT and ACTIVATE-BREAKPOINT.
2125
2126 The latest alpha test breakpoint interface is available as described in the
2127 Debugging Tools Programmer's Interface. Also, support for setting
2128 breakpoints from the editor has been changed to use the "WIRE" package
2129 directly. There is a new interface for deleting breakpoints set by the
2130 editor. This is all alpha test code.
2131
2132 Added an optional argument to PRINT-FRAME-CALL-1, an internal function, to
2133 control whether it precedes its output with a newline.
2134
2135 Hemlock:
2136 Added a form to SERVER-DIED to clean up breakpoint-infos for that server.
2137 Added a missing ~ in slave compilation the echo area message. Oops...
2138
2139 Changed hemlock init file loading to accept .hemlock-init as well as
2140 hemlock-init. Fixed ED doc string.
2141
2142 Modified TTY-DELETE-WINDOW to be consistent with TTY-MAKE-WINDOW's creation
2143 policy; that is, if the latter makes window by putting the new one after
2144 some hunk it shrunk to make room, then the former should prefer to grow the
2145 previous hunk, not the next. This was the intended behavior.
2146
2147 The "Debug Breakpoint" and "Debug Delete Breakpoints" commands are ready
2148 for alpha testing, which they need a lot. Some other bugs have been fixed
2149 too, but those were long enough ago, I don't remember them.
2150
2151
2152 9/18/91 to 10/8/91
2153
2154 Code:
2155
2156 Changed ordering of CHAR-NAME-ALIST to prefer NEWLINE, ESCAPE and DELETE to
2157 LINEFEED, ALTMODE and RUBOUT (when printing.)
2158
2159 Changed the internal directory support functions to use the C routines
2160 opendir, readdir, and closedir, so that directory works under sunos.
2161
2162 In RUN-PROGRAM, don't set XTABS on the pty so that tabs will be passed
2163 through to as is. This allows better tab support in Hemlock shell buffers.
2164
2165 Added :KEY argument to REDUCE.
2166
2167 Fixed SUBSTITUTE & friends to pass arguments to the TEST in the right order.
2168
2169 Fixed SUBSTITUTE not to randomly apply the KEY to the OLD value.
2170
2171 Changed LIST NSUBSTITUTE & friends to work in the :FROM-END case.
2172
2173 Added export of remote-object, the name of a type, from the "WIRE" package.
2174
2175 Added WIRE-{OUTPUT,GET}-BIGNUM and extended WIRE-{OUTPUT,GET}-OBJECT to use
2176 them.
2177
2178
2179 Compiler:
2180
2181 Fixed bug in FIND-REFERENCE-FUNCTIONS introduced by the last change. Ignoring
2182 of top-level references was effectively disabled, causing top-level code to
2183 normally be incorporated in real function components.
2184
2185 Fix to make unreferenced arguments in local call work. We were correctly
2186 only popping (into the INTERNAL-APPLY arglist) the number of referenced
2187 args, but INTERNAL-APPLY was assuming that all arguments were present
2188 in the list. Added a flag to INTERNAL-APPLY to control this behavior.
2189 This was breaking full call to interpreted functions as well, since the
2190 XEP did a local call to the main entry.
2191
2192 Changed NOTE-FAILED-OPTIMIZATION to print the transform note explaining what
2193 the transform was trying to do.
2194
2195 Fixed lossage concerning the following compiler output:
2196 Definition has N args, but the previous definition had M.
2197 This used to be a note, but it should be a warning.
2198
2199 If it is a warning that users change the definitions of structures, then it
2200 should be a warning when users change the definitions of functions. In both
2201 cases, code might be lying around assuming an incorrect interface. I think
2202 this is equally dangerous. Also, changing the redefinition of arg counts to a
2203 warning makes it more compatible with the warning that someone supposedly
2204 called a routine with the wrong number of args.
2205
2206 Changed SYMBOL-MACRO-LET to SYMBOL-MACROLET.
2207
2208
2209 Hemlock:
2210
2211 Added "Typescript Slave Status", with binding H-s.
2212
2213 Added font support for the TTY. Allow active region highlighting and open
2214 paren highlighting when on the TTY, as they now work.
2215
2216 Changed the compile-in-slave utilities to count notes and display in
2217 completion message. Also fixed not to print echo area messages "Error in
2218 NIL ..."
2219
2220 Fixed "Move Over )" to use a permanent mark instead of a temporary mark
2221 because it deletes text.
2222
2223 Adjusted length of the :hemlock-banner modeline-field to prevent the
2224 *truncated-field-character* from appearing after the date.
2225
2226 Fixed sentence-offset-forward to work at the end of the buffer.
2227
2228 Added noise to skip over comments in /etc/termcap, which start with a # and
2229 end on the end of the line. This was necessary in order to bring Hemlock
2230 up under SunOS, because the SunOS /etc/termcap file has comments in it.
2231
2232 Deleted unused function TTY-FIND-BIGGEST-HUNK.
2233
2234 Modified TTY-DELETE-WINDOW to be consistent with TTY-MAKE-WINDOW's creation
2235 policy; that is, if the latter makes window by putting the new one after some
2236 hunk it shrunk to make room, then the former should prefer to grow the previous
2237 hunk, not the next. This was the intended behavior.
2238
2239 Modified %SET-MODELINE-FIELD-FUNCTION to allow its function argument to be a
2240 symbol or function since the purpose is to FUNCALL the thing. Since the new
2241 system is up to spec on the disjointedness of functions, this needed to be
2242 fixed for usefulness.
2243
2244
2245 C Support:
2246
2247 Moved the heap around to free up 0x0f000000...0x0fffffff, cause Mach 3.0
2248 wants to use that range.
2249
2250
2251
2252 9/13/91 to 9/18/91
2253
2254 Hemlock:
2255
2256 Removed some old bindings for some netnews commands that no longer exist.
2257
2258 The Netnews post delivery code no longer adds a DATE field to the message. The
2259 lower level transport mechanism does this.
2260
2261 Modified MH-PROFILE-PATHNAME and MH-DIRECTORY-PATHNAME to use TRUENAME on the
2262 result of USER-HOMEDIR-PATHNAME now that it returns a logical name instead of
2263 an absolute pathname.
2264
2265
2266
2267 8/29/91 to 9/13/91
2268
2269 Code:
2270
2271 Changed all places absolute pathnames were used to indirect search-lists,
2272 mostly library:. The library: search-list is built from the CMUCLLIB
2273 environemnt variable if it exists, and defaults to /usr/misc/.cmucl/lib/ if
2274 not.
2275
2276 Moved OS specific functions into the new files mach-os.lisp and
2277 sunos-os.lisp. Also, added some routines to abstract some OS operations,
2278 like get-page-size.
2279
2280 Optimized the TIME macro to keep the consing overhead of using it zero.
2281
2282
2283 Compiler:
2284
2285 Fixed a bug where the compiler would flame out when it came across an
2286 NLX-INFO structure when it was expecting a LEAF.
2287
2288 Fixed VALUES declaration to work correctly when zero values are specified.
2289
2290 Fixed FORMAT transform to warn if there are to many or too few args.
2291
2292
2293 Hemlock:
2294
2295 Changed the default value of "Slave Utility" to just "lisp" which hopefully
2296 will be found on path:. If you don't have lisp on your path, you need to
2297 set "Slave Utility" to the full pathname of lisp, /usr/misc/.cmucl/bin/lisp
2298 on MACH machines.
2299
2300 "Netnews Show Whole Header" is bound to #k"w" in "News-Headers" and
2301 "News-Message" modes.
2302
2303 "Netnews Show All Headers" is bound to #k"h" in "News-Headers" and
2304 "News-Messages" modes.
2305
2306 "Netnews Show Whole Header" replaces the command, in name only, "Netnews Show
2307 All Headers".
2308
2309 The Netnews interface is more polished and consistent in naming. We fixed one
2310 or two small bugs.
2311
2312
2313 C startup code:
2314
2315 Search the CMUCLLIB search path for the core file instead of always
2316 assuming that /usr/misc/.cmucl/lib is going to hold it.
2317
2318
2319
2320
2321 8/9/91 to 8/29/91
2322
2323 Changed EVAL to use the recorded CONSTANT-VALUE when evaluating constants so
2324 that interpreting references to constants in the compiler environment works
2325 better. Now (defconstant a 3) (defconstant b (+ a 4)) works again.
2326 Make all non-symbol atoms self-evaluate (an X3J13 cleanup.)
2327
2328 Fixed one-off error in list remove-duplicates :from-end.
2329
2330 Added #P pathname read syntax, and changed the pathname printer to use it.
2331 Fixed all recursive READ calls in sharp-macros to specify eof-error-p T, so
2332 that EOF errors are signalled when appropriate.
2333
2334 Added code to compile the argument to TIME when possible, and print a warning
2335 when it isn't.
2336
2337 Fixed compiler problems with maybe-inline functions and defmethods that use
2338 &allow-other-keys. Also fixed some problems with block compilation and unused
2339 function deletion.
2340
2341 Fixed a problem with Netnews's startup header window proportions.
2342
2343 Added new command, "Netnews Show All Headers".
2344
2345
2346 7/16/91 to 8/9/91
2347
2348 Code:
2349
2350 Merged Simon Leinen's fix to OUTPUT-SYMBOL. This amounted to deleting an
2351 incorrect and questionably optimal optimization of printing package qualifiers.
2352
2353 Lots of changes to the time parsing and printing extensions including bug
2354 fixes.
2355
2356 Modified DESCRIBE-FUNCTION-COMPILED and DESCRIBE-SYMBOL to print function and
2357 macro doc strings before arg and result info.
2358
2359
2360 Hemlock:
2361
2362 Modified "Fill Lisp Comment Paragraph" to fill strings with the appropriate
2363 indentation as a fill prefix. When invoked outside a comment or string, this
2364 fills contiguous lines with the same, non-empty intial whitespace. Before
2365 executing this last case, the command prompts for confirmation, but you can
2366 inhibit this prompting by setting "Fill Lisp Comment Paragraph Confirm" to nil.
2367 This last case is useful for filling long EXPORT lists or other length listings
2368 of symbols or indented text.
2369
2370 Added some prototype netnews support. Details to be anounced later.
2371
2372 Modified "Delete Draft and Buffer" and DELIVER-DRAFT-BUFFER-MESSAGE to work
2373 with Netnews drafts.
2374
2375 Modified "Insert Message Region" and "Insert Message Buffer" to work with
2376 Netnews message and post buffers.
2377
2378 Added a "Manual Page" command, which runs man(1) in a shell buffer.
2379
2380
2381 Hemlock-internals:
2382
2383 CREATE-WINDOW-FROM-CURRENT now creates a window according to its new proportion
2384 argument instead of simply splitting the current window in two. It returns nil
2385 without doing anything if either window is too small.
2386
2387 WINDOW-GROUP-CHANGED no longer unifies the sizes of window when the user
2388 resizes a group. It now tries to distribute the new size of the group
2389 according to the proportions of the old size consumed by the windows.
2390
2391 Changed ARRAY-ELEMENT-FROM-MARK to use AREF for the Netnews stuff. I
2392 documented this to be an internal interface since a few other modes use it.
2393
2394 WRITE-FILE now takes an :append argument.
2395
2396
2397
2398
2399 6/4/91 to 7/16/91
2400
2401 Code:
2402
2403 Fixed make-array to allow :initial-contents to be built out of any kind
2404 of sequence, not just lists.
2405
2406 Fixed vector-push and vector-push-extend to return the original fill
2407 pointer, not the new fill pointer.
2408
2409 Fixed vector-pop to return the value indexed by the new fill pointer, not
2410 the original fill pointer.
2411
2412 Fixed two bugs in the truncation code.
2413
2414 When using the form offset to find the source form, bind *read-suppress* to
2415 T to keep the reader from barfing on stuff that will no longer read (e.g.
2416 #.foo in the wrong package, etc.).
2417
2418 Fixed a typo in an error message in defstruct.
2419
2420 Fixed FORMAT-PRINT-NUMBER to correctly insert commas for negative numbers
2421 (don't print -,123).
2422
2423 Fixed get-setf-method to only inhibit for local functions, not local macros
2424 too.
2425
2426 Fixed COPY-DESCRIPTOR-TO-STREAM to set a flag when it closes the descriptor
2427 and to check this flag before it selects. This way, if we recursively
2428 enter the handler (due to write-string calling something that calls
2429 serve-event), then we won't blow out when we unwind.
2430
2431 Merged old system changes. Added noise to SETUP-CHILD to try execing
2432 /bin/sh if the original exec didn't work because of a bad magic number.
2433
2434 Tweaked PRINT-HERALD to print the backend version, and to say to send mail to
2435 cmucl-bugs.
2436
2437
2438 Compiler:
2439
2440 Fixed the compiler function database to list that the MAKE-ARRAY
2441 :INITIAL-CONTENTS argument can be anything, because if the array has zero
2442 dimensions, then the :initial-contents keyword is used as is.
2443
2444 Made the default for COMPILE-FILE's :error-file argument be nil. It is a dated
2445 notion and never desired to expect compilation to defaultly produce an error
2446 output file. You always compile in the editor catching the output or in a
2447 system building utility that saves all the compiler's output.
2448
2449 Fixed a problem in EMIT-ARG-MOVES. If we do a coercion + move-arg, then the
2450 coercion would be inserted after the ALLOCATE-FRAME VOP, which caused register
2451 save computation to get confused.
2452
2453 Fixed the make-array derive type optimizer to only spec the dimensions
2454 if the created array is known to be simple. Otherwise, someone might
2455 adjust it, which would cause the type to be wrong.
2456
2457
2458 Hemlock:
2459
2460 Raised the *hemlock-version* to 3.5 (.1 greater than the last old RT core.)
2461
2462 "Shell Complete Filename" is a new command that attempts to complete the
2463 filename immediately before point. The commands that start "Process" buffers
2464 with shells establish a stream with the shell that tries to track the current
2465 working directory of the shell. It uses the variable "Current Working
2466 Directory" to do this. For it to work, you should add the following to your
2467 .cshrc file:
2468 if ($term == emacs) then
2469 alias cd 'cd \!* ; echo ""`pwd`"/"'
2470 alias popd 'popd \!* ; echo ""`pwd`"/"'
2471 alias pushd 'pushd \!* ; echo ""`pwd`"/"'
2472 endif
2473
2474 Added binding, M-escape, for "Shell Complete Filename" in "Process" mode.
2475
2476 Removed the definitions of command-char-bits-limit, command-char-code-limit,
2477 KEY-CHAR-BITS, and KEY-CHAR-CODE. These are no longer used anywhere in the
2478 system.
2479
2480 Fixed some syntax constants to make 8-bit chars work.
2481
2482 Modified "Visit File" to issue a loud message whenever another buffer already
2483 contains the file visited. The quiet message often went unnoticed defeating
2484 its purpose.
2485
2486 Fixed a bug in "Center Line" which caused an internal error when invoked on the
2487 last line of the buffer with the buffer end at the end of the line.
2488
2489 Commented LISP-INDENTATION to explain what it is looking for when it determines
2490 how to indent. Added LISP-INDENTATION-CHECK-FOR-LOCAL-DEF and used it in
2491 LISP-INDENTATION to check for FLET or MACROLET syntax, so we could correctly
2492 indent local definitions. They used to appear as normal forms in function call
2493 syntax, but now they indent as definitions.
2494
2495 Added DEFINDENT's for the "DEBUG-INTERNALS" interface.
2496
2497 Modified LISP-GENERIC-INDENTATION to check if the mark in was in a string
2498 context. If it is, then we return the column one greater than the opening
2499 double quote. Otherwise, we use the first preceding non-blank line's
2500 indentation. This fixes the problem with doc strings and ERROR strings which
2501 got indented respectively at the beginning of the line and under the paren for
2502 the ERROR call.
2503
2504 Added "Fill Lisp Comment Paragraph" to core. This also works for strings,
2505 except for the first line of the string.
2506
2507 Added binding for "Fill Lisp Comment Paragraph" to M-q in "Lisp" mode.
2508
2509 Added a doc string to EXT:SAVE-ALL-BUFFERS.
2510
2511 Added a doc string to HI:DIRECTORYP.
2512
2513
2514 Release 14c to beta....
2515
2516
2517 5/24/91 to 6/4/91
2518
2519 Further space reductions from compiler policy tweaks. This core is 19.1 meg.
2520
2521 Tuned bignum code and added declarations and to reduce number consing.
2522
2523 Added :TIMEOUT argument to MAKE-FD-STREAM. The SYSTEM:IO-TIMEOUT condition is
2524 signalled if a timeout is specified and exceeded.
2525
2526 Added :PACKAGE context declaration.
2527
2528 Changed a null test in LOOP into an endp test.
2529
2530 If we enter trace recursively (due to the printer calling the traced function),
2531 then just quietly call the function, instead of signalling an annoying "unable
2532 to trace" error.
2533
2534
2535 5/16/91 to 5/24/91
2536
2537
2538 CLX:
2539
2540 Fixed the CLX X interface to be much more efficient, as well as fixing some
2541 bugs. The low-level I/O to the server is now faster and conses much less.
2542 Enabled "fast" pixarray read/write for CMU. Code that uses X must be
2543 recompiled. The X inspector now works reliably with both the PMAX and RT X
2544 servers.
2545
2546
2547 Code:
2548
2549 Made SYSTEM:BITS, BYTES, etc., be defined in the null environment so that they
2550 can be inline expanded. This was causing spurious consing in various system
2551 code.
2552
2553 Some tuning and bug fixes to FD-STREAMS (file descriptor streams) which are
2554 used for file I/O (and now for communication with the X server.) Also, now in
2555 OPEN complains if you try to open a non-writable file for output with :RENAME
2556 or :RENAME-AND-DELETE. Previously this would succeed as long as the directory
2557 was writable. SYSTEM:READ-N-BYTES on FD streams is now more efficient, but
2558 does *not* wait using SERVE-EVENT; it blocks instead. Fixed a problem with
2559 LISTEN at EOF on FD-STREAMS. Made *standard-output* a two-way stream so that
2560 reading *standard-input* will force output on standard output.
2561
2562 Fixed CONNECT-TO-INET-SOCKET to check that we successfully looked up the name
2563 so that we don't get segment violations on unknown hosts.
2564
2565 Fixed sequence functions that have output type specifiers to correctly handle
2566 DEFTYPE types and other complex type specifiers.
2567
2568 Some tuning in SERVE-EVENT which reduces consing and speeds up Hemlock and
2569 terminal I/O.
2570
2571
2572 Compiler:
2573
2574 Representation conversion of a SAP (system area pointer) to a pointer
2575 representation now results in an efficiency note.
2576
2577 [PMAX] Fixed TRUNCATE on floats to truncate instead of rounding.
2578
2579 If debug-info is < 1, then don't dump debug-args or function type.
2580
2581 Fixed a problem that could cause type checks to be spuriously deleted in some
2582 contexts where there is a local change in the SAFETY optimization policy.
2583
2584 When doing inline expansion of recursive functions, respect NOTINLINE
2585 declarations.
2586
2587 Changed declaration processing to treat a FUNCTION declaration as an ordinary
2588 variably type declaration (as proposed by X3J13). The old semantics is still
2589 obtained when the second arg to the declaration is a list (as it always would
2590 be in the old usage.)
2591
2592 Added support for the EXT:CONSTANT-FUNCTION declaration (already in the
2593 documentation.)
2594
2595 When a DEFUN is compiled and the name has a FTYPE declaration, then a note is
2596 printed if any arguments to the function are assigned to (i.e. SETQ) in the
2597 body, as this inhibits application of the FTYPE declaration to the argument
2598 variables.
2599
2600 &AUX bindings are now compiled with the EXT:OPTIMIZE-INTERFACE policy, mainly
2601 so that proper type checking is done for hairy keyword args.
2602
2603 (<mumble>-P x) structure predicates are now just as efficient as
2604 (TYPEP x '<mumble>).
2605
2606
2607 4/28/91 to 5/16/91
2608
2609 New packages:
2610
2611 Changed the windowing inspector to use standard fonts (courier) and to
2612 generally work under the new-compiler system. Also, made the help window
2613 bigger.
2614
2615 An improved version of the profile package (previously in the library) is now
2616 in the core. It now compensates for recursive calls or nested calls, and
2617 interacts better with trace and function redefinition.
2618
2619 Code:
2620
2621 Now almost all Common Lisp functions which are SETFable have a (SETF name)
2622 function. The exceptions are functions where it makes no sense (LDB, GETF),
2623 and a few other functions (GET, GETHASH.) Now SETF of APPLY works for any
2624 function which has a setf function.
2625
2626 Changed GET-SETF-METHOD to ignore setf macros (always global) when there is a
2627 local macro or function of the place function. [An x3j13 cleanup]
2628
2629 Some fixes to DI: condition report methods, and a preliminary version of
2630 breakpoints.
2631
2632 MACROEXPAND now expands symbol macros.
2633
2634 Fixed the new (sequential) ONCE-ONLY to deal properly with things like
2635 (once-only ((a (somefun a))) ...).
2636
2637 ROOM is now much more verbose, displaying a breakdown of memory usage by object
2638 type.
2639
2640 In the Unix interface, extended the length of pathnames from 64 to 1024.
2641
2642 Fixed sequence functions with output type specifiers to handle DEFTYPE'ed types
2643 and other complex types correctly. COERCE is still broken.
2644
2645 Compiler:
2646
2647 The compiler will now print a note whenever there is a FTYPE declaration for a
2648 function, and an argument is assigned to.
2649
2650 If debug-info is < 1, then don't dump debug-args or function type.
2651
2652 &aux bindings are now compiled with the interface policy. Fixed a few places
2653 where complex keyword arguments were not being correctly checked according to
2654 the interface policy.
2655
2656 Fixed block compilation stuff to ignore START-BLOCK declarations if
2657 :BLOCK-COMPILE is NIL.
2658
2659 The compiler now ignores assignments to special variables when determining
2660 which representation to use for a variable. Also, we don't print
2661 representation selection efficiency notes about coercion that are due to
2662 error checking code.
2663
2664 Changed the type system to consider #(:foo :bar) to be a subtype of
2665 (vector keyword). In other words, array subtype relations are determined
2666 according to the specialized element types actually present in this
2667 implementation, rather than assuming that all element types can be
2668 discriminated.
2669
2670 Hemlock:
2671
2672 Fixed a bug in completion mode (didn't previously work in the new-compiler
2673 system.)
2674
2675 Made the slave switch demon set debug:*help-line-scroll-count* to
2676 most-positive-fixnum, since the editor can do the scrolling for us.
2677
2678 CLX:
2679
2680 Merged in a bug-fix to EVENT-LISTEN to make it return the right number of
2681 events when called when there is a current event (i.e. in an EVENT-CASE.)
2682
2683 4/25/91 to 4/28/91
2684
2685 Release mainly to fix a problem with in-core compilation introduced in the 3/27
2686 release (the usual symptom was flaming out during the compilation with a type
2687 error about an illegal object.)
2688
2689 Also, Hemlock has a new command "Set Buffer Writable", and the obsolete command
2690 "Connect to Registered Eval Server" has been removed.
2691
2692
2693 4/21/91 to 4/25/91
2694
2695 Some minor space reductions from leaving out compiler databases that users
2696 don't need, and from reducing the initial allocation size of Hemlock string
2697 tables. Some major space reductions from compiling with debug-info 1, and
2698 reduced safety. The core is currently 18.8 meg, which is 2.5 meg smaller than
2699 the last alpha release and 7.3 meg smaller than the current beta release.
2700
2701 Major parts of the system are now compiled with no error checking. Users
2702 should not notice any reduction in safety, since user visible interfaces are
2703 supposed to be fully checked. Standard functions that users can cause to get
2704 unbound symbol or array index errors needed to be changed to either do explicit
2705 error checks or locally use a safe policy. Some of these cases may have been
2706 missed. Let us know if you get any less-than-informative error messages
2707 (segmentation violation) inside standard functions.
2708
2709 Code:
2710
2711 Argument type checking for Common Lisp functions is now driven by the
2712 compiler's function type database. This means that some type errors might be
2713 detected that were previously unnoticed.
2714
2715 Added a CONTINUE restart in LOAD that returns NIL. Fixed up the code that was
2716 trying to prevent you from loading zero-length fasl files (from AFS lossage).
2717 Now if you try to load a file with a fasl file type, but that doesn't have a
2718 valid fasl header, then you will get an error (proceeding loads as a source
2719 file.)
2720
2721 The non-destructive string functions now accept characters as well as strings
2722 and symbols. This is an x3j13 change.
2723
2724 Changed the internal WITH-ARRAY-DATA macro to do bounds checking. This causes
2725 various string functions to give better error messages when an :END arg is out
2726 of bounds or :START is greater than :END.
2727
2728 Added type inference methods for sequence functions, and various functions that
2729 return an argument as their result value.
2730
2731 Hemlock:
2732
2733 Added "Slave GC Alarm" variable (default :MESSAGE) which controls how obnoxious
2734 the slave GC notification is. Other values are like for "Input Wait Alarm",
2735 :LOUD-MESSAGE and NIL.
2736
2737 Extensions:
2738
2739 ONCE-ONLY now does sequential variable binding. This can't cause any problems,
2740 since all names are gensyms, and is often useful.
2741
2742 4/10/91 to 4/21/91
2743
2744 Code:
2745
2746 Fixed some bugs in control of garbage collection that should solve some
2747 problems with GC failing to be triggered automatically. Also, GC no longer
2748 implicitly reenables automatic GC if it has been disabled with GC-OFF.
2749
2750 Changed the default GC notify function to not beep. The old behavior can still
2751 be obtained by setting *GC-VERBOSE* to :BEEP. Note that this only affects use
2752 on TTYs, since slave GC notification works differently.
2753
2754 Changed the printer to print the name of code objects and the value of value
2755 cells.
2756
2757 Compiler:
2758
2759 Added the OPTIMIZE-INTERFACE declaration, which is just like OPTIMIZE, but
2760 specifies the policy for parsing the arguments to defined functions and
2761 checking of any declared argument types, allowing it to be distinct from the
2762 general compilation policy. This allows debugged code to be compiled with
2763 lowered safety in its "guts", while still doing checking on the arguments that
2764 users may supply (incorrectly.) Any quality not separately specified defaults
2765 to the normal OPTIMIZE quality.
2766
2767 Fixed WITH-COMPILATION-UNIT keyword to be :OVERRIDE instead of :FORCE.
2768 Also, added :OPTIMIZE and :OPTIMIZE-INTERFACE for changing the "global"
2769 compilation policy within the dynamic extent.
2770
2771 Added :CONTEXT-DECLARATIONS, which provides a way to insert declarations
2772 conditional on pattern matching of the context in which the definition
2773 appears. So you can compile all external functions safe, or whatever.
2774 See the doc string for WITH-COMPILATION-UNIT.
2775
2776 Fixed a bug in accessors for 1,2, and 4 bit arrays that was causing #* to
2777 generate incorrect bit vectors.
2778
2779
2780 4/8/91 to 4/10/91
2781
2782 In addition to William's fix to LOAD :IF-DOES-NOT-EXIST NIL, and a few fixes in
2783 compiler internal error messages, this core is also 1.6 meg smaller than the
2784 last core, which makes it 2.8 meg smaller than the current beta. (A mere 23.4
2785 meg)
2786
2787 This space reduction came from compiling the compiler VM definition with
2788 debug-info 1 and safety 0.
2789
2790
2791 3/27/91 to 4/8/91
2792
2793 Code:
2794
2795 Changed load to look at the file contents for the "FASL FILE" header to
2796 determine whether to fasload or slow load, instead of forcing use of a single
2797 fasl file type. Also, when the given filename doesn't exist and doesn't have a
2798 type, try ``fasl'' in addition to the machine specific fasl file type.
2799
2800 When the loader prints comments about loading progress, the number of leading
2801 semicolons is now the depth of recursive loading.
2802
2803 Compiler:
2804
2805 Reduced the size of debug information for OPTIMIZE DEBUG-INFO less than 1.
2806
2807 Compiled Hemlock with minimal debug debug, reducing the core size 1 meg.
2808
2809 Added new START-BLOCK and END-BLOCK declarations to allow portions of a file to
2810 be block compiled (instead of only entire files.) This mechanism also allows
2811 the entry points to a block to be specified, allowing improved compilation of
2812 non-entry-point functions. Fixed many bugs that appeared once block
2813 compilation was actually used.
2814
2815 COMPILE-FILE now has :ENTRY-POINTS and :BLOCK-COMPILE keywords. :BLOCK-COMPILE
2816 NIL will totally inhibit compile-time resolution of function names (including
2817 self-calls.) The default (:SPECIFIED) allows compile time resolution, but
2818 still one top-level form at a time, preventing local calls between top-level
2819 forms. In this mode, a (BLOCK-START Entry-Point*) declaration will start block
2820 compilation. Block compilation is terminated by BLOCK-END, or the BLOCK-START
2821 of the next block.
2822
2823 See also the COMPILE-FILE doc string.
2824
2825 Also, the ANSI :VERBOSE and :PRINT keyword arguments are now supported. The
2826 :PROGRESS keyword is a CMU extensions that provides an even higher level of
2827 verbosity. The *COMPILE-VERBOSE*, etc., variables are also now supported.
2828
2829 Made forms within a LOCALLY be recognized as "top-level" so that subforms can
2830 be compiled separately.
2831
2832
2833 3/14/91 to 3/27/91
2834
2835 Highlights:
2836
2837 ** The FASL file format has changed, so all files must be recompiled. **
2838
2839
2840 Code:
2841
2842 Modified EXT:OPEN-CLX-DISPLAY to set XLIB:DISPLAY-DEFAULT-SCREEN to the
2843 screen specified by the user before returning the display.
2844
2845 Fixed DOCUMENTATION to retun only one value.
2846
2847 Fixed typep of (satisfies (lambda (obj) ...)) to coerce the form into a
2848 function instead of just assuming that it could be funcalled.
2849
2850 Wrapped a without-interrupts around the guts of maybe-gc so that the
2851 notify messages and state updates don't get seperated from the actual
2852 gc.
2853
2854 Removed the icache flushing stuff from GC, because it was unneeded (and
2855 sometimes printed annoying messages that it didn't work).
2856
2857
2858 Compiler:
2859
2860 Fixed CHECK-KEYWORDS not to print "zeroth".
2861
2862 Fixed a bug introduced in the previous core in which special bindings would
2863 not be undone if the function doing the binding tail-called some other
2864 function.
2865
2866 An additional slot has been added to the header of code objects. This slot
2867 holds the offset of an optional ``trace-table'' that contains information
2868 about where function prologues and epilogues, call sites, and other random
2869 things occure. This will allow more reliable backtracing from interrupts.
2870
2871
2872 Hemlock:
2873
2874 Added *in-redisplay* flag which inhibits recursive invocations of redisplay
2875 from doing anything. Recursive invocations can happen in TTY redisplay, since
2876 LISTEN serves events. Also, made REDISPLAY-WINDOW-FROM-MARK check that we are
2877 in the editor before doing anything.
2878
2879 Modified MAKE-BUFFERS-FOR-TYPESCRIPT to make sure the user supplied slave-name
2880 is free for use, so we don't clobber currently existing slaves.
2881
2882
2883
2884 3/11/91 to 3/14/91
2885
2886 Code:
2887
2888 Fixed FUNCTION-DEBUG-FUNCTION (though it still returns the XEP.)
2889
2890 Fixed a bug in RENAME-PACKAGE that happened when the new name was one of the
2891 old nicknames.
2892
2893 Added support for the TIOCGWINSZ and TIOCSWINSZ ioctls.
2894
2895 Compiler:
2896
2897 Some compiler debug fixes that will hopefully eliminate spurious
2898 undefined-function warnings. In particular, definitions of functions in
2899 non-null lexical environments will be noticed.
2900
2901 Also, now if a function is defined incompatibly with previous calls, the
2902 warning will have proper source context.
2903
2904 The compiler note count is no longer incremented when notes are suppressed by
2905 INHIBIT-WARNINGS 3.
2906
2907 Hemlock:
2908
2909 Several changes to allow redisplay to be delayed until process output (i.e. in
2910 a shell buffer) is complete. This allows the editor to catch up with output by
2911 only displaying the final state of the shell buffer, instead of forcing every
2912 line of output to be displayed. This is very nice with slow terminals or large
2913 outputs.
2914
2915 Changed TTY redisplay to get the terminal size and speed from Unix using the
2916 appropriate "ioctl" calls. The speed of a PTY (and hence any telnet or MCN
2917 connection) is infinite by default. For best results with TTY redisplay, it is
2918 crucial to set the terminal speed with the Unix "stty" command:
2919 stty 2400
2920 stty 9600
2921 etc.
2922
2923 Setting the speed allows the editor to keep in synch with the terminal so that
2924 typing a command can abort redisplay until the screen stabilizes.
2925 This way, if you type C-v C-v in succession, output of the first screen will
2926 stop when you type the second C-v.
2927
2928 Fixed several bugs in TTY redisplay. "Unexpected zero transition delta" is
2929 gone. Also, fixed some problems with the screen not being updated properly
2930 after redisplay has been aborted. (When you type several commands in quick
2931 succession.)
2932
2933 REDISPLAY now returns T, NIL or :EDITOR-INPUT. T is returned when redisplay
2934 changed the screen. NIL is returned when there was no change. :EDITOR-INPUT
2935 is returned when redisplay tried to update the screen, but was aborted due to
2936 pending editor input.
2937
2938 Changed the editor input loop calling redisplay until it indicates no change.
2939 This insures that any text modifications happening concurrently with redisplay
2940 (such as process output) will be noticed before we go into a read wait.
2941
2942
2943 3/4/91 through 3/11/91
2944
2945 Only Compiler fixes:
2946
2947 Fixed a number of bugs in the handling of closures over top-level variables.
2948
2949 Fixed a problem with semi-inline functions.
2950
2951 Fixed a problem with local call conversion of functions with both optionals and
2952 more args.
2953
2954 Disabled the compiler's internal consistency checking by default. These phases
2955 are only useful for locating compiler bugs.
2956
2957
2958 2/3/91 through 3/4/91
2959
2960 General system code:
2961
2962 Merged fix to DEFSTRUCT constructor parsing that allows multiple default
2963 constructors, or none at all. You will need to recompile uses of DEFSTRUCT for
2964 the #S reader to work correctly.
2965
2966 Fixed bit-copy assembly routine to correctly handle overlapping source and
2967 destination.
2968
2969 standard-char-p no longer returns T for #\return
2970
2971 Fixed default-structure-print to work when *print-circle* is T.
2972
2973 Fixed a bug in format regarding ~@*.
2974
2975 Fixed the read-eval-print loop to frob +, ++, +++ correctly.
2976
2977 Changed fasl loader to eliminate the "feature" whereby zero-length fasl files
2978 were considered to be valid (doing nothing).
2979
2980 Changed DEFPACKAGE to expand into stuff that will have the package effect at
2981 compile time as well as at load time.
2982
2983 Fixed DEFPACKAGE to deal more correctly with finding symbols that must exist.
2984
2985 Fixed package system code to not destructively modify the USE, USED-BY and
2986 SHADOWING-SYMBOLS lists so that they don't get retroactively modified when
2987 we hand them off to the user.
2988
2989 Also, in SHADOW, when symbols is NIL, shadow no symbols, not NIL.
2990
2991 Fixed a bug in Y-OR-N-P. It was calling WHITESPACEP on a symbol.
2992
2993 Fixed READ-QUOTE to call READ with t for eof-errorp which it previously failed
2994 to do. fixed READ-PRESERVING-WHITESPACE to no longer screw with eof-errorp
2995 based on recursivep
2996
2997 Fixed the LOOP THEREIS keyword.
2998
2999 Tweaked handling of LISTEN a bit to allow READ-CHAR-NO-HANG to work correctly.
3000 Fixed the listen method for concatenated streams. It failed to step to the
3001 next stream when the current one hit eof.
3002
3003 Make two-way streams force-output on the output side before passing any
3004 input requests on to the input side. This eliminates the need for explicit
3005 calls for FORCE-OUTPUT when prompting.
3006
3007 Changed GET-INTERNAL-REAL-TIME to subtract out the time of the first
3008 call to minimize the probability of bignum results. Also some other tuning
3009 that reduced the consing of this function to 0.
3010
3011 Changed TRACE to use FORCE-OUTPUT instead of FINISH-OUTPUT to prevent
3012 gratuitous slowdowns when running in a slave.
3013
3014 Compiler:
3015
3016 Fixed EQL (and =) on integers to not unnecessarily cons a word-integer argument
3017 just because one argument is known to be a fixnum.
3018
3019 A number of improvements to register allocation.
3020
3021 New version of the assembly with instruction scheduling (no-op deletion)
3022 support. This reduced the size of the core by 1.3 meg, and makes everything
3023 run faster too.
3024
3025 Fixed incorrect argument type information for some standard Common Lisp
3026 functions.
3027
3028 Added a new optimization of MULTIPLE-VALUE-CALL which converts MV calls having
3029 a known number of arguments into MULTIPLE-VALUE-BIND/FUNCALL. Combined with
3030 some other existing optimizations, this allows functions like:
3031 (defun foo (&rest x)
3032 (apply #'glorp x))
3033
3034 to be efficiently inline expanded (i.e. the APPLY turns to a FUNCALL.)
3035
3036 Fixed PROCLAIM to work correctly when the argument isn't a constant.
3037
3038 Eliminated some problems that could cause spurious undefined function
3039 warnings.
3040
3041 Fixed the compiler to not flame out if it sees a SATISFIES type specifier where
3042 the predicate function is undefined, and generally to deal better with testing
3043 whether a compile-time constant is of some type that may not be properly
3044 defined yet.
3045
3046 Fixes to copy propagation and register allocated to reduce spurious moves.
3047
3048 Hemlock:
3049
3050 Changed typescript streams to cache the line length. This greatly speeds up
3051 slave output.
3052
3053 CLX:
3054
3055 Eliminated redundant type checking.
3056 Fixed some broken declarations.

  ViewVC Help
Powered by ViewVC 1.1.5