From 632ed1c3a222dc17792a574f42e0fca036b40096 Mon Sep 17 00:00:00 2001 From: ram <ram> Date: Thu, 6 Aug 1992 00:14:05 +0000 Subject: [PATCH] Add 16e notes. --- general-info/beta-release-notes.txt | 182 ++++++++++++++++++++++++++++ 1 file changed, 182 insertions(+) diff --git a/general-info/beta-release-notes.txt b/general-info/beta-release-notes.txt index 091035cae..b56ae2c99 100644 --- a/general-info/beta-release-notes.txt +++ b/general-info/beta-release-notes.txt @@ -1,3 +1,185 @@ + Release notes for CMU Common Lisp 16e, 5 August 92 + +16e is primarily a bug-fix release. The main changes from 16d are: + -- CLOS support is from March 92 PCL (2a). This is a new version of PCL + developed by Richard Harris which incorporates many bug-fixes and ANSI + compliance cleanups. He has also back-merged the CMU changes into his + sources so that we can release future PCLs without time-consuming merging. + -- TRACE has been reimplemented, has a new syntax and new features. + -- The hardcopy and info documentation has been updated. Note that it + describes some debugger capabilities (breakpoints) which won't appear + until version 17. + +The fasl file format is the same as for 16d, but some code may need to be +recompiled. In particular, the expansion of PPRINT-LOGICAL-BLOCK has changed. + + +March 92 PCL highlights: (see notes.text in the sources for details) + -- This version of PCL is much closer than previous versions of PCL to the + metaobject protocol specified in "The Art of the Metaobject Protocol", + chapters 5 and 6, by Gregor Kiczales, Jim des Riveres, and Daniel G. + Bobrow. + -- You can use structure-class as a metaclass to create new classes. + Classes created this way create and evaluate defstruct forms which + have generated symbols for the structure accessors and constructor. + -- Various optimization of instance variable access, both inside and outside + of methods. + -- More work (lookups and precompilation) is done at compile and load time, + rather than run-time. + + +New TRACE: + +Trace has been substantially rewritten, and has a new syntax as well as new +functionality: + -- Tracing of compiled functions is now implemented using breakpoints. + Breakpoints destructively modify the code object, causing all calls to the + function to be trapped, instead of only those calls that indirect through + the symbol. This makes TRACE more useful for debugging programs that use + data structures containing function values, since you can now trace + anonymous functions and macros. Also, the breakpoint stops the function + after the arguments have been parsed, so arguments can accessed by name in + the debugger or in TRACE options. + -- Depending on the ENCAPSULATE option and DEBUG:*TRACE-ENCAPSULATE-DEFAULT*, + encapsulation may be used instead. This is the default for closures, + generic functions and interpreted functions. + -- TRACE options are no longer set off by extra parens, and you can specify + global trace options which affect all functions traced by a particular + call to TRACE. + -- Conditional breakpoints now work much better than before. + -- *DEBUG-PRINT-LEVEL*, -LENGTH* are used instead of a separate + *TRACE-PRINT-LEVEL*, etc. + +Here is the documentation string (see also the hardcopy/info documentation): + TRACE {Option Global-Value}* {Name {Option Value}*}* + TRACE is a debugging tool that prints information when specified functions + are called. In its simplest form: + (trace Name-1 Name-2 ...) + + TRACE causes a printout on *TRACE-OUTPUT* each time that one of the named + functions is entered or returns (the Names are not evaluated.) The output + is indented according to the number of pending traced calls, and this trace + depth is printed at the beginning of each line of output. + + Options allow modification of the default behavior. Each option is a pair + of an option keyword and a value form. Options may be interspersed with + function names. Options only affect tracing of the function whose name they + appear immediately after. Global options are specified before the first + name, and affect all functions traced by a given use of TRACE. + + The following options are defined: + + :CONDITION Form + :CONDITION-AFTER Form + :CONDITION-ALL Form + If :CONDITION is specified, then TRACE does nothing unless Form + evaluates to true at the time of the call. :CONDITION-AFTER is + similar, but suppresses the initial printout, and is tested when the + function returns. :CONDITION-ALL tries both before and after. + + :WHEREIN Names + If specified, Names is a function name or list of names. TRACE does + nothing unless a call to one of those functions encloses the call to + this function (i.e. it would appear in a backtrace.) Anonymous + functions have string names like "DEFUN FOO". + + :BREAK Form + :BREAK-AFTER Form + :BREAK-ALL Form + If specified, and Form evaluates to true, then the debugger is invoked + at the start of the function, at the end of the function, or both, + according to the respective option. + + :PRINT Form + :PRINT-AFTER Form + :PRINT-ALL Form + In addition to the usual prinout, he result of evaluating Form is + printed at the start of the function, at the end of the function, or + both, according to the respective option. Multiple print options cause + multiple values to be printed. + + :FUNCTION Function-Form + This is a not really an option, but rather another way of specifying + what function to trace. The Function-Form is evaluated immediately, + and the resulting function is traced. + + :ENCAPSULATE {:DEFAULT | T | NIL} + If T, the tracing is done via encapsulation (redefining the function + name) rather than by modifying the function. :DEFAULT is the default, + and means to use encapsulation for interpreted functions and funcallable + instances, breakpoints otherwise. When encapsulation is used, forms are + *not* evaluated in the function's lexical environment, but DEBUG:ARG can + still be used. + + :CONDITION, :BREAK and :PRINT forms are evaluated in the lexical environment + of the called function; DEBUG:VAR and DEBUG:ARG can be used. The -AFTER and + -ALL forms are evaluated in the null environment. + + +Assorted bug fixes and enhancements: + +System code: + -- Changed default base file name for LOAD-FOREIGN to be argv[0] rather than + being hard-wired to "lisp". + -- Fixed a bad declaration which caused garbage collection to fail if more + than MOST-POSITIVE-FIXNUM bytes had been consed since process creation. + -- Changed GET-INTERNAL-RUN-TIME to use UNIX-FAST-GETRUSAGE to avoid + number-consing and generic arithmetic. Also, rearranged the computation + so that the time is correctly computed for up to 457 days, instead of only + 71 minutes. + -- Merged Miles' fix to MAKE-PATHNAME so that it knows the difference between + an arg being NIL and being unsupplied. + -- Some partial fixes to circular printing (the #1=#1# bug). + PPRINT-LOGICAL-BLOCK no longer checks the list argument for CAR + circularity, now that OUTPUT-OBJECT does it for us. + -- Fixed reader dispatch macro characters to be case-insensitive, and to + disallow digits as sub-characters. + -- Changed #A reader to allow arbitrary sequences instead of just lists. + -- RUN-PROGRAM now gives a proper error message when "fork" fails (i.e. too + -- SYSTEM:SERVE-EVENT (and XLIB:EVENT-CASE, etc.) now correctly handle + non-integer timeouts. Added declarations to improve the efficiency of + event handling. + -- Fixed some bugs in UNIX-SELECT which could cause Lisp to hang when more + than 32 files were open. Also, improved efficiency in this case. + -- Merged Olssons fix to WITH-ENABLED-INTERRUPTS to not try to change + interrupt characters anymore. + -- A number of bug-fixes for breakpoint support in compiled code (but there + are still problems with arbitrary breakpoints.) + -- Fixed DI:FRAME-CATCHES + +CLX: + -- Fixed the implementation-dependent pixarray copying routines (for + GET-IMAGE, etc.) so that they don't occasionally trash memory, and are + actually faster. + -- Fixed the definition of the ANGLE type (used by DRAW-ARC, etc.) to work + regardless of the kind of real number (single or double float, rational, + etc.) + -- Fixed several places in image operations where values that could really + be negative were declared to be non-negative. + +Compiler: + -- Fixed a bug which caused an internal error whenever a call to random + was compiled and the argument type wasn't known to be either a float or + an integer. + -- Fixed a bug which caused an internal compiler error when a value that + wasn't used had an unproven type assertion. + -- Fixed some more dead-code deletion bugs. + -- Fixed a problem with the new "assignment" optimization of local function + call where the compiler could get assertion failures such as tail-sets not + being equal. + -- Fixed a few places where reoptimization wasn't being triggered when it + should have been. + -- You can now have a TAGBODY with more than one tag that is non-locally + exited to. Evidently this never worked... + -- Some changes in debug-info format related to breakpoint support. + +Misc: + -- Fixed some Hemlock Dired commands to know that PATHNAME-DIRECTORY is + now a list, not a vector. + -- Fixed the bin/sample-wrapper script to use "$@" instead of $* so that + arguments are properly passed through. + + Release notes for CMU Common Lisp 16d, 30 May 92 16d is our first version 16 general release, and incorporates many changes not -- GitLab