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

  ViewVC Help
Powered by ViewVC 1.1.5