ViewVC logotype

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

Parent Directory Parent Directory | Revision Log Revision Log

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

  ViewVC Help
Powered by ViewVC 1.1.5