ViewVC logotype

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

Parent Directory Parent Directory | Revision Log Revision Log

Revision 1.7 - (show annotations)
Wed Feb 26 02:02:50 1992 UTC (22 years, 2 months ago) by ram
Branch: MAIN
Changes since 1.6: +13 -6 lines
File MIME type: text/plain
Lock status: Locked ram
*** empty log message ***
1 Release notes for CMU Common Lisp 15e, 25 February 92
4 15e is mainly a bug-fix release; it will probably be the last version 15
5 release, and is thus the most stable system you're going to see for a while.
6 We're reluctant to call it a "default" release because some things are stably
7 broken:
8 -- There still isn't any good stack overflow detection. Probably stack
9 overflow detection won't appear until the C code rewrite associated with
10 generational GC comes out (version 17 or later.)
11 -- The Alien/foreign function call mechanism is fairly broken. It doesn't
12 work at all in interpreted code, and DEF-C-ROUTINE doesn't work properly
13 for many argument type signatures. We've redesigned and reimplemented
14 our foreign interface for version 16.
16 We are now distributing the CMU CL user manual in Gnu Info format (in
17 doc/cmu-user.info.) You can either have your EMACS maintainer install this in
18 the info root, or you can use the info "g(<cmucl root dir>/doc/cmu-user.info)"
19 command. Many thanks to Mike Clarkson (the LaTeXinfo maintainer) who
20 volunteered to convert our Scribe documents.
22 Changes:
23 -- Improved recursive error handling. Errors during reporting of errors are
24 detected and suppressed. Other recursive errors are eventually detected,
25 and hopefully recovered from. This should eliminate some "recursive map
26 failure (stack overflow?)" errors.
27 -- Fixed a bad declaration in CLX which caused an array index error on
28 font attribute queries (such as CHAR-WIDTH.)
29 -- Fixed interpreted (typep x '(and ...)) to not always return NIL.
30 -- Fixed interpreted CLOS methods to work once again.
31 -- Fixed PROFILE to work again, now that argument count information may be
32 missing.
33 -- Changed NCONC to signal an error if a non-null ATOM appears other than
34 as the last argument.
35 -- Changed FEATUREP to signal an error if it is passed a list form with a
36 strange CAR.
37 -- Do type checking on the arguments to %PUTHASH so that
38 (setf (gethash foo 'bar) x) doesn't get a bus error.
39 -- Changed LET* and &AUX to allow duplicate variable names.
40 -- Fixed DEFTYPE to properly invalidate type system caches so that type
41 redefinitions predictably take effect.
42 -- Improvements to MIPS disassembler database.
45 Release notes for CMU Common Lisp 15d, 2 February 92
47 These release notes cover changes since the beta release of version 15b on 6
48 June 91. Execpt for Miles Bader's portable disassembler and a few minor
49 performance enhancements, this is mostly a bug-fix release. We've been
50 working on ANSI complaince, foreign function interface and more advanced
51 compiler optimizations, but we're not going to inflict that on the general
52 public just yet.
57 Bug fixes:
58 -- (SETF AREF) now checks to make sure that the new value is of the correct
59 type.
60 -- Improved checking for invalid syntax in DEFSTRUCT. In some cases, syntax
61 errors would cause cryptic internal errors due to inadequate type
62 checking.
63 -- DRIBBLE now monitors *ERROR-OUTPUT* (in addition to *STANDARD-OUTPUT*).
64 -- Bignum printing now works correctly in base 36.
65 -- Fixed EXPT to deal with SINGLE-FLOAT x SINGLE-FLOAT arg type combination.
66 -- Fixed TRUNCATE to handle the SINGLE-FLOAT/DOUBLE-FLOAT case.
67 -- The PROFILE package works once again.
69 Enhancements:
70 -- A new retargetable disassembler provides DISASSEMBLE support on the SPARC,
71 and also greatly improved disassembly on the MIPS. The output is
72 annotated with source-code correspondences if debug-info permits.
73 -- Added INLINE MEMBER declarations in definitions of the set functions
74 (UNION, etc.) so that when the set functions are inlined, the MEMBER calls
75 will also.
76 -- Merged Lange's improved type declarations for nthcdr/butlast/nbutlast.
77 Also, NTH-VALUE now doesn't cons for non-constant N less than 3.
78 -- The loader now supports appending fasl files. You can:
79 cat a.fasl b.fasl c.fasl >all.fasl
80 -- Added :UNIX to the features list.
82 The new variable EXT:*TOP-LEVEL-AUTO-DECLARE* controls whether assignments to
83 unknown variables at top-level (or in any other call to EVAL of SETQ) will
84 implicitly declare the variable SPECIAL. These values are meaningful:
85 :WARN -- Print a warning, but declare the variable special (the default.)
86 T -- Quietly declare the variable special.
87 NIL -- Never declare the variable, giving warnings on each use. (The
88 old behavior.)
90 The reader now ignores undefined read macro errors when *read-suppress* is T.
91 All reader character lookup tables are now CHAR-CODE-LIMIT in size. Formerly,
92 some where only 128. In the standard readtable, these additional characters
93 are all undefined.
95 There are various changes in the DEBUG-INTERNALS interface related to
96 breakpoint support, but we haven't yet implemented a satisfactory user
97 interface to breakpoints. Changed name of DI:DO-BLOCKS to
101 This release fixes a few problems with Aliens, but they are still pretty
102 broken. In particular, Alien and C interface operations don't work at all in
103 interpreted code. We are in the process of integrating a new-and-improved
104 implementation of Aliens that works much more smoothly with C.
109 Enhancements:
110 -- Various SPARC-specific reductions in spurious type checks and coercions.
111 -- FTYPE declarations on local functions are now propagated to the variables
112 of the local definition.
113 -- Improved representation selection by not totally ignoring references by
114 move VOPs. This is particularly useful for avoiding spurious number
115 consing of float arguments that are passed on as arguments.
116 -- The warning about assignments to the arguments of functions having FTYPE
117 declarations is now suppressed when the FTYPE declaration gives no useful
118 information.
119 -- Improved readability of *COMPILE-PROGRESS* output.
120 -- Fixed TYPES-INTERSECT to consider any supertype of T to definitely
121 intersect with anything (including unknown or not-yet-defined types.)
123 Bug fixes:
124 -- Fixed some bugs in dead code deletion.
125 -- Lambdas with &KEY and no specified keywords are now compiled correctly
126 (instead of the &KEY being ignored.)
127 -- The compiler now knows that INTERN can return NIL as its second value.
128 -- Global FTYPE declarations on DEFSTRUCT slot accessors are now quietly
129 ignored, instead of causing the structure definition to be removed.
130 -- Fixed a problem with resulting from an interaction between block
131 compilation and global FTYPE declarations.
132 -- Fixed TAGBODY not to consider NIL to be a tag.
133 -- Fixed an internal error during register allocation which could happen when
134 compilation-speed > speed.
135 -- If we undefine a structure type, unfreeze it also.
136 -- Fixed TYPEP SATISFIES to always return T-or-NIL, regardless of what the
137 predicate returns.
140 -- Added generalized source context parsing with EXT:DEF-SOURCE-CONTEXT.
141 Added a parser for DEFMETHOD that gets qualifiers and specializers.
142 -- FUNCALLABLE-INSTANCE-P is now compiled much more efficiently.
143 -- Fixed SET-FUNCTION-NAME to correctly set the name of interpreted methods,
144 instead of clobbering the name of an internal interpreter function.
149 Bug fixes:
150 -- Changed X font specs in the generic site-init file to use point size
151 instead of pixel size so that they work on 100dpi devices.
152 -- Added :INPUT :ON wm-hints to Hemlock windows, which is necessary to
153 receive input in OpenLook windowing systems.
154 -- Fixed Lisp mode indentation for FLET&c to check that we are actually in
155 the first arg form before doing funny indentation. Generalized to
156 reference the variable "Lisp Indentation Local Definers", and also to
157 recognize LABELS (as well as MACROLET and FLET.)
158 -- When we reallocate string-table vectors to grow them, clear the old vector
159 so that it won't hold onto garbage (in case the vector was in static
160 space, but pointed to dynamic values.) This was a major cause of memory
161 leakage in Hemlock.
162 -- Fixed sentence motion to work at the end of the buffer.
164 Enhancements:
165 -- The site file now contains a template for file directory translation (for
166 "Edit Definition"), and some of the comments have been improved.
167 -- There's a new "Buffer Modified Hook" function that raises the "Echo Area"
168 window when it becomes modified. You can control this with the Hemlock
169 variable: "Raise Echo Area When Modified".
170 -- In "Edit Definition" and related commands, before doing directory
171 translations, try a probe-file of the source file first. This can reduce
172 the number of translations needed.
173 -- Added DEFINDENT's for the "WIRE" package.
174 -- Made the X visual bell look less spastic by adding a finish-output.
175 -- The termcap parser now recognizes entries for things like begin/end bold,
176 underline, etc. Fixed a problem with font halding in TTY redisplay.
177 -- The MH interface now uses the correct name for the MailDrop profile
178 component.
179 -- The netnews interface has been improved in various ways, including the
180 addition of server timeouts, but should still be considered experimental.
183 Release notes for CMU Common Lisp 15b, 19 October 91
185 These release notes cover changes since the beta release of version 14c on 6
186 June 91. SPARCstations and Sun4's are now supported under SunOS (as well as
187 Mach), which makes CMU CL more usable outside of the CMU environment. CMU CL
188 also runs on Mach (or OSF/1) DECstations, and IBM RT support is coming real
189 soon now.
194 Bug fixes:
195 -- MAKE-ARRAY now to allows :INITIAL-CONTENTS any kind of of sequence, not
196 just a list.
197 -- VECTOR-PUSH and VECTOR-PUSH-EXTEND now return the original fill
198 pointer, not the new fill pointer.
199 -- VECTOR-POP now returns the value indexed by the new fill pointer, not
200 the original fill pointer.
201 -- Fixed two bugs in bignum division.
202 -- FORMAT-PRINT-NUMBER now correctly inserts commas for negative numbers
203 (don't print -,123).
204 -- Fixed GET-SETF-METHOD to only inhibit setf macros when there is a local
205 function, not also when there is a local macro.
206 -- Changed the debugger to use *READ-SUPPRESS* when skipping over top-level
207 forms in the source file to prevent spurious read errors.
208 -- In the printer, deleted an incorrect and questionably optimal
209 optimization of symbol package qualification.
210 -- When printing characters, prefer the semi-standard character-names
212 -- Fixed one-off error in list REMOVE-DUPLICATES :FROM-END. Fixed
213 SUBSTITUTE & friends to pass arguments to the TEST in the right order.
214 Fixed SUBSTITUTE not to randomly apply the KEY to the OLD value. Changed
215 LIST NSUBSTITUTE & friends to work in the :FROM-END case.
216 -- Several bug-fixes to RUN-PROGRAM and subprocess I/O.
217 -- Fixed all recursive READ calls in sharp-macros to specify eof-error-p T, so
218 that EOF errors are signalled when appropriate.
219 -- The REMOTE RPC protocol (used for slave control) can now send bignums.
220 -- Passing of unused arguments to interpreted functions now works. Previously
221 the variables would be bound to the wrong arguments.
222 -- Many fixes to the time parsing and printing extensions.
224 X3J13 cleanups:
225 -- Added #P pathname read syntax, and changed the pathname printer to use it.
226 -- Added :KEY argument to REDUCE.
228 Enhancements:
229 -- Added code to compile the argument to TIME when possible, and print a
230 warning when it isn't. Optimized the TIME macro to keep the consing
231 overhead of using it zero.
232 -- Changed all places absolute pathnames were used to indirect search-lists,
233 mostly library:. "lisp" must now be findable on your PATH for Hemlock to
234 be able to start slaves.
235 -- Increased readability of DESCRIBE function output by printing function and
236 macro doc strings before arg and result info.
237 -- The CMUCLLIB search path environment variable is now used to find lisp.core
238 and other library files, instead of always assuming the path
239 /usr/misc/.cmucl/lib.
244 Bug fixes:
245 -- EVAL now uses the constant value recorded in the compiler environment
246 that compile-time references to constants works better. Now
247 (defconstant a 3) (defconstant b (+ a 4)) works again.
248 -- Don't try to infer the bounds of non-simple arrays, since they can change.
249 -- Fixed some problems with block compilation, maybe-inline functions and
250 unused function deletion.
251 -- DEFMETHODs can now use &ALLOW-OTHER-KEYS without killing the compiler.
252 -- Fixed VALUES declaration to work correctly when zero values are specified.
253 -- The FORMAT transform now warns if there are to many or too few args.
256 X3J13 cleanups:
257 -- Make all non-symbol atoms self-evaluate.
259 Enhancements:
260 -- Made the default for COMPILE-FILE's :error-file argument be nil.
261 -- Changed notes about incompatible changes in function arguments lists to be
262 a warning rather than a note.
263 -- Source-level optimization efficiency notes now print out a
264 transform-specific string to describe what the transform was trying to do,
265 instead of just saying "unable to optimize."
270 This is version 3.5.
272 Note: The default value of "Slave Utility" is now just "lisp" which hopefully
273 will be found on path:. If you don't have lisp on your path, you need to set
274 "Slave Utility" to the full pathname of lisp, /usr/misc/.cmucl/bin/lisp on CMU
275 machines.
277 Bug fixes:
278 -- Under TTY screen management, a MAKE-WINDOW - DELETE-WINDOW sequence now
279 leaves the screen unchanged.
280 -- Fixed some character attribute constants to make 8-bit chars work.
281 -- "Center Line" now works when invoked on the last line of the buffer.
282 -- Fixed "Move Over )" to use a permanent mark instead of a temporary mark
283 because it deletes text.
284 -- Fixed sentence motion to be able to move to the end of the buffer.
285 -- Fixed the hemlock banner in the status line to not have "!" after
286 the date.
288 Enhancements:
289 -- Removed the definitions of the obsolete COMMAND-CHAR-BITS-LIMIT and
291 -- Modified "Visit File" to issue a loud message whenever another buffer
292 already contains the file visited. The quiet message often went unnoticed,
293 defeating its purpose.
294 -- The definitions in FLET, LABELS and MACROLET are now indented correctly.
295 -- Added DEFINDENT's for the "DEBUG-INTERNALS" interface.
296 -- Modified Lisp indentation to check if the mark in was in a string context.
297 If it is, then we go to the column after the opening double quote.
298 Otherwise, we use the first preceding non-blank line's indentation. This
299 fixes the problem with doc strings and ERROR strings which got indented
300 respectively at the beginning of the line and under the paren for the ERROR
301 call.
302 -- Added some prototype netnews support. Details to be anounced later.
303 -- Added font support for the TTY. Allow active region highlighting and open
304 paren highlighting when on the TTY, as they now work.
305 -- Changed the compile-in-slave utilities to count notes and display in
306 completion message. Also fixed not to print echo area messages "Error in
307 NIL ..."
309 New commands:
311 "Fill Lisp Comment Paragraph" Lisp: M-q
312 Fills a flushleft or indented Lisp comment, or lines all beginning with the
313 same initial, non-empty blankspace. When filling a comment, the current
314 line is used to determine a fill prefix by scanning for the first semicolon,
315 skipping any others, and finding the first non-whitespace character;
316 otherwise, the initial whitespace is used.
318 "Shell Complete Filename" Process: M-Escape
319 In a shell buffer, attempts to complete the filename immediately before
320 point. The commands that start "Process" buffers with shells establish a
321 stream with the shell that tries to track the current working directory of
322 the shell. It uses the variable "Current Working Directory" to do this.
323 For it to work, you should add the following to your .cshrc file:
324 if ($term == emacs) then
325 alias cd 'cd \!* ; echo ""`pwd`"/"'
326 alias popd 'popd \!* ; echo ""`pwd`"/"'
327 alias pushd 'pushd \!* ; echo ""`pwd`"/"'
328 endif
330 "Manual Page"
331 Runs man(1) in a scratch buffer and displays it in the current window.
333 "Typescript Slave Status" Typescript: H-s
334 Interrupt the slave and cause it to print status information.
337 Hemlock-internals changes:
338 -- CREATE-WINDOW-FROM-CURRENT now creates a window according to its new
339 proportion argument instead of simply splitting the current window in two.
340 It returns nil without doing anything if either window is too small.
341 -- WINDOW-GROUP-CHANGED no longer unifies the sizes of window when the
342 user resizes a group. It now tries to distribute the new size of the group
343 according to the proportions of the old size consumed by the windows.
344 -- Changed ARRAY-ELEMENT-FROM-MARK to use AREF for the Netnews stuff. I
345 documented this to be an internal interface since a few other modes use it.
346 -- WRITE-FILE now takes an :append argument.
347 -- Modified %SET-MODELINE-FIELD-FUNCTION to allow its function argument to be
348 a symbol or function since the purpose is to FUNCALL the thing. Since the
349 new system is up to spec on the disjointedness of functions, this needed to
350 be fixed for usefulness.
353 Release notes for CMU Common Lisp 14c, 6 June 91
355 ** The FASL file format has changed, so all files must be recompiled. **
357 These notes describe changes since the beta release of 3 February 91. This is
358 the first CMU CL release to run on Mach SPARCs as well as on PMAXen (DECstation
359 3100 or 5000). Version 14c will go out to both beta and default, since there
360 is currently no default release.
362 This release has a substantial space reduction due to compiling with debug-info
363 1 and reduced safety. The core is currently 19.2 meg, which is 7 meg smaller
364 than the last beta release (despite added functionality.)
366 Major parts of the system are now compiled with no error checking. Users
367 should not notice any reduction in safety, since user visible interfaces are
368 supposed to be fully checked. Standard functions that users can cause to get
369 unbound symbol or array index errors needed to be changed to either do explicit
370 error checks or locally use a safe policy. Some of these cases may have been
371 missed. Let us know if you get any less-than-informative error messages
372 (segmentation violation) inside standard functions.
375 New packages:
377 The X based graphical inspector is now available. It now uses standard
378 fonts (courier) and has a bigger help window.
380 An improved version of the profile package (previously in the library) is now
381 in the core. It now compensates for recursive calls or nested calls, and
382 interacts better with TRACE and function redefinition. The old profile
383 documentation is in:
384 /afs/cs/project/clisp/library/profile/profile.doc
387 Code:
389 Argument type checking for Common Lisp functions is now driven by the
390 compiler's function type database (the types reported by DESCRIBE.) This means
391 that some type errors might be detected that were previously unnoticed.
393 Changed the internal WITH-ARRAY-DATA macro to do bounds checking. This causes
394 various string functions to give better error messages when an :END arg is out
395 of bounds or :START is greater than :END.
397 Tuning:
398 Some tuning in SYSTEM:SERVE-EVENT which reduces consing and speeds up
399 Hemlock and terminal I/O.
401 Changed GET-INTERNAL-REAL-TIME to subtract out the time of the first
402 call to minimize the probability of bignum results. Also some other tuning
403 that reduced the consing of this function to 0.
405 Tuned bignum code and added declarations to reduce number consing.
409 Fixed default-structure-print to work when *print-circle* is T.
410 Merged fix to DEFSTRUCT constructor parsing that allows multiple default
411 constructors, or none at all.
413 Merged bug fixes from old RT system:
414 STANDARD-CHAR-P no longer returns T for #\return.
416 Fixed a bug in format regarding ~@*.
418 Fixed the read-eval-print loop to frob +, ++, +++ correctly.
420 Fixed a bug in Y-OR-N-P. It was calling WHITESPACEP on a symbol.
422 Fixed READ-QUOTE to call READ with t for eof-errorp which it previously
423 failed to do. fixed READ-PRESERVING-WHITESPACE to no longer screw with
424 eof-errorp based on recursivep
426 Package system:
427 Changed DEFPACKAGE to expand into stuff that will have the package effect
428 at compile time as well as at load time.
430 Fixed DEFPACKAGE to deal more correctly with finding symbols that must
431 exist.
433 Fixed package system code to not destructively modify the USE, USED-BY and
434 SHADOWING-SYMBOLS lists so that they don't get retroactively modified when
435 we hand them off to the user.
437 Also, in SHADOW, when symbols is NIL, shadow no symbols, not NIL.
439 Fixed a bug in RENAME-PACKAGE that happened when the new name was one of
440 the old nicknames.
442 Streams:
443 Tweaked handling of LISTEN a bit to allow READ-CHAR-NO-HANG to work
444 correctly. Fixed the listen method for concatenated streams. It failed to
445 step to the next stream when the current one hit eof.
447 Make two-way streams force-output on the output side before passing any
448 input requests on to the input side. Made *standard-output* a two-way
449 stream so that reading *standard-input* will force output on standard
450 output. This eliminates the need for explicit calls for FORCE-OUTPUT when
451 prompting.
453 Some tuning and bug fixes to FD-STREAMS (file descriptor streams) which are
454 used for file I/O (and now for communication with the X server.) Also, now
455 OPEN complains if you try to open a non-writable file for output with
456 :RENAME or :RENAME-AND-DELETE. Previously this would succeed as long as
457 the directory was writable. SYSTEM:READ-N-BYTES on FD streams is now more
458 efficient, but does *not* wait using SERVE-EVENT; it blocks instead.
460 TRACE:
461 Use FORCE-OUTPUT instead of FINISH-OUTPUT to prevent gratuitous slowdowns
462 when running in a slave.
464 If we enter trace recursively (due to the printer calling the traced
465 function), then just quietly call the function, instead of signalling an
466 annoying "unable to trace" error.
468 LOAD:
469 Changed load to look at the file contents for the "FASL FILE" header to
470 determine whether to fasload or slow load, instead of forcing use of a
471 single fasl file type. Also, when the given filename doesn't exist and
472 doesn't have a type, try ``fasl'' in addition to the machine specific fasl
473 file type. Eliminated the "feature" whereby zero-length fasl files were
474 considered to be valid (doing nothing). Now if you try to load a file with
475 a fasl file type, but that doesn't have a valid fasl header, then you will
476 get an error (proceeding loads as a source file.)
478 When the loader prints comments about loading progress, the number of
479 leading semicolons is now the depth of recursive loading.
481 Added a CONTINUE restart in LOAD that returns NIL.
483 GC:
484 Fixed some bugs in control of garbage collection that should solve some
485 problems with GC failing to be triggered automatically. Also, GC no longer
486 implicitly reenables automatic GC if it has been disabled with GC-OFF.
488 Changed the default GC notify function to not beep. The old behavior can
489 still be obtained by setting *GC-VERBOSE* to :BEEP. Note that this only
490 affects use on TTYs, since slave GC notification works differently.
492 Wrapped a without-interrupts around the guts of maybe-gc so that the notify
493 messages and state updates don't get seperated from the actual gc.
495 Removed the icache flushing stuff from GC, because it was unneeded (and
496 sometimes printed annoying messages that it didn't work).
498 X3J13 cleanups:
499 The non-destructive string functions now accept characters as well as
500 strings and symbols.
502 MACROEXPAND now expands symbol macros.
504 Now almost all Common Lisp functions which are SETFable have a (SETF name)
505 function. The exceptions are functions where it makes no sense (LDB,
506 GETF), and a few other functions (GET, GETHASH.) Now SETF of APPLY works
507 for any function which has a setf function.
509 Changed GET-SETF-METHOD to ignore setf macros (always global) when there is
510 a local macro or function of the place function. [An x3j13 cleanup]
512 Fixed the LOOP THEREIS keyword. Changed a null test in LOOP into an endp
513 test.
515 Other bug fixes:
516 Fixed sequence functions with output type specifiers to handle DEFTYPE'ed
517 types and other complex types correctly. (COERCE still can't hack
518 DEFTYPEs, though.)
520 Fixed typep of (satisfies (lambda (obj) ...)) to coerce the form into a
521 function so that "object not function" errors don't result.
523 Fixed DOCUMENTATION to return only one value.
525 Enhancements:
526 ROOM is now much more verbose, displaying a breakdown of memory usage by
527 object type.
529 Changed the printer to print the name of code objects and the value of
530 value cells.
533 CLX:
536 screen specified by the user before returning the display.
538 Merged in a bug-fix to EVENT-LISTEN to make it return the right number of
539 events when called when there is a current event (i.e. in an EVENT-CASE.)
541 Fixed the CLX X interface to be much more efficient, as well as fixing some
542 bugs. The low-level I/O to the server is now faster and conses much less.
543 Enabled some code speeds up pixarray read/write (though it could still be much
544 better.) Also, eliminated redundant type checking and fixed some broken
545 declarations. This fixes problems with CLX sometimes not working with some X
546 servers (like the RT server.)
549 Compiler:
551 Bug fixes:
552 Fixed incorrect argument type information for some standard Common Lisp
553 functions.
555 Fixed PROCLAIM to work correctly when the argument isn't a constant.
557 Fixed the DEBUG optimize quality to be called DEBUG instead of DEBUG-INFO.
559 Fixed the compiler to not flame out if it sees a SATISFIES type specifier
560 where the predicate function is undefined, and generally to deal better
561 with testing whether a compile-time constant is of some type that may not
562 be properly defined yet.
564 Fixed a number of bugs in the handling of closures over top-level
565 variables.
567 Fixed a problem with semi-inline functions.
569 The compiler note count is no longer incremented when notes are suppressed
572 Some fixes that should eliminate spurious undefined-function warnings. In
573 particular, definitions of functions in non-null lexical environments will
574 be noticed.
576 Also, now if a function is defined incompatibly with previous calls, the
577 warning will have proper source context.
579 Fixed a bug in accessors for 1,2, and 4 bit arrays that was causing #* to
580 generate incorrect bit vectors.
582 Changed the type system to consider #(:foo :bar) to be a subtype of
583 (vector keyword). In other words, array subtype relations are determined
584 according to the specialized element types actually present in this
585 implementation, rather than assuming that all element types can be
586 discriminated.
588 Fixed a problem that could cause type checks to be spuriously deleted in
589 some contexts where there is a local change in the SAFETY optimization
590 policy.
592 DECStation (PMAX) specific changes:
594 Representation conversion of a SAP (system area pointer) to a pointer
595 representation now results in an efficiency note.
597 Fixed EQL (and =) on integers to not unnecessarily cons a word-integer
598 argument just because one argument is known to be a fixnum.
600 New version of the assembler with instruction scheduling (no-op deletion)
601 support. This reduced the size of the core by 1.3 meg, and makes
602 everything run faster too.
604 Fixed TRUNCATE on floats to truncate instead of rounding.
606 SPARC notes:
607 The SPARC port is not yet as highly tuned as the PMAX port. In particular,
608 no instruction scheduling is done yet. This is probably a 10% performance
609 penalty.
611 Enhancements:
612 Made forms within a LOCALLY be recognized as "top-level" so that subforms
613 can be compiled separately.
615 The compiler now ignores assignments to special variables when determining
616 which representation to use for a variable. Also, we don't print
617 representation selection efficiency notes about coercion that are due to
618 error checking code.
620 Added support for the EXT:CONSTANT-FUNCTION declaration (already in the
621 documentation.)
623 When a DEFUN is compiled and the name has a FTYPE declaration, then a note
624 is printed if any arguments to the function are assigned to (i.e. SETQ) in
625 the body, as this inhibits application of the FTYPE declaration to the
626 argument variables.
628 (<mumble>-P x) structure predicates are now just as efficient as
629 (TYPEP x '<mumble>).
631 Added type inference methods for sequence functions, and various functions
632 that return an argument as their result value.
634 A number of improvements to register allocation.
636 Added a new optimization of MULTIPLE-VALUE-CALL which converts MV calls
637 having a known number of arguments into MULTIPLE-VALUE-BIND/FUNCALL.
638 Combined with some other existing optimizations, this allows functions like
639 to be efficiently inline expanded (i.e. the APPLY turns to a FUNCALL):
640 (defun foo (&rest x)
641 (apply #'glorp x))
643 Reduced the size of debug information for OPTIMIZE DEBUG <= to 1.
644 If debug-info is < 1, then don't dump debug-args or function type.
646 Disabled the compiler's internal consistency checking by default. These
647 phases are only useful for locating compiler bugs.
649 X3J13 cleanups:
650 The :VERBOSE and :PRINT keyword arguments are now supported by
651 COMPILE-FILE. The :PROGRESS keyword is a CMU extension that provides an
652 even higher level of verbosity. The *COMPILE-VERBOSE*, etc., variables are
653 also now supported.
655 Changed declaration processing to treat FUNCTION declarations as ordinary
656 variably type declarations. The old semantics is still obtained when the
657 second arg to the declaration is a list (as it always would be in the old
658 usage.)
660 Block compilation:
661 Added new START-BLOCK and END-BLOCK declarations to allow portions of a
662 file to be block compiled (instead of only entire files.) This mechanism
663 also allows the entry points to a block to be specified, allowing improved
664 compilation of non-entry-point functions. Fixed many bugs that appeared
665 once block compilation was actually used.
668 :BLOCK-COMPILE NIL will totally inhibit compile-time resolution of function
669 names (including self-calls.) The default (:SPECIFIED) allows compile time
670 resolution, but still compiles one top-level form at a time, preventing
671 local calls between top-level forms. In this mode, a
672 (BLOCK-START Entry-Point*)
673 declaration will start block compilation. Block compilation is terminated
674 by BLOCK-END, or the BLOCK-START of the next block.
676 See also the COMPILE-FILE doc string.
679 Context sensitive declarations:
680 Added the OPTIMIZE-INTERFACE declaration, which is just like OPTIMIZE, but
681 specifies the policy for function argument syntax checking and checking of
682 any declared argument types, allowing it to be distinct from the general
683 compilation policy. This allows debugged code to be compiled with lowered
684 safety in its "guts", while still doing checking on the arguments that
685 users may supply (incorrectly.) Any quality not separately specified
686 defaults to the normal OPTIMIZE quality.
688 Fixed WITH-COMPILATION-UNIT keyword to be :OVERRIDE instead of :FORCE.
689 Also, added :OPTIMIZE and :OPTIMIZE-INTERFACE for changing the "global"
690 compilation policy within the dynamic extent.
692 Added :CONTEXT-DECLARATIONS, which provides a way to insert declarations
693 conditional on pattern matching of the context in which the definition
694 appears. So you can compile all external functions safe, or whatever. See
695 the doc string for WITH-COMPILATION-UNIT.
698 Hemlock:
700 Tuning:
701 Changed typescript streams to cache the line length. This greatly speeds
702 up slave output.
704 Several changes to allow redisplay to be delayed until process output (i.e.
705 in a shell buffer) is complete. This allows the editor to catch up with
706 output by only displaying the final state of the shell buffer, instead of
707 forcing every line of output to be displayed. This is very nice with slow
708 terminals or large outputs.
710 TTY redisplay:
711 Changed TTY redisplay to get the terminal size and speed from Unix using
712 the appropriate "ioctl" calls. The speed of a PTY (and hence any telnet or
713 MCN connection) is infinite by default. For best results with TTY
714 redisplay, it is crucial to set the terminal speed with the Unix "stty"
715 command:
716 stty 2400
717 stty 9600 etc.
719 Setting the speed allows the editor to keep in synch with the terminal so
720 that typing a command will temporarily abort redisplay until until there is
721 no typeahead. This way, if you type C-v C-v in succession, output of the
722 first screen will stop when you type the second C-v.
724 Fixed several bugs in TTY redisplay. "Unexpected zero transition delta" is
725 gone. Also, fixed some problems with the screen not being updated properly
726 after redisplay has been aborted. (When you type several commands in quick
727 succession.)
729 REDISPLAY now returns T, NIL or :EDITOR-INPUT. T is returned when
730 redisplay changed the screen. NIL is returned when there was no change.
731 :EDITOR-INPUT is returned when redisplay tried to update the screen, but
732 was aborted due to pending editor input.
734 Fixed REDISPLAY-WINDOWS-FROM-MARK so that process output won't cause
735 redisplay when we aren't in Hemlock.
737 Bug fixes:
738 Modified MAKE-BUFFERS-FOR-TYPESCRIPT to make sure the user supplied
739 slave-name is free for use, so we don't clobber currently existing slaves.
741 Fixed a bug in completion mode (didn't previously work in the new-compiler
742 system.)
744 Enhancements:
745 There is a new command "Set Buffer Writable", and the obsolete
746 command "Connect to Registered Eval Server" has been removed.
748 Added "Slave GC Alarm" variable (default :MESSAGE) which controls how
749 obnoxious the slave GC notification is. Other values are like for "Input
750 Wait Alarm", :LOUD-MESSAGE and NIL.
752 Made the slave switch demon set debug:*help-line-scroll-count* to
753 most-positive-fixnum, since the editor can do the scrolling for us.
758 Made SYSTEM:BITS, BYTES, etc., be defined in the null environment so that they
759 can be inline expanded. This was causing spurious consing in various system
760 code.
762 Fixed EXT:CONNECT-TO-INET-SOCKET to check that we successfully looked up the
763 name so that we don't get segment violations on unknown hosts.
765 Fixed DI:FUNCTION-DEBUG-FUNCTION (though it still returns the XEP.)
766 Some fixes to DI: condition report methods
768 Added support for the MACH:TIOCGWINSZ and MACH:TIOCSWINSZ ioctls.
769 In the Unix interface, extended the length of pathnames from 64 to 1024.
771 EXT:ONCE-ONLY now does sequential variable binding. This can't cause any
772 problems, since all names are gensyms, and is often useful.
775 condition is signalled if a timeout is specified and exceeded.
777 ----------

  ViewVC Help
Powered by ViewVC 1.1.5