|
|
<!-- Name: Release17f -->
|
|
|
<!-- Version: 6 -->
|
|
|
<!-- Last-Modified: 2014/10/14 21:16:10 -->
|
|
|
<!-- Author: rtoy -->
|
|
|
Release notes for CMU Common Lisp 17f, ?? November 94
|
|
|
|
|
|
17f contains bug fixes, PCL enhancements, and support for three new platforms:
|
|
|
|
|
|
The HPPA/HPux and Sun/Sunos 4.x platforms are still available. Distributions
|
|
|
are now gzip'd, not compressed.
|
|
|
|
|
|
Other highlights: Motif, load-foreign on Hp/Ux, image size improvements, MIT
|
|
|
loop, some documentation of some previously undocumented features.
|
|
|
|
|
|
[Also see the README file for platform-specific notes.]
|
|
|
|
|
|
Bug fixes to basic CL support:
|
|
|
* Fixed ADJUST-ARRAY to not flame out on arrays containing a
|
|
|
zero-length dimension (hence having no elements whatsoever.)
|
|
|
* In SIGNAL, bind *break-on-signals* to NIL even before doing the
|
|
|
type test so that we don't wedge the error system if the type is
|
|
|
malformed or undefined.
|
|
|
* Fixed bugs with EOF handling in READ-LINE.
|
|
|
* In DEFINE-CONDITION, don't warn about probable error unless both initarg
|
|
|
and initform are missing.
|
|
|
* In OPEN, fixed :direction :io :if-does-not-exist :create to actually
|
|
|
create.
|
|
|
* Fix problem in LOAD-FOREIGN where (especially on SunOS), the failure to
|
|
|
page-align loaded code caused errors when load-foreign was done more than
|
|
|
once.
|
|
|
* In OUTPUT-INSTANCE, check for the layout being invalid before calling the
|
|
|
print function, since the print function might error.
|
|
|
* Closing composite streams (broadcast, etc.) no longer closes the component
|
|
|
streams.
|
|
|
* Fixed pprint goof that didn't actually break anything, but wasted effort.
|
|
|
* (COERCE x 'FLOAT) now convert to a single-float (instead of being an
|
|
|
error.) Also, we now check that numeric coercions actually return a value
|
|
|
of the specified type (which they might not if the type is not a symbol,
|
|
|
e.g. (coerce 0 '(complex float)). Possibly these should "do the right
|
|
|
thing", but it seems better to error than quietly do the wrong thing.
|
|
|
* Fixed a bug in FLOAT-BIGNUM-RATIO that could cause an assertion failure
|
|
|
when floating particular bignum ratios (or possibly reading particular
|
|
|
float values.)
|
|
|
|
|
|
Miscellaneous enhancements:
|
|
|
* LOOP is now the MIT/Symblics loop, so whatever it does is by definition
|
|
|
correct and The Right Thing.
|
|
|
* PURIFY is now exported as EXT:PURIFY. This function can greatly improve
|
|
|
the GC performance of many large programs by moving code and static data
|
|
|
into non-collected storage. This is a "poor man's generational GC".
|
|
|
Environment compaction now done by purify.
|
|
|
* Some reduction in the size of the image (and of GC scanned memory) from
|
|
|
tweaks to build process.
|
|
|
* Binary input can now be done from string streams (from David Axmark.)
|
|
|
* Debugger no longer aborts printing of a frame when printing one arg gets an
|
|
|
error (from Harris.)
|
|
|
* LOAD-FOREIGN support for HP/Ux (from TSM.)
|
|
|
* Add sap-ref-64 (only on Alpha).
|
|
|
* Changes to EVAL, ROOM and site-init to work better in a runtime core image
|
|
|
(without the compiler loaded.)
|
|
|
* *BEFORE-SAVE-INITIALIZATIONS* is now actually done before saving.
|
|
|
|
|
|
Compiler:
|
|
|
* Fixed some problems with multiple values and cleanup code in byte
|
|
|
compilation. Also added EXT:*COMPILE-PROGRESS* printout.
|
|
|
* Fixed some problems with internal errors when a function was just
|
|
|
declared to be FUNCTION.
|
|
|
* Now allows stream args to compile-file and doesn't attempt to constant-fold
|
|
|
pathname functions (which depend on *default-pathname-defaults*.)
|
|
|
* Fixed a case where dead local function in top-level code could cause an
|
|
|
internal error.
|
|
|
* Fix compiler-macro expansion to correctly handle macros that pass (by
|
|
|
returning the unmodified form.)
|
|
|
* Fix spelling of :COMPILE-TOPLEVEL and :LOAD-TOPLEVEL in EVAL-WHEN.
|
|
|
* If compile-file is :block-compile T, the entire file is block-compiled as a
|
|
|
unit (even if it contains embedded START-BLOCK/END-BLOCK declarations.)
|
|
|
* Virtually all of the compiler is now compiled without type checking, giving
|
|
|
some space and speed benefit.
|
|
|
|
|
|
CLX:
|
|
|
* Merged with CLX R5.02 (no substantive changes).
|
|
|
* In read-resources, trim off spaces, tabs, and "'s in #include file name
|
|
|
* If CLX is compiled when PCL is loaded (as is now done in the binary
|
|
|
distribution), DRAWABLE, WINDOW and PIXMAP will be defined as PCL classes
|
|
|
(which can be subclasses.) This is compatible with various CLX-based
|
|
|
toolkits.
|
|
|
* Fix some CONS declarations to be LIST because they aren't conses on the
|
|
|
last iteration (when the body isn't executed.)
|
|
|
* Fix incorrect slot type declaration for DISPLAY-AUTHORIZATION-DATA.
|
|
|
* Changed holding-lock not to turn off GC, which could cause event handlers
|
|
|
and other code to run for ling periods of time without garbage collecting.
|
|
|
Instead we bind all the GC hooks to (), since it was their invocation that
|
|
|
could cause bad recursive entry of CLX.
|
|
|
|
|
|
Hemlock:
|
|
|
* Fixed problem in Hemlock recursive error handler (hadn't been properly
|
|
|
updated for ANSI conditions.)
|
|
|
* Add ignore handler for client-message events.
|
|
|
* Deleted some setting of hi::*hack-hunk-replace-line* to T, since we may
|
|
|
want it explicitly disabled in the init file.
|
|
|
* Dylan mode now infix-oriented.
|
|
|
|
|
|
Motif interface:
|
|
|
* Fixed a bug in the generation of Interface.h which was preventing motifd
|
|
|
from being successfully compiled on HP/Ux, Solaris, ...
|
|
|
* use pcl::precompile-random-code-segments to minimize run-time compilations.
|
|
|
* Add INVOKE-TTY-DEBUGGER. Don't try to invoke motif debugger if we didn't
|
|
|
succeed in opening a connection.
|
|
|
* Print warning in status hook when server dies.
|
|
|
* Made server to fflush after all output so that we see motifd output
|
|
|
when it is run on a pipe.
|
|
|
* Fixed severely broken INSPECT-CLOS-PANE according to patch from Marco
|
|
|
Antoniotti.
|
|
|
* Fix from Marco Antoniotti to actually remove handlers from the table in
|
|
|
remove-event-handler.
|
|
|
* Fix to TOOLKIT-WRITE-VALUE to allow it to write either signed or unsigned
|
|
|
word integers.
|
|
|
* Improved error recovery and internal error reporting.
|
|
|
|
|
|
PCL:
|
|
|
* Structure-object is now no longer shadowed in PCL. Code that was using
|
|
|
PCL::STRUCTURE-OBJECT will now work better.
|
|
|
* BUILT-IN-CLASS, CLASS-NAME, CLASS-OF and FIND-CLASS are once again exported
|
|
|
from PCL. This will cause a name conflict if anyone use-package's PCL, but
|
|
|
this will at least warn about the distinction. Probably you shouldn't
|
|
|
USE-PACKAGE PCL for this reason, but you can now say PCL:FIND-CLASS instead
|
|
|
of PCL::FIND-CLASS. It is also possible to use SHADOW or SHADOWING-IMPORT
|
|
|
to resolve the conflict.
|
|
|
* Fix to update-instance-for-different-class.
|
|
|
* When updating arg-info slots, check to see if the value is already there.
|
|
|
This can reduce non-shared pages.
|
|
|
* Improved handling of invalid structure instances.
|
|
|
* Fix a problem with PCL clobbering byte functions when setting their names.
|
|
|
* New parameterized version of use-dispatch-dfun-p which avoids pessimizing
|
|
|
GFs with many methods.
|
|
|
* Fix to :after methods on accessor functions. Also, fixed some problems
|
|
|
with the result of get-secondary-dispatch-function1 when there are no
|
|
|
methods.
|
|
|
* Add compiler-macro for pcl:find-class which does lookup at load-time
|
|
|
when the name is a constant.
|
|
|
* Definitive tweak for handling function-p in
|
|
|
compute-secondary-dispatch-function1 which avoids an infinite recursion.
|
|
|
* When signalling an incompatible superclass error, added a hint to the
|
|
|
message to check out VALIDATE-SUPERCLASSES.
|
|
|
|
|
|
Lisp code:
|
|
|
* Fixed Sparc GC bug fix (L2 never scavenged.)
|
|
|
* On all non-Mach platforms, changed the default for CMUCLLIB to be
|
|
|
/usr/local/lib/cmucl/lib.
|
|
|
* On SunOS, added "dynamic segments" patch which prevents the "out of
|
|
|
segments" errors that could happen when a Lisp memory management table
|
|
|
overflowed.
|
|
|
|
|
|
Build tools:
|
|
|
* Fix compilation of motif interface to actually generate the C header files
|
|
|
Interface.h, etc.
|
|
|
* Some changes to reduce compiler warnings
|
|
|
* In compile-all, -clean and -noupdate have been flushed. -clean is now
|
|
|
done by the clean-build script.
|
|
|
* Add some scripts from David Axmark that automate the entire build process:
|
|
|
tools/variant-lisp
|
|
|
tools/build-and-install
|
|
|
|
|
|
|