ViewVC logotype

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

Parent Directory Parent Directory | Revision Log Revision Log

Revision 1.5 - (hide 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 ram 1.5 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 ram 1.4 Release notes for CMU Common Lisp 15d, 2 February 92
50 ram 1.3
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 ram 1.4 -- The PROFILE package works once again.
72 ram 1.3
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.
111     COMPILER
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.
143     PCL/CLOS:
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.
151     HEMLOCK
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
188 ram 1.2
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.
246     COMPILER
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."
272     HEMLOCK
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 ram 1.1 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.
412     DEFSTRUCT:
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
574     by INHIBIT-WARNINGS 3.
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.
671     COMPILE-FILE now has :ENTRY-POINTS and :BLOCK-COMPILE keywords.
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