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

Contents of /src/general-info/alpha-release-notes.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.8 - (show annotations)
Fri Nov 4 07:10:31 1994 UTC (19 years, 5 months ago) by ram
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.7: +306 -0 lines
File MIME type: text/plain
Lock status: Locked wlott
gartuitous checkin.
1 3/11/94 to 3/20/94
2
3 Code:
4 -- Debugger Enhancement from Harris to not abort printing of a frame when
5 printing one arg gets an error.
6 -- In OUTPUT-INSTANCE, check for the layout being invalid before calling the
7 print function, since the print function might error.
8 -- Tweak read-line to work better on a non-persistent EOF (e.g. ^D on TTY)
9
10 Compiler:
11 -- In byte compilation, don't call valid-function-use on mv-combinations.
12 Don't annotate mv-calls to inline functions or slot accessors as though
13 they were non-mv calls.
14
15 Tools:
16 -- In inst-lisp, allow separate specification of source and destination
17 releases.
18
19 Hemlock:
20 -- Deleted some setting of *hack-hunk-replace-line* to T, since we may want it
21 explicitly disabled in the init file.
22
23 PCL:
24 -- Better handling of obsolete structure instances in generic function
25 dispatch.
26
27
28 2/15/94 to 3/11/94
29
30 Code:
31
32 Changed the default for library: under hpux to be /usr/local/lib/cmucl/lib.
33
34 Bind *break-on-signals* to NIL even before doing the type test so that we don't
35 wedge the error system if the type is malformed or undefined.
36
37
38 Compiler:
39
40 Changed return to return-from assert-definition-type.
41
42 Changed assert-definition-type to quietly ignore non function-types.
43
44 Allow stream arg to compile-file.
45
46 Deleted incorrect type declaration in process-1-ftype-proclamation. Deleted
47 test for function-type-p around call to assert-definition-type, since this is
48 now folded into the function. Previously several calls weren't doing this
49 necessary check.
50
51 Do DFO-AS-NEEDED in BYTE-COMPILE-COMPONENT (as it is done in
52 NATIVE-COMPILE-COMPONENT) to ensure that cleanup code has block numbers.
53 Also added some MAYBE-MUMBLE calls for *COMPILE-PROGRESS*.
54
55
56 PCL:
57
58 Patch from Harris.
59
60
61 Motif Interface:
62
63 Don't byte-compile if not :small.
64
65 Changed ~A to ~D when formatting socket file in case the base isn't 10.
66
67 Added some fflushes to motifd.
68
69 Add INVOKE-TTY-DEBUGGER. Don't try to invoke motif debugger if we didn't
70 succeed in opening a connection.
71
72 Print warning in status hook when server dies. Simplified boolen expression.
73
74
75
76 2/9/94 to 2/14/94
77
78 Profile:
79 -- Fixed %report-times to not choak if any of the function names are not
80 symbols (e.g. setf functions).
81 -- Don't warn about &rest consing if we can't figure out what the argument
82 signature is, because we don't use &rest anymore.
83 -- GET-INTERNAL-RUN-TIME now works under hpux, so go ahead and use it. In
84 cmucl, use &more instead of &rest to avoid consing the &rest arg list.
85
86 Small runtime (w/o compiler) hacks:
87 -- Add dummy stubs for EVAL:INTERNAL-EVAL, etc. which signal errors when the
88 IR1 interpreter hasn't been loaded.
89 -- Don't try to do verbose ROOM if it isn't loaded.
90 -- Export EXT:PURIFY and remove the :CONSTANTS argument.
91 -- Move environment compacting into PURIFY instead of doing it at top-level in
92 worldload. Now users can do it too.
93 -- Allow pretty-printer to work without compiler loaded.
94
95
96 Code:
97 -- Fixed TWO-ARG-GCD to correctly handle most-negative-fixnum. Was choaking
98 because someone declared (- most-negative-fixnum) to be a fixnum.
99 -- Fixed the warning in defpackage about no longer using some packages to
100 actually work.
101 -- Fixed COERCE to use subtypep to analyze the output type spec instead of
102 checking for magic symbols.
103 -- Changed vector to inherit from array before generic-vector. Fixed
104 simple-string to list string in the inherits list.
105 -- Add TTY-IXON mode for HPux.
106
107
108 Compiler:
109 -- Changed coerce-to-smallest-eltype to call coerce with a vector type
110 specifier instead of an array type specifier. (necessitated by "fix" to
111 coerce.)
112 -- Tweak CONVERT-CALL-IF-POSSIBLE to not try to convert calls in top-level
113 code which call code in another component (because we already failed to
114 convert the call before.)
115 -- In BYTE-COMPILING, always return T when :BYTE-COMPILE T was specified.
116 This was causing byte-compiled PROGV to flame out.
117 -- Add DELETE-IF-NO-ENTRIES to blow away components that can't be reached
118 before we try to generate IR2. This avoids some internal errors when
119 unreachable local functions are deleted.
120
121 Tools:
122 -- Changed worldload.lisp to use :RUNTIME feature to suppress loading
123 everything, and to use the new maybe-byte-load and byte-load-over
124 functions to load lots of byte code when RUNTIME is present.
125 -- In worldcom, when NO-RUNTIME feature is absent, compile various subsystems
126 byte-coded as well as native coded so that we can choose at system build
127 time.
128
129 Hemlock:
130 -- Move the new_compiler branch onto the trunk.
131 -- In READ-BUFFER-FILE, set BUFFER-WRITABLE to T before doing anything so
132 that we don't get spurious read-only errors.
133 -- Move all font name defhvars to rompsite and give them the actual default
134 as their initial value. Change those defaults to be courier, flushing all
135 mention of 8x13.
136 -- Un-conditionalize TIOCSLTC ltchars hacks for HpUx, since they are needed
137 to suppress dsusp.
138 -- Turn off ^s/^q under tty for HPux with IXON off.
139
140 PCL:
141 Call UPDATE-LISP-CLASS-LAYOUT instead of REGISTER-LAYOUT, since the bare
142 R-L doesn't update the inherits from the CPL. This caused LAYOUT-INHERITS
143 to be left empty when a class was redefined.
144
145 Motif:
146 -- Added some extra protection against recursive invocation of the windowing
147 debugger.
148 -- Tried to make starting the Motif server more robust, or at least give some
149 intelligible error message.
150
151
152 1/28/94 to 2/9/94
153
154 Changed step to set-step-breakpoint because step is supposed to be the
155 exported step macro, not some internal routine.
156
157 Default the name slot in defmacro-lambda-list-bind-errors to NIL.
158
159 Added an executable-only optional to unix-namestring so that we can expand
160 path:foo into the first executable in the path named foo, not just the
161 first file.
162
163 Changed run-program to only try to run executables, and to flame out if
164 it can't be found in path:.
165
166 Fixed defpackage to combine multiple use, export, and import options
167 correctly.
168
169 Fixed coerce to call type-expand so that people can coerce to deftypes.
170
171 Changed the byte-function and byte-closure funcallable-instances to use
172 &more args instead of a &rest arg.
173
174 Changed main-entry to use etypecase instead of assuming that the arg is
175 always either a lambda or an optional dispatch, because sometimes raw
176 functionals get passed in. This way we will get a better error message.
177
178 Give a sensible error message if we can't find the slave utility (e.g.
179 lisp) to run.
180
181
182 1/6/94 to 1/28/94
183
184 Code:
185
186 Re-frobbed fd-stream-read-n-bytes to preserve the property of returning less
187 than the requested number of bytes when eof-error-p is NIL and that is what
188 unix-read read.
189
190
191 Startup C code:
192
193 Use /usr/local/cmucl instead of /usr/misc/.cmucl on hpux.
194
195
196 Hemlock:
197
198 Restored the behavior of scribe-file to cd to the directory of the .mss
199 file before running scribe. This was accidentally removed in an attempt to
200 clean up some compiler warnings.
201
202
203
204 12/11/93 to 1/6/94
205
206 In read-n-bytes, only signal EOF when we read and got 0 bytes, not never read
207 returns less than we wanted. Also, fix the case of small reads with an empty
208 buffer not to leave garbled buffer pointers if we have to do more than one
209 read. These changes affect primarily people who read form pipes, like Xlib and
210 Motif.
211
212 Added all of the ANSI CL features that seemed plausible, since we're closer to
213 ANSI CL than any other version of CL. Any non-ANSI compliance is now a bug,
214 not a feature...
215
216 YES-OR-NO-P and Y-OR-N-P now force output.
217
218 Added a derive-type defoptimizer for log.
219
220 In propagate-local-call-args, don't do anything if there is an
221 optional-dispatch specified. The last fixed entry point won't be referenced by
222 the XEP, so we can't count on that providing a T type input. This caused bogus
223 argument types to be inferred in byte-compiled code.
224
225 In UNCONVERT-TAIL-CALLS, do ENSURE-BLOCK-START so that we can manipulate the
226 use list. Fixes an assertion failure in the compiler.
227
228 Call local-call-analyze whenever there's new-functions. This got lost
229 when component-reanalyze-functions was added. Fixes an assertion failure in
230 the compiler, and may result in better optimization.
231
232 Fix LOAD-TN-CONFLICTS-IN-SC to work for multi-location SCs. Moved bind-to-nil
233 of *LIVE-BLOCK* and *LIVE-VOP* into PACK-LOAD-TNS to better ensure the live-tns
234 are invalidated between two packings of the same block (e.g. for repacking.)
235 These problems showed up with the X86, but could possibly happen elsewhere.
236
237 Add some hacks to PCL for coercing lisp:class objects to pcl:class.
238
239 Export make-load-form-saving-slots, not make-load-form-dumping-slots.
240
241
242 12/2/93 to 12/11/93
243
244 The Hemlock commands "Typescript Slave Break", "Typescript Slave to Top
245 Level", and other things that send out-of-band data to slaves running on
246 the HP should now work. [That is, the slave will now notice them.]
247
248
249 11/16/93 to 12/2/93
250
251 Code:
252
253 Fixed arg ordering for getf in MAKE-CONDITION.
254
255 Picked up Miles' changes to apropos and apropos-list that allows one to
256 supply NIL for the package, meaning all packages.
257
258 Declare hi::%set-variable-value to be a function so that we don't get undefined
259 warnings on loading into a non-hemlock lisp.
260
261
262 Compiler:
263
264 [Sparc] Fixed %more-arg-values to return the count instead of always
265 returning 0.
266
267 Increase *inline-expansion-limit* from 50 to 200.
268
269 Change "inline expansion count exceeded" warning to be a note.
270
271 Don't inline expand when *converting-for-interpreter*.
272
273 Fixed SOURCE-TRANSFORM-NUMERIC-TYPEP to test against REAL instead of NUMBER
274 when testing reals. Added a define-type-predicate for REAL, so SOURCE-
275 TRANSFORM-NUMERIC-TYPEP can use it.
276
277
278 Tools:
279
280 Changed to make the release arg to inst-lisp useful.
281
282
283 Hemlock:
284
285 Changed from using sed to ul in the "Manual Entry" command, since
286 this works better on HP, etc.
287
288 Changed rcsci and rcsco to ci and co, which now work at CS, and
289 also work in the rest of the world.
290
291
292 Motif Stuff:
293
294 Added an optional STYLE arg to the graphical inspector to make the
295 function consistent with its doc string (as well as the old inspector).
296
297
298 C Start-up Code:
299
300 Compile -O
301
302 Don't pass CFLAGS to the linker, since this may clash with the
303 OS_LINK_FLAGS
304
305
306
307 9/14/93 to 11/16/93
308
309 Added breakpoint support and inverse hyperbolic trig functions for the HP.
310
311 In the debugger, don't flame out on more-args, 'cause they exist now.
312
313 In describe, fresh-line before calling describe-object method.
314
315 Generalized condition effective slot computation so that we can find slots with
316 non-constant defaults and special-case them at MAKE-CONDITION time.
317
318 Fixed format-time to deal with daylight savings time better. [i.e.
319 actually use EDT instead of EST in the summer.]
320
321 Fix SXMASH util for SXHASH to not be stupid.
322
323 Fixed COUNT :TEST-NOT to actually negate the test.
324
325 Flushed #+CLX in serve-event again (somehow reinserted during branchmerge),
326 since we may load CLX even if it isn't loaded at compile time.
327
328 Fixed decode-universal-time to correctly get the timezone info. Rewrote
329 encode-universal-time to be sane and to correctly deal with timezones.
330 Well, at least they are closer to dealing correctly with timezones.
331
332 #-hpux'ed utimes, getreuid, and getregid 'cause HPUX doesn't have them.
333
334 Fixed decoded-time routines to allow timezones of (rational -24 24) instead
335 of (rational 0 (24)), 'cause negative timezones occur east of GMT.
336
337
338
339 9/13/93 to 9/14/93
340
341 Compiler:
342
343 Fixed a bug in byte compiling in-core dylan code. (This happened when you
344 use the ``Compile Defun'' Hemlock command.)
345
346 Changed %more-arg-values (one of the companions of &more) to take a count
347 of values to skip, so people don't have to do gross things like assume the
348 context pointer is really a fixnum.
349
350
351 Hemlock:
352
353 Update FUN-DEFINED-FROM-PATHNAME to understand byte functions.
354
355
356
357 9/2/93 to 9/13/93
358
359 Added support for &more, a &rest replacement that just gives you a pointer
360 to the args on the stack and a count instead of consing up a list. This
361 should only be used by those up are in the know, as there are some tricky
362 issues involved.
363
364
365
366 8/23/93 to 9/2/93
367
368 ...
369
370
371 8/16/93 to 8/23/93
372
373 Note: you need to recompile everything, because the debug-info structure
374 has changed.
375
376 Code:
377
378 Moved lots of stuff around so that more stuff can be byte compiled.
379
380 Fix from Mike Clarkson. In the alien type= method for function, call
381 ALIEN-TYPE-= instead of calling ALIEN-TYPE-P with two args.
382
383 Add :CALLERS option to PROFILE which counts the most common callers
384 of each profiled function, and reduced the number of recompiled profile
385 encapsulations.
386
387 Added a ``DIRECT-SUPERCLASSES'' slot to CLASS so that Dylan can use it.
388
389 Added support for describing byte-compiled functions.
390
391 Add support for :EXECUTE keyword to EVAL-WHEN
392
393 Bulletproof output-instance a bit.
394
395 Wrote MAP-INTO.
396
397 Fixed semantics of various type-classes (CL arrays, numbers, functions &
398 alien-types) that have superclasses. This was especially problematic with the
399 Dylan collection heterarchy, but some problems could arise with
400 e.g. (subtypep `(member ,#'cons) '(function (t t) cons)) (not technically legal
401 in CL, but used by the compiler on legal programs.)
402
403
404 Compiler:
405
406 Added direct support for Dylan module-variables.
407
408 Recognize the new :keyword EVAL-WHEN keywords.
409
410 Also allow the %coerce-to-function efficiency note in byte code.
411
412 Enable funcall -> %funcall IR1 transform for byte compilation.
413
414 Increment warning count after re-signalling so that we don't double-count
415 undefined warnings (where the default handler can be multiply instantiated.)
416
417 Don't load meta-vmdef and assemfile into the core. Instead, load them
418 before we go to compile the compiler.
419
420 Flushed call to count-vops (static statistics), since it doesn't work anymore,
421 and isn't loaded.
422
423 [HP only] Fixed the arg types on generic-eql-c/fixnum to restrict the
424 constant to 9 bits, not 14, because we can only fit 11 bits in the
425 compare-immediate instruction, and 2 are needed for the fixnum lowtag.
426
427 Changed the stream arg to DISASSEMBLY to be a keyword arg, since it's
428 non-standard, we can avoid option & keyword lossage.
429
430 Fixed the byte-compiler to correctly handle arguments to local functions
431 that have been deleted.
432
433
434 Hemlock:
435
436 Flush carefully-add-font-path call. If people want library:fonts/ in their
437 font-path, they can put it there.
438
439
440 PCL
441
442 Changed structure-type-p to recognize funcallable structures too.
443
444 Patch for getting slots of structure classes from Simon Leinen.
445
446 Add hack to :METACLASS option so that we use the pcl:: (standard object)
447 metaclass, and not the lisp: (structure object) class when we see
448 STANDARD-CLASS or STRUCTURE-CLASS.
449
450 Changed SPECIALIZER-FROM-TYPE to extract the specializer from LISP:CLASS
451 objects.
452
453 Fix to CONVERT-TO-SYSTEM-TYPE from Harris.
454
455 Byte-compile defclass, defcombin, env, and iterate if :SMALL.
456
457 Wrote stubs for MAKE-LOAD-FORM and MAKE-LOAD-FORM-SAVING-SLOTS.
458
459 Make OLD-PCL and OLD-SLOT-ACCESSOR-NAME be nicknames during loading.
460
461 Hacked READ-LOAD-DEFCLASS to return a LISP:CLASS, not a PCL::CLASS.
462
463 Supply missing :INITIAL-ELEMENT NIL in MAKE-ARRAY call.
464
465 New definition of NO-SLOT from Harris.
466
467
468 Startup Code:
469
470 Don't reference the various random symbols inside a static data structure,
471 because the SunOS compiler is ``smart'' enough to remove it because it
472 isn't referenced.
473
474
475 CLM/Motif stuff:
476
477 The server process will now call wait to clean up zombie children
478 when running under Mach. There will be at most one <defunct> process
479 at any given time.
480
481 Shadow CLASS-DIRECT-SUPERCLASSES because both kernel and pcl want to export
482 it and we want to use them both.
483
484
485
486 8/4/93 to 8/16/93
487
488 Bug fixes:
489 -- Fixed namestring of a stream to not flame out if there is no pathname for
490 that stream.
491 -- Fixed DO-SYMBOLS to iterate over the package-use-list instead of the
492 package-tables, because package-tables gets reordered.
493
494 Also, various miscellaneous tuning changes indicated by dynamic profiling of
495 the compiler. Some only speed the compiler, but some optimizations are more
496 general (new sequence transforms.) In particular,
497 transform member, delete and assoc to memq, assq and delq when possible.
498 Inline expand vector & list POSITION, vector FILL and list DELETE-IF.
499
500 Instead of using symbolic links for motifd and site-init, copy them into the
501 release area. This prevents problems with the release area being broken when
502 things are changed in the build area.
503
504
505 7/22/93 to 8/4/93
506
507 Bug fixes:
508 -- Fix default-structure-print to just call the accessor (so that it handles
509 raw slots.)
510 -- Pad double-float slot offsets w.r.t. DD-RAW-LENGTH, not DD-LENGTH.
511 -- Changed %COMPILER-ONLY-DEFSTRUCT to be magically called by IR1tran, since
512 eval-when doesn't do the right thing if nested in an another eval-when.
513 -- fixed pprint-do to not flame out if one of the binding lists is NIL.
514 -- (numeric-contagion single-float real) => float, not single-float
515 -- Actually pass the byte-p argument to open-fasl-file so that it really does
516 use the machine-independent byte-code fasl file implementation.
517
518 Enhancements:
519 -- Logical pathname changes. Pattern-matching on :WILD-INFERIORS is now
520 implemented, but the Unix code treats it pretty much like :WILD. Detect
521 more error cases in TRANSLATE-PATHNAME. Fixed some type declarations that
522 didn't allow :UNSPECIFIC or :WILD when they should. :WILD now appears in
523 the PATHNAME-{DIRECTORY,NAME,TYPE} slots, instead of a :MULTI-CHAR-WILD
524 pattern always being used.
525 -- If the argument to COMPILE-FILE is already absolute, then dump it in the
526 debug-info as the source file, instead of always using the truename. This
527 allows search-lists or logical pathnames to be preserved in the
528 defined-from info.
529 -- PATHNAME of a FD-STREAM now returns the original, unresolved pathname.
530 This preserves search-lists and logical pathnames.
531 -- Add COMPILE-FILE-PATHNAME function.
532 -- Motif: Add Herald display item. Add :MOTIF feature.
533 Now clmcom loads PCL if not already loaded, so it should work in a
534 compiler-only core.
535
536 Hemlock:
537 -- Fix initialization of print-representation attribute so that characters
538 >127 don't cause text to mysteriously disappear.
539 -- Added hpux support in setup-input and reset-input.
540 -- Fixed "can't edit source" message not to throw you in the debugger when
541 invoked from the command line.
542
543
544 7/4/93 to 7/22/93
545
546 The largest changes are:
547 -- PCL port revamped to re-integrate PCL classes with the type system and to
548 more efficiently dispatch on structure and built-in types. Some
549 miscellaneous tuning. CLOS symbols are now exported from the LISP package,
550 so you don't need to USE-PACKAGE PCL anymore.
551 -- New version of CLX: R5.01
552
553 PCL notes:
554
555 This PCL fixes a number of problems that were introduced in the changeover to
556 the new structure format:
557 -- The Lisp type system is now integrated with PCL (even better than before.)
558 -- Structure-class slot-value now works again.
559
560 Generic function dispatch should be significantly more efficient in this PCL,
561 especially for built-in and structure classes. There should also be reduced
562 run-time compilation (e.g. in the Motif inspector) due to less use of
563 non-precompiled dispatch functions. TYPEP for PCL objects should be
564 faster, and type system integration should be fairly complete. CLOS class
565 names are recognized as "real" types by the compiler, not SATISFIES DEFTYPES.
566 Note that LISP:CLASS is still not a PCL class, so PCL needs to shadow CLASS
567 and STANDARD-CLASS.
568
569 Misc enhancements:
570 -- Build motif interface as a "library" file for easier distribution.
571 -- Added stuff to allow compile-file and compile-from-stream to be used to
572 compile dylan code. (Assuming you have the dylan to common-lisp converter
573 loaded.)
574 -- Tweeks to allow for compiling/evaling dylan code in a slave.
575 -- Make compiler error functions use the condition system. This ANSI cleanup
576 has two advantages:
577 1] compiler-warning and warn are now equivalent, so uses of WARN will be
578 counted in the warning total and given source context.
579 2] user handlers can be defined to notice or suppress output.
580
581 Misc bug-fixes:
582 -- Do a BOUNDP check so that references to undefined types inside of a
583 WITH-COMPILATION-UNIT but outside of the compiler won't cause
584 undefined-variable errors.
585 -- Set up a default for modules: search-list.
586 -- [sparc,mips] Fixed a bug in default-unknown-values where it wouldn't
587 default the first unsupplied value to nil if more then 6 values where
588 supplied.
589 -- Structure slot accessors are no longer constant-folded, because that was
590 causing problems with some make-load-form hacks.
591 -- Changed BACKQ-UNPARSE to check for improper lists instead of getting an
592 internal error. Some meaningless backq forms will now pprint as "###
593 illegal dotted backquote form ###".
594 -- Added explicit error checking to the debugger so that we don't get an
595 internal error (bus error in unsafe code, etc.) when attempting to display
596 source from a file that has been excessively modified.
597 -- Tweaked compilation of an incompatible defstruct definition to compare to
598 the previously compiled layout, rather than the current run-time
599 definition.
600 -- Added SIMPLE-STYLE-WARNING, and spiffed up the simple-condition hacks so
601 that (typep x 'simple-condition) works.
602 -- Bind *BREAK-ON-SIGNALS* to NIL when we call BREAK in SIGNAL so that the
603 debugger doesn't recurse on itself.
604 -- In LOAD-FOREIGN, use unix-namestring on each file before passing it to the
605 linker to get rid of search lists.
606 -- Fixed a few bugs in DELETE-PACKAGE, and gratuitously rewrote it. Inline
607 the call to MEMBER in DO-SYMBOLS so that we don't waste quite so much time
608 dealing with shadowing symbols.
609 -- Fix compiler-error proxy to not always say FORM as the error form.
610
611 Class stuff:
612 -- Made CLASS-TYPEP no longer an interface. Block compiled TYPEP.
613 -- Add DIRECT-SUPERCLASSES slot to BUILT-IN-CLASS and initialize it.
614 -- Add FIND-CLASS-CELL, CLASS-CELL-CLASS and CLASS-CELL-NAME to support
615 forward references to redefinable or undefined classes. INFO TYPE CLASS is
616 now a CLASS-CELL or NIL, and the class is actually in the CLASS-CELL-CLASS.
617 -- Added some missing elements in the class-precedence lists of float and
618 number.
619 -- Add stuff to initialize the layout hash.
620 -- Add standard-class and random-pcl-class for representing objects whose
621 real class is a PCL class. Add class-pcl-class slot for tracking the PCL
622 class of any class.
623 -- Changed layout invalidating to set to :INVALID, not T, since PCL uses T
624 to mean valid.
625 -- Add transform for constant FIND-CLASS & change class TYPEP to
626 use the CLASS-CELL make-load-form instead of LOAD-TIME-VALUE.
627
628 6/10/93 to 7/4/93
629
630 simple-condition-format-string -> simple-condition-format-control
631 Implemented CONDITION-RESTARTS ANSI cleanup & WITH-CONDITION-RESTARTS macro.
632 This provides a way to say that restarts are relevant only to a certain
633 condition.
634 Added style-warning and parse-error conditions.
635 Added report method for end-of-file. Exported cell-error-name.
636 Flushed storage-exhausted and stack-overflow conditions.
637
638 Don't export hash-table-weak-p from the common-lisp package.
639 Added PRINT-NOT-READABLE condition and made people use it.
640 Renamed get-setf-method-multiple-value to get-setf-expansion and
641 Export COMPILER-MACRO documentation kind.
642 Changed EOF-OR-LOSE to signal the END-OF-FILE condition.
643 special-form-p -> special-operator-p
644
645 define-setf-method to define-setf-expander. The old names are also defined for
646 compatibility.
647 Made DYNAMIC-EXTENT declaration recognized & ignored.
648 Nuked compiler-macroexpand[-1] because they didn't make it into the standard.
649 Added degenerate versions of stream-external-format, file-string-length and the
650 :external-format argument to open.
651 Changed two-arg-= to use = instead of using eql so that (zerop -0.0) -> t
652
653 [mips] Lots of tweeks in order to use NIL and 0 directly from the registers
654 holding them instead of copying them into a new register and then using it.
655
656 [mips] Changed generic-= and generic-/= to not assume that EQ implies =,
657 because it doesn't in the case of NaNs.
658
659
660
661 6/1/93 to 6/10/93
662
663 Fixed clear-input on file descriptor streams to flush any unread chars.
664
665 Few more minor inspector/describer fixes.
666
667 Added checking for division by zero on the sparc.
668
669 Fixed pcl::print-random-thing to flame out if *print-readably* is true.
670
671
672
673 5/25/93 to 5/31/93
674
675 Support for funcallable instances in describe and tty-inspect.
676
677 Fix byte interpreter so that the fix to make Hemlock/MH work actually takes
678 effect.
679
680 In Hemlock delete-breakpoints-buffer-hook, if no wire (server died), then don't
681 do anything.
682
683
684 5/20/93 to 5/25/93
685
686 Code:
687
688 Fixed function-debug-function to work on closures.
689
690 When we tail-call native code from byte code for multiple values, we must
691 un-negate the return PC.
692
693 Now that +0.0 and -0.0 are no longer eql, fixed atan to deal with them
694 correctly.
695
696 Added weak hash-table support.
697
698
699 Compiler:
700
701 Fixed the handling of +/- 0.0:
702 - = is no longer converted to EQL, but is directly handled by the backend.
703 - EQL is converted into a raw comparison of the bits.
704
705 Added LOAD-TIME-VALUE support to the byte-compiler.
706
707
708
709 5/4/93 to 5/20/93
710
711 The largest number of changes are related to the use of byte-compilation for
712 space reduction and the debugging of byte-compilation so that this works.
713 Together with assembly optimization, this has reduced the size of the full MIPS
714 core by 26% and the full sparc core by 14%.
715
716 Byte compilation overview:
717
718 The decision to byte-compile or native compile can be done on a per-file or
719 per-code-object basis. COMPILE-FILE now has a :BYTE-COMPILE argument. If T,
720 we byte-compile everything and create a machine-independent fasl file
721 (dependent only on byte order, file type "bytef" or "lbytef".)
722 If :MAYBE (the default, from EXT:*BYTE-COMPILE-DEFAULT*), things are
723 byte-compiled when speed = 0 and debug <= 1. Top-level forms are byte-compiled
724 by default (controlled by ext:*byte-compile-top-level*.)
725
726 Byte compilation is roughly twice as fast native compilation. Byte compiled
727 code runs 50x--200x slower than native code, and is 6x more dense. This is
728 about 10x faster than the IR1 interpreter, which is itself considered fast in
729 comparison to other Common Lisp interpreters. Historical perspective: this is
730 about as fast as Spice Lisp on a PERQ.
731
732 Bug fixes:
733 -- Fixed atan to handle zeros better. It still isn't right because the
734 compiler thinks that +0.0d0 and -0.0d0 are similar as a constant. [William
735 has a fix not yet checked in.]
736 -- Fixed PCL not to clobber define-compiler-macro with a NO-OP.
737 -- Changed save to pad the core file out to CORE_PAGESIZE bytes, so that when
738 we mmap it back it, we won't get bus errors if the real page size is less
739 then the CORE_PAGESIZE.
740 -- Use ~C instead of ~A when printing float exponent marker so that
741 print-readable doesn't mess things up.
742 -- Really really fixed get-setf-method-multiple-value for local macros. Also,
743 in the recursive calls, people were not propagating the environment
744 through, and in some places were not recursing with the multiple-value
745 version.
746 -- Added FLOAT-RATIO for precise ratio floating (as need by the float reader.)
747 This avoids roundoff error by doing an integer division.
748
749 Gratuitous changes:
750 -- Don't load code/inspect if we are loading clm.
751 -- Removed (setf weak-pointer-value) and made make-weak-pointer itself the
752 compiler primitive in order to simplify the gengc port.
753 -- Protect vm:code-breakdown against the debug-source being missing
754 (shouldn't happen but does if compilation is interrupted or something) and
755 against random values being in the debug-info slot (byte compiled code.)
756 -- Added stuff to fake scavenger hooks in the non-gengc system.
757 -- Changed pathname code not to use %primitive to make/access/set value-cells.
758 -- Fixed string and simple-string to include generic-string and vector in
759 their inherits lists. Fixed built-in class creation stuff to use -1 for
760 the inheritance depth if any of the supertypes have -1 for the inheritance
761 depth.
762
763 Tuning:
764 -- Use an auxiliary function to make the condition for macro arg count
765 errors to save space in macro definitions.
766 -- Byte compile the expander functions for all macros except those in code/
767 (those may come later.)
768 -- Compile PCL's guts unsafe when #+SMALL.
769 -- Byte-compile most Hemlock commands.
770 -- Some gratuitous RANDOM tuning. Random double floats are now much, much
771 faster. Added transforms for RANDOM to type-specific functions (which can
772 then be inline-expanded).
773
774 Compiler:
775
776 Enhancements:
777 Assembly optimization is now enabled, giving large speed/space improvements
778 on MIPS and some on SPARC. This optimization is done when speed >
779 compilation-speed (i.e. not by default) since it significantly slows
780 compilation.
781
782 Bug fixes:
783 -- When iterating over the lamdba-calls in unconverting tail calls, have
784 to ignore any deleted lambda.
785 -- [mips] removed immediate lognor stuff, because the nor inst can't handle
786 immediate.
787 -- [mips] Added :cost 0 to instructions that were 0 but were defaulting to 1
788 (for profiler.)
789 -- Fixed instruction scheduler to correctly deal with having a load-word
790 in a branch delay slot.
791 -- Fixed assembler cost incrementer to work with the new block numbering (for
792 profiler.)
793 -- When computing block numbering for debug info/profiling, don't increment
794 until after all references on that iteration...
795
796 Added a symbol-hash slot to symbols under the gengc system. When symbols
797 are created, this is filled in with a random value. Things that want a
798 fast hashing of symbols but don't want to depend on the address can use
799 this value.
800
801 Byte compilation:
802 -- If debug-info for a code object is a string, print it (for byte code)
803 instead of assuming it is a debug-info.
804 -- Changed byte-function loading to use funcallable instances.
805 Added support for loading machine-independent fasl files. Made
806 *load-print* do its thing for byte functions.
807 -- Byte interpreter fixes:
808 -- Fixed stack-copy to deal with overlapping upward copies.
809 -- Fixed some index &stack-pointer declarations for indices that could be
810 negative to be FIXNUM.
811 -- Added a comment explaining what the keyword parsing code is
812 doing. Fixed exit test on the keyword parsing loop.
813 -- Made current-stack-pointer a macro so that we won't blow out the
814 inline expansion limit.
815 -- Fixed byte-apply to compute the arglist in forward order when nargs
816 >=8.
817 -- Fixed to potentially grow the eval stack when allocating a frame.
818 -- Byte interpreter enhancements:
819 -- Add system-constants support for fdefinition objects.
820 -- Call different :interpreter-function for inline op if specified.
821 -- Define safe %byte-symbol-value, %byte-car and %byte-cdr operations.
822 -- Add two-arg-stringXXX stubs.
823 -- Moved definition of *eval-stack* here so that we can use byte code w/o
824 the IR1 interpreter (and compiler) loaded.
825 -- Changed byte functions to be funcallable instances. This gives them a
826 recognizable type and allows them to print nicely.
827 -- Moved definitions of byte-functions (formerly byte-xep) here from
828 byte-comp so that we can use them w/o the compiler loaded. Changed
829 byte-functions to have simple and hairy subtypes to save space for the
830 common fixed-arg case. Added a name slot for debugging.
831
832 -- Byte compiler fixes:
833 -- In PROGV ir1 convert, also use %PROGV for byte compiled code.
834 -- If any top-level vars are closed over, and *byte-compile* is :maybe,
835 then choose native compilation for everything. This ensures that we
836 won't reference a native closure in a byte-compiled top-level form, or
837 vice-versa.
838 -- Have to clear the constant info between compiling each byte-component
839 too.
840 -- Fixed various problems with fasl-dumping byte code:
841 Eliminated some redundant stack/table checking operations. Have to
842 add in vm:code-constants-offset when computing byte-component entry
843 and XEP patch offsets. Bind *unparse-function-type-simplify* to T
844 when getting the type specifier for :type-predicate fixups, since we
845 don't want to check against complex function type specs.
846 -- Actually compute the NUM-MORE-ARGS slot in functions with more args.
847 -- don't add uninteresting BLOCK continuations to the consumes.
848 -- At NLX EP, annotate the stack as empty (ignoring any stuff pushed
849 earlier in the ENTRY block), since they aren't going to be live; UWP
850 NLX EPs are only called when we unwind, and then restoring the stack
851 is someone else's problem.
852 -- Need to annotate the mv-bind continuation as fixed-values. Also, when
853 doing a multiple call for fixed values, must tell canonicalize-values
854 that there are unknown values on the stack.
855 -- Removed byte-output-length. Instead we explicitly finalize
856 the segment so that we have the correct offsets for the entry labels.
857 -- When annotating tail-local calls, make sure the successor is the
858 callee.
859 -- Fixed byte-continuation numbering to be global and to be done for all
860 the continuations referenced in ssets.
861 -- Subtract out the right set in stack flow analysis.
862 -- When moving set args into locals, remember that we number args
863 backwards.
864 -- If block ends in a tail call, don't emit any jump.
865
866 -- Byte compiler enhancements:
867 -- When byte-compiling, don't do any inline expansion, and suppress many
868 transforms. This speeds up byte code as well as saving space.
869 -- Allow fdefinition system constants. Add some popular functions to
870 system constants.
871 -- Add INTERPRETER-FUNCTION and SAFE slots to INLINE-FUNCTION-INFO to
872 support type-checking inline ops. Put inline funs in a hashtable.
873 -- Add %negate/fixnum, </fixnum, >/fixnum, safe-car, safe-cdr,
874 length/list, cons, two-arg list and three-arg list*.
875 -- Add byte-code specific IR1 transforms for EQL/FIXNUM and CHAR=.
876 -- Add two-arg string=, string>, string<. Flushed use of
877 cons-unique-tag.
878 -- Moved byte disassembler here from byte-interp. Enhanced disassembler
879 so that it can dump disassembly in trace file.
880 -- Add pseudo-backend operations which use the byte-order to determine
881 what machine-independent fasl format to use.
882
883
884 4/4/93 to 5/4/93
885
886 Initial cut at making PCL work again w/ the new class support. We just
887 shadow find-class, etc.
888
889 Motif interface and inspector back, and have been fixed to work with the new
890 structure format. Some past changes in the inspector/debugger sources will now
891 be visible: see below.
892
893 Changed core saving to no longer save the stacks. Instead, when the core is
894 restored, a (supplied) initial function is invoked which can do whatever kind
895 of setup it wants. This makes a saved lisp totally independent of the location
896 of the C stack. [fixing the sun4m sunos problem] Save-lisp must now be called
897 with an init function, and after it finishes, it terminates the saving lisp
898 process, instead of returning. In addition to the change in the save-lisp
899 interface, the main user-visible difference is that there are fewer junk frames
900 on the stack in saved cores.
901
902 Added the built-in-class REAL.
903 Added the read-only collection built-in-classes needed by dylan.
904
905 Compiler:
906 -- Don't do assumed function stuff if we have a :NOTINLINE function. This
907 was breaking an assertion.
908 -- Changed FIN-FUNCTION special form to be a new kind of LAMBDA so that we
909 can COMPILE them.
910 -- Moved def-source-context for DEFMETHOD to PCL sources.
911 -- [MIPS only] Fixed unbind-to-here to not dereference past the end of the
912 binding stack.
913
914 Interface:
915
916 The debugger will now reuse old debugging panes rather than creating
917 new ones all the time. In addition, the stack backtrace is no longer
918 displayed by default.
919
920 Replaced uses of Motif gadgets with corresponding widgets. This
921 also fixes the problem with warnings about 'alignment' not being
922 a valid resource.
923
924 Invoking LISP-CONTROL-PANEL from the TTY now works correctly and
925 QUIT will kill off any Motif servers that you have started.
926 The "Edit Source" button now works.
927 A new button, "Dump Backtrace" has been added. This is for dumping
928 a copy of the stack backtrace for use in bug reports. At the moment,
929 it just prints a copy of the backtrace on the standard output stream.
930
931 Added support for deleting all active inspection panes.
932 Added comments and descriptions on how to implement inspector
933 display methods for view customization.
934
935
936 4/3/93 to 4/4/93
937
938 Added serveral new classes needed to bootstrap dylan. There should be no
939 user visable changes, except that you might have to recompile stuff if
940 something depends on the superclasses of sequence. The loader will tell
941 you if so.
942
943
944
945 3/15/93 to 4/3/93 [no PCL or CLM]
946
947 Compiler:
948
949 Fixed call to CONTINUATION-DERIVED-TYPE to be CONTINUATION-TYPE so that we
950 don't choke on values types in the functional position.
951
952 Fixed FREEZE-TYPE to seal all subclasses.
953
954 Profile.lisp updated for new assembler and block-compiler ir1opt.
955
956 Fixed sparc GET-TYPE vop.
957
958
959 Purify:
960
961 Fixed ptrans_instance to actually return the result of calling ptrans_boxed
962 instead of relying on the result still being in the correct register.
963
964
965
966 3/1/93 to 3/15/93 [PMAX only, no PCL]
967
968 New & improved support for funcallable instances so that we can easily define
969 generic function classes for Dylan & CLOS. Also, fixed some bugs in the new
970 structure type stuff:
971 -- Redefinition failing or resulting in spurious errors, #<foo> is not a FOO
972 errors, etc.
973 -- Fixed BOA constructors to ignore package when determining if a slot appears
974 as an arg.
975 -- Fixed CIRCLE-SUBST to not bother looking down the instance-layout slot so
976 that splicing structures into the read input doesn't result in CIRCLE-SUBST
977 searching though the entire type system for places to fix up #n#'s.
978
979 Fixed a bug introduced by tuning (was breaking TTY redisplay):
980 -- Fixed type decls in FILE-POSITION to allow :START and :END for positions.
981
982 Misc bug fixes:
983 -- Fixed FORMAT-EXP-AUX to correctly handle variable width fields when the
984 argument is negative.
985 -- Fixed info-hash to work again on weird (not SETF) lists.
986
987 Misc enhancements:
988 -- Improved usefulness of VM:CODE-BREAKDOWN :HOW :FILE by subdividing the
989 files by package.
990 -- Most of the support for Sean's block-counting profiler is in this core,
991 but it's not all there yet.
992
993 Compiler:
994 -- Fixed a bug in type inference which seems to have generally prevented
995 anything from being inferred about function result types of user-defined
996 functions.
997 -- CTYPE-OF now extracts the function type from function objects, rather than
998 just returning FUNCTION.
999 -- Added FUNCTIONAL-PLIST slot for adding random annotations to functions
1000 within the compiler (such as this function is destined to be a funcallable
1001 instance.)
1002 -- Improved type predicate compilation for sealed classes in general (not just
1003 structure classes.)
1004
1005
1006 2/27/93 to 3/1/93 [PMAX only, no PCL]
1007
1008 Fixed load to not always consider files with NIL type to be source files. If
1009 the file exists as specified, then look at the header instead of trying to
1010 default the type. If :CONTENTS is specified, then don't try defaulting types.
1011
1012 Replaced ISQRT with the fast version discussed on the net many moons ago.
1013
1014 Removed ROOM's load-time dependence on the compiler. Add
1015 LIST-ALLOCATED-OBJECTS and LIST-REFERENCING-OBJECTS for finding out why stuff
1016 isn't being GC'd.
1017
1018 Fixed type system to recognize the codes for internal BUILT-IN-CLASSes such as
1019 CODE-COMPONENT. Ripped out NS-BOOT conditionals.
1020
1021 Load the byte compiler and interpreter. They don't really work yet, but will
1022 be easier to debug if they're in the core.
1023
1024 The compiler now has an event counter for compiling a MAKE-VALUE-CELL op.
1025
1026 Reduced the size of static space (and the total core) by 1meg by clobbering the
1027 hash-table vectors of the obsolete VOLATILE-INFO-ENVs in worldload.lisp. For
1028 some reason (probably residual stack or register pointers), the
1029 VOLATILE-INFO-ENV doesn't get reclaimed by purify. This meant that much static
1030 space was being wasted by the unused SIMPLE-VECTORs and alists, even though the
1031 compact version was the one actually being referenced. This was exacerbated by
1032 the change to multiple purifies, but has always been present in the
1033 new-compiler systems. Also, the Hemlock/CLX info environment wasn't being
1034 compacted before the purify at all.
1035
1036
1037 2/9/93 to 2/26/93 [PMAX only, no PCL]
1038
1039 New structure format and class support in the type system. Some I/O tuning.
1040 New fasl file format (you must recompile.) This core does not contain PCL or
1041 the GUI (which depends on PCL.) The old core and startup code are in
1042 /afs/cs/project/clisp-3/alphas/olisp.core, olisp.
1043
1044 Structures & classes:
1045
1046 ANSI changes:
1047 -- Default defstruct keyword constructors can no longer reference argument
1048 values in slot init forms. BOA constructors can still do this, so defining
1049 a BOA constructor with all keyword args will have the old effect.
1050 -- Class objects are now implemented, see FIND-CLASS, CLASS-NAME, TYPEP,
1051 CLASS-OF. TYPE-OF is now based on CLASS-OF, and returns slightly different
1052 results than before.
1053 -- STRUCTURE-CLASSes now exist. See also the STRUCTURE-OBJECT type.
1054 -- BUILT-IN-CLASSes also exist. In some cases CLASS-OF (legally) returns
1055 non-standard subclasses of the standard class, e.g. for a float vector, the
1056 result is KERNEL::SIMPLE-ARRAY-SINGLE-FLOAT. STANDARD-CHAR and KEYWORD are
1057 now DEFTYPEs.
1058
1059 Bug fix:
1060 -- Typed structures now have the correct (though rather odd) semantics of
1061 :offset and :named when inclusion is done.
1062
1063 Raw slots:
1064 -- Structure slots of subtypes of SINGLE-FLOAT, DOUBLE-FLOAT and
1065 (UNSIGNED-BYTE 32) are now allocated in non-descriptor storage, and can be
1066 read/written without number-consing overhead.
1067
1068 Type tests:
1069 -- The default (non-frozen) structure type predicate is now significantly more
1070 faster (no function call) in the case where the argument is a structure
1071 of another type or the type is a supertype of the object's type. The code
1072 is also somewhat smaller.
1073
1074 Redefinition:
1075 -- Handing of structure redefinition is now much more comprehensive.
1076 -- Definitions are only considered incompatible when slots have moved or been
1077 added, slot types are changed to a type that is not a subtype of the old
1078 type, or the inheritance structure has changed. Previously any change at
1079 all would produce a warning.
1080 -- When a change is compatible, the default restart (CONTINUE) invalidates old
1081 instances, constructors and predicate uses. When speed <= safety, a
1082 LAYOUT-INVALID error will be signalled when obsolete instances are passed
1083 to a type test (e.g. for type checking.) Use of old code on new instances
1084 or old instances when speed > safety > 0 will result in type errors.
1085 Other restarts allow you to ignore the redefinition or to clobber the
1086 existing information, preserving the old code (in case the change is really
1087 compatible.)
1088 -- If the structure length or inheritance structure has changed, an error
1089 is signalled when you load code that was compiled with a different
1090 structure definition than the one currently in effect.
1091
1092 Internals:
1093 -- VM:STRUCTURE-USAGE renamed to VM:INSTANCE-USAGE. Internally, the structure
1094 type and accessors have also been renamed, e.g.
1095 STRUCTURE-REF => %INSTANCE-REF.
1096 -- The non-standard STRUCTURE type has become has become EXT:INSTANCE. To
1097 (portably) test whether something is really a structure object, do
1098 (TYPEP X 'STRUCTURE-OBJECT)
1099
1100
1101 Misc changes:
1102
1103 ANSI changes:
1104 -- #S readed no longer forces keywords into the keyword package. (ANSI)
1105 -- Added OPEN-STREAM-P.
1106
1107 Added EXT:DO-HASH.
1108
1109 Stream internals:
1110 -- Deleted read-line methods. For simplicity, this rather unimportant
1111 operation is now implemented using read-char.
1112 -- READ-N-BYTES eof-error-p nil is now mostly non-blocking (it only reads what
1113 is in the buffer, or what unix-read returns if the buffer is empty.) To be
1114 sure it won't block, you must guard it with a LISTEN.
1115
1116
1117 Misc bug-fixes:
1118
1119 Compiler:
1120 -- Weaken (not (component-new-functions component)) assertion to allow
1121 deleted functions.
1122 -- Fixed LET* to correctly use the internal policy (not the interface policy)
1123 for all bindings, not just the first.
1124 -- Fixed a problem with functions losing their type declaration info when
1125 there is an inline expansion available.
1126 -- In local call VOPs, must load CALLEE-NFP with MAYBE-LOAD-STACK-TN, since it
1127 might not be in a register. [mips]
1128
1129 Debugger:
1130 -- Changed HANDLE-BREAKPOINT to allow breakpoints that nobody wants. This
1131 can happen if a function-end breakpoint was deactivated while the function
1132 was on the stack, because there is no way to convert the bogus-lra back
1133 into the real lra.
1134
1135 Misc:
1136 -- Fixed a type error in DEFPACKAGE's detection of defining a package which is
1137 really a nickname. Improved handling of deleted packages (most operations
1138 signal an error.)
1139
1140
1141 Tuning:
1142
1143 -- Added declarations from efficiency notes in load, package, reader, char and
1144 hash.
1145 -- Revived the support for FAST-READ-CHAR and the STREAM-IN-BUFFER, which
1146 allows READ-CHAR and READ-BYTE to be done with 0 function calls rather than
1147 2.
1148 -- Because of above two changes, both the reader and the fasloader are now
1149 significantly faster (reader 2x.)
1150 -- Default (non-frozen) structure type tests are now significantly faster (no
1151 function calls), and somewhat smaller. This and the reader improvement
1152 have sped up the compiler somewhat.
1153 -- Many debug-info and compiler data structures are now annotated as pure,
1154 alloing them to be put in read-only space. This reduces the amound of
1155 stuff in static space, speeding GC.
1156 -- Real-valued hash-table parameters (rehash-threshold etc.) are
1157 canonicalized to single-floats.
1158 -- serve-event now uses UNIX-FAST-SELECT, so it can can handle >32 file
1159 descriptors and is more efficient.
1160 -- Changed UNIX-FAST-SELECT to a macro so that it can be efficient. Changed
1161 FD-SET stuff to be efficiently compilable.
1162
1163
1164 2/4/93 to 2/9/93:
1165
1166 Code:
1167
1168 Moved foreign-segment-{start,size} from mumble-os.lisp into foreign.lisp,
1169 and changed it on the sparc to no longer conflict with read-only space.
1170
1171 Changed software-version to use /usr/bin/uname instead of stringing the
1172 kernel. [SunOS only]
1173
1174 Don't try the (SETF (APPLY ...)) hack for functions with non-fixed args, since
1175 it doesn't do anything useful (just converts to a call to the (SETF FUNCTION).
1176
1177
1178 Compiler:
1179
1180 Fixed listify-rest-arg. It was leaving a tagged pointer to unallocated
1181 memory in a descriptor register, which would confuse the garbage collector
1182 if this value was still around.
1183
1184 Added all the info for the scheduler to the instruction files.
1185
1186 Redefined li on the sparc with define-instruction-macro. This allows the
1187 schedular to do a better job because the li gets broken up into the
1188 seperate component instructions earlier.
1189
1190 Fixed make-array-header on the pmax to not seg fault.
1191
1192 Fixed the call to note-assembler-routine on the pmax. This was breaking
1193 DISASSEMBLE.
1194
1195 Changed more occurrences of function-header-code-offset to
1196 function-code-offset. (should have them all by now...)
1197
1198
1199 PCL:
1200
1201 Changed definition of *subtypep to speed up method definition
1202 using code provided by Richard Harris.
1203
1204 Updated definition of *pcl-system-date* as recommended by Richard Harris.
1205
1206 Changed the definition of force-cache-flushes by removing unnecessary
1207 call to update-constructors, as suggested by Richard Harris.
1208
1209
1210 HP support:
1211
1212 Fixed the stuff to emulate the ``addit imm,ALLOC,ALLOC'' instruction at the
1213 end of pseudo-atomic to use all 11 bits of the immediate field instead of
1214 just 5.
1215
1216
1217 Graphical Interface:
1218
1219 The inspector/debugger was not behaving properly in the absence of
1220 the DISPLAY environment variable. It now correctly senses the lack
1221 of X and quietly uses the TTY.
1222
1223
1224
1225 2/2/93 to 2/4/93:
1226
1227 Compiler:
1228
1229 Fixed VALIDATE-CALL-TYPE to correctly handle calls where there is no
1230 function type guarding the call (for example, calls to lambdas). In this
1231 case, we still want to call RECOGNIZE-KNOWN-CALL, since it will figure
1232 out what leaf we are referencing, and might also do something else
1233 interesting: inline expansion, etc.
1234
1235 Replaced the FORMAT transform with one that uses FORMATTER for more
1236 complete handling of format directives.
1237
1238 Fixed make-array-header to not seg fault.
1239
1240 Changed more references to function-header-code-offset to
1241 function-code-offset.
1242
1243
1244 Motif Stuff:
1245
1246 Fixed things up so that the StringTable.h file gets written out
1247 properly with all the other header files.
1248
1249 The debugger should now notice the absence of the Motif server and
1250 print an error message to that effect.
1251
1252
1253
1254 1/13/93 to 2/2/93:
1255
1256 Code:
1257
1258 Fixed COMPUTE-CALLING-FRAME to not try using %CODE-DEBUG-INFO on things
1259 that arn't code components. This broke backtracing in the debugger.
1260
1261 Don't deftype POSITION, because it is a CL symbol.
1262
1263
1264 Compiler:
1265
1266 Changed internal error signaling vops to be :translates instead of being
1267 accessed via %primitive.
1268
1269 Fixed a problem with ASSERT-DEFINITION-TYPE when we have a keyword arg with a
1270 non-constant default.
1271
1272 Added (values) to the end of %verify-argument-count so it matched the
1273 defknown.
1274
1275 Changed the defknown for %verify-argument-count to be more precise.
1276
1277 Chagned make-xep-lambda to declare the number of supplied arguments as an
1278 index instead of a fixnum, because it cannot be negative.
1279
1280 Changed def-source-transform to work with setf functions also.
1281
1282 Removed source-transforms for internal error things, because we just
1283 :translate to them now. Removed header-ref and %string-char-p source-
1284 transforms, because we don't need them anymore.
1285
1286
1287 Startup Code:
1288
1289 Allocate, but protect against reading or writing, the page following each
1290 of the heaps or stacks. This keeps os_allocate from deciding to use one
1291 of those pages for something else.
1292
1293
1294
1295 12/5/92 to 1/13/93
1296
1297 Code:
1298
1299 Backed out the new LOOP, because it breaks something which causes the
1300 compiler to generate bad code.
1301
1302 Export ARRAY-DISPLACEMENT from the CL package.
1303
1304 Changed kernel:code-debug-info to kernel:%code-debug-info.
1305
1306 Changed several uses of %primitive to eqv functions now that eqv functions
1307 exist.
1308
1309 Added COPY-STRUCTURE.
1310
1311 Changed %function-header-mumble to %function-mumble.
1312
1313 Exported FLOATING-POINT-INEXACT from CL, and renamed & exported
1314 FLOATING-POINT-INVALID-OPERATION.
1315
1316 Changed di::code-debug-info to kernel:%code-debug-info.
1317
1318 Added DO-HASH
1319
1320 Export FILE-STREAM from LISP as a synonym for FD-STREAM. Add :INTERACTIVE-P
1321 misc method.
1322
1323 Call *setf-fdefinition-hook* before we check for encapsulation, since the
1324 hook might change the encapsulation.
1325
1326 Changed (code-header-ref component vm:code-debug-info-slot) to
1327 (%code-debug-info component).
1328
1329 Added a #.vm:dylan-function-header-type branch to OUTPUT-FUNCTION. Also
1330 added a T branch that prints "Unknown Function" so we get some output when
1331 we stumble across unknown functions.
1332
1333 Added :cmu17 to the features list so that PCL can tell if it is in a
1334 version 16 or a version 17 series core.
1335
1336 Fixed a bug in pprint-let that caused to to barf on (let (nil) ...).
1337
1338 Added support for dylan funciton subtypes.
1339
1340 Changed %print-request-server to use print-unreadable-object to get rid of
1341 a spelling error in the old version from pre-puo days.
1342
1343 Weaken type declaration on third SELECT result, since it can be NIL if we get
1344 an error.
1345
1346 Delete #+CLX conditional on HANDLE-QUEUED-CLX-EVENT, since we want to be able
1347 to load-time conditionalize whether CLX is present.
1348
1349 Exported various slot accessors of streams now part of the standard. Made
1350 these read-only slots. Added open-stream-p and interactive-stream-p.
1351
1352 Fixed GENTEMP to use its own counter, instead of *gensym-counter*.
1353
1354 Added pretty-printer directives to trace so that arg lists and results
1355 print better.
1356
1357 Fixed untrace-1 not to flame out when untracing untraced functions.
1358
1359 Added module.lisp back in, because ANSI added provide and require back in.
1360
1361
1362 Compiler:
1363
1364 Re-worked the way allocation and primitive slot access are compiled, which
1365 should (hopefully) reduce the size of the backend.
1366
1367 Fixed defknown of %verify-argument-count to have * for the result type
1368 instead of nil.
1369
1370 Extended INFO to take the env-list as an optional fourth argument so that
1371 we don't have to re-bind *info-environment* to get at info environemnts
1372 other then the regular one.
1373
1374 In FINALIZE-XEP-DEFINITION, if not the current global definition, just leave
1375 the defined type alone, instead of clobbering it with FUNCTION. A benefit of
1376 this is that COMPILE doesn't trash the function type.
1377
1378 Allow non-keyword keyword names when the &key keyword is specified separately
1379 from the variable.
1380
1381 Prevent recursive opportunistic inline expansion during IR1 conversion by
1382 temporarily clearing the DEFINED-FUNCTION-INLINE-EXPANSION when doing the
1383 conversion.
1384
1385 Changed the make-closure vop to take the length as an info argument because
1386 it is always known at compile time. Changed the set vop to not have a result
1387 because we don't want it.
1388
1389 Added ANNOTATE-FUNNY-CALL for use with new define-primitive-object stuff.
1390
1391
1392 Startup code:
1393
1394 Increased the size of the sparc's heap.
1395
1396 Changed "environment too big" message to suggest probably a sparc 10.
1397
1398
1399 PCL:
1400
1401 September-16-92-PCL-e has been incorporated into the CMUCL sources thanks
1402 to Rick Harris.
1403
1404
1405
1406 11/23/92 to 12/5/92:
1407
1408 Code:
1409
1410 Minor fixes to LOOP and DELETE-PACKAGE.
1411
1412 Low level support for various subtypes of function for use with Dylan.
1413
1414
1415
1416 Pre 12/5/92:
1417
1418 For the release notes corresponding to releases prior to 12/5/92, please
1419 see the file:
1420
1421 alpha-notes-thru-92.txt

  ViewVC Help
Powered by ViewVC 1.1.5