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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.7 - (hide annotations)
Wed Feb 26 02:02:50 1992 UTC (22 years, 1 month 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 ram 1.5 Release notes for CMU Common Lisp 15e, 25 February 92
2    
3    
4 ram 1.7 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.
15    
16     We are now distributing the CMU CL user manual in Gnu Info format (in
17 ram 1.5 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.
21    
22     Changes:
23 ram 1.6 -- 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.
43 ram 1.5
44    
45 ram 1.4 Release notes for CMU Common Lisp 15d, 2 February 92
46 ram 1.3
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.
53    
54    
55     GENERAL SYSTEM CODE
56    
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 ram 1.4 -- The PROFILE package works once again.
68 ram 1.3
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.
81    
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.)
89    
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.
94    
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
98     DI:DO-DEBUG-FUNCTION-BLOCKS. Added DI:FUNCTION-END-COOKIE-VALID-P and
99     DI:DEBUG-FUNCTION-START-LOCATION.
100    
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.
105    
106    
107     COMPILER
108    
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.)
122    
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.
138    
139     PCL/CLOS:
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.
145    
146    
147     HEMLOCK
148    
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.
163    
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.
181    
182    
183     Release notes for CMU Common Lisp 15b, 19 October 91
184 ram 1.2
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.
190    
191    
192     GENERAL SYSTEM CODE
193    
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
211     NEWLINE, ESCAPE and DELETE to the old LINEFEED, ALTMODE and RUBOUT.
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.
223    
224     X3J13 cleanups:
225     -- Added #P pathname read syntax, and changed the pathname printer to use it.
226     -- Added :KEY argument to REDUCE.
227    
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.
240    
241    
242     COMPILER
243    
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.
254     -- Changed SYMBOL-MACRO-LET to SYMBOL-MACROLET.
255    
256     X3J13 cleanups:
257     -- Make all non-symbol atoms self-evaluate.
258    
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."
266    
267    
268     HEMLOCK
269    
270     This is version 3.5.
271    
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.
276    
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.
287    
288     Enhancements:
289     -- Removed the definitions of the obsolete COMMAND-CHAR-BITS-LIMIT and
290     COMMAND-CHAR-CODE-LIMIT.
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 ..."
308    
309     New commands:
310    
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.
317    
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
329    
330     "Manual Page"
331     Runs man(1) in a scratch buffer and displays it in the current window.
332    
333     "Typescript Slave Status" Typescript: H-s
334     Interrupt the slave and cause it to print status information.
335    
336    
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.
351    
352    
353 ram 1.1 Release notes for CMU Common Lisp 14c, 6 June 91
354    
355     ** The FASL file format has changed, so all files must be recompiled. **
356    
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.
361    
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.)
365    
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.
373    
374    
375     New packages:
376    
377     The X based graphical inspector is now available. It now uses standard
378     fonts (courier) and has a bigger help window.
379    
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
385    
386    
387     Code:
388    
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.
392    
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.
396    
397     Tuning:
398     Some tuning in SYSTEM:SERVE-EVENT which reduces consing and speeds up
399     Hemlock and terminal I/O.
400    
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.
404    
405     Tuned bignum code and added declarations to reduce number consing.
406    
407    
408     DEFSTRUCT:
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.
412    
413     Merged bug fixes from old RT system:
414     STANDARD-CHAR-P no longer returns T for #\return.
415    
416     Fixed a bug in format regarding ~@*.
417    
418     Fixed the read-eval-print loop to frob +, ++, +++ correctly.
419    
420     Fixed a bug in Y-OR-N-P. It was calling WHITESPACEP on a symbol.
421    
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
425    
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.
429    
430     Fixed DEFPACKAGE to deal more correctly with finding symbols that must
431     exist.
432    
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.
436    
437     Also, in SHADOW, when symbols is NIL, shadow no symbols, not NIL.
438    
439     Fixed a bug in RENAME-PACKAGE that happened when the new name was one of
440     the old nicknames.
441    
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.
446    
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.
452    
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.
459    
460     TRACE:
461     Use FORCE-OUTPUT instead of FINISH-OUTPUT to prevent gratuitous slowdowns
462     when running in a slave.
463    
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.
467    
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.)
477    
478     When the loader prints comments about loading progress, the number of
479     leading semicolons is now the depth of recursive loading.
480    
481     Added a CONTINUE restart in LOAD that returns NIL.
482    
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.
487    
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.
491    
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.
494    
495     Removed the icache flushing stuff from GC, because it was unneeded (and
496     sometimes printed annoying messages that it didn't work).
497    
498     X3J13 cleanups:
499     The non-destructive string functions now accept characters as well as
500     strings and symbols.
501    
502     MACROEXPAND now expands symbol macros.
503    
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.
508    
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]
511    
512     Fixed the LOOP THEREIS keyword. Changed a null test in LOOP into an endp
513     test.
514    
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.)
519    
520     Fixed typep of (satisfies (lambda (obj) ...)) to coerce the form into a
521     function so that "object not function" errors don't result.
522    
523     Fixed DOCUMENTATION to return only one value.
524    
525     Enhancements:
526     ROOM is now much more verbose, displaying a breakdown of memory usage by
527     object type.
528    
529     Changed the printer to print the name of code objects and the value of
530     value cells.
531    
532    
533     CLX:
534    
535     Modified EXT:OPEN-CLX-DISPLAY to set XLIB:DISPLAY-DEFAULT-SCREEN to the
536     screen specified by the user before returning the display.
537    
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.)
540    
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.)
547    
548    
549     Compiler:
550    
551     Bug fixes:
552     Fixed incorrect argument type information for some standard Common Lisp
553     functions.
554    
555     Fixed PROCLAIM to work correctly when the argument isn't a constant.
556    
557     Fixed the DEBUG optimize quality to be called DEBUG instead of DEBUG-INFO.
558    
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.
563    
564     Fixed a number of bugs in the handling of closures over top-level
565     variables.
566    
567     Fixed a problem with semi-inline functions.
568    
569     The compiler note count is no longer incremented when notes are suppressed
570     by INHIBIT-WARNINGS 3.
571    
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.
575    
576     Also, now if a function is defined incompatibly with previous calls, the
577     warning will have proper source context.
578    
579     Fixed a bug in accessors for 1,2, and 4 bit arrays that was causing #* to
580     generate incorrect bit vectors.
581    
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.
587    
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.
591    
592     DECStation (PMAX) specific changes:
593    
594     Representation conversion of a SAP (system area pointer) to a pointer
595     representation now results in an efficiency note.
596    
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.
599    
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.
603    
604     Fixed TRUNCATE on floats to truncate instead of rounding.
605    
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.
610    
611     Enhancements:
612     Made forms within a LOCALLY be recognized as "top-level" so that subforms
613     can be compiled separately.
614    
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.
619    
620     Added support for the EXT:CONSTANT-FUNCTION declaration (already in the
621     documentation.)
622    
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.
627    
628     (<mumble>-P x) structure predicates are now just as efficient as
629     (TYPEP x '<mumble>).
630    
631     Added type inference methods for sequence functions, and various functions
632     that return an argument as their result value.
633    
634     A number of improvements to register allocation.
635    
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))
642    
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.
645    
646     Disabled the compiler's internal consistency checking by default. These
647     phases are only useful for locating compiler bugs.
648    
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.
654    
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.)
659    
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.
666    
667     COMPILE-FILE now has :ENTRY-POINTS and :BLOCK-COMPILE keywords.
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.
675    
676     See also the COMPILE-FILE doc string.
677    
678    
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.
687    
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.
691    
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.
696    
697    
698     Hemlock:
699    
700     Tuning:
701     Changed typescript streams to cache the line length. This greatly speeds
702     up slave output.
703    
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.
709    
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.
718    
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.
723    
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.)
728    
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.
733    
734     Fixed REDISPLAY-WINDOWS-FROM-MARK so that process output won't cause
735     redisplay when we aren't in Hemlock.
736    
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.
740    
741     Fixed a bug in completion mode (didn't previously work in the new-compiler
742     system.)
743    
744     Enhancements:
745     There is a new command "Set Buffer Writable", and the obsolete
746     command "Connect to Registered Eval Server" has been removed.
747    
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.
751    
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.
754    
755    
756     SYSTEM, EXTENSIONS:
757    
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.
761    
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.
764    
765     Fixed DI:FUNCTION-DEBUG-FUNCTION (though it still returns the XEP.)
766     Some fixes to DI: condition report methods
767    
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.
770    
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.
773    
774     Added :TIMEOUT argument to SYSTEM:MAKE-FD-STREAM. The SYSTEM:IO-TIMEOUT
775     condition is signalled if a timeout is specified and exceeded.
776    
777     ----------

  ViewVC Help
Powered by ViewVC 1.1.5