into everyone's system when I do a "cvs update".) When no
customize-target-features.lisp file exists, the target *FEATURES* list
should be constructed the same way as before.
-* fixed bug 1 (error handling before read-eval-print loop starts), and
- redid debugger restarts and related debugger commands somewhat while
- doing so:
- ** The QUIT debugger command is gone, since it did something
- rather different than the SB-EXT:QUIT command, and since it never
- worked properly outside the main toplevel read/eval/print loop.
- Invoking the new TOPLEVEL restart provides the same functionality.
- ** The GO debugger command is also gone, since you can just invoke
- the CONTINUE restart directly instead.
- ** The TOP debugger command is also gone, since it's redundant with the
- FRAME 0 command, and since it interfered with abbreviations for the
- TOPLEVEL restart.
* fixed bugs in DEFCONSTANT ANSI-compatibility:
** DEFCONSTANT now tests reassignments using EQL, not EQUAL, in order to
warn about behavior which is undefined under the ANSI spec. Note: This
non-toplevel DEFCONSTANTs are uncommon.)
* The core file version number and fasl file version number have been
incremented, because the old noncompliant DEFCONSTANT behavior involved
- calling functions which no longer exist.
-* removed bug 21 from BUGS, since Martin Atzmueller points out that
- it doesn't seem to affect SBCL after all
+ calling functions which no longer exist, and because I also took the
+ opportunity to chop an unsupported slot out of the DEBUG-SOURCE structure.
+* fixed bug 1 (error handling before read-eval-print loop starts), and
+ redid debugger restarts and related debugger commands somewhat while
+ doing so:
+ ** The QUIT debugger command is gone, since it did something
+ rather different than the SB-EXT:QUIT command, and since it never
+ worked properly outside the main toplevel read/eval/print loop.
+ Invoking the new TOPLEVEL restart provides the same functionality.
+ ** The GO debugger command is also gone, since you can just invoke
+ the CONTINUE restart directly instead.
+ ** The TOP debugger command is also gone, since it's redundant with the
+ FRAME 0 command, and since it interfered with abbreviations for the
+ TOPLEVEL restart.
* The system now recovers better from non-PACKAGE values of the *PACKAGE*
variable.
* The system now understands compound CONS types (e.g. (CONS FIXNUM T))
as required by ANSI. (thanks to Douglas Crosher's CMU CL patches, with
some porting work by Martin Atzmueller)
+* Martin Atzmueller reviewed the CMU CL mailing lists and came back
+ with a boatload of patches which he ported to SBCL. Now that those
+ have been applied,
+ ** The system tries to make sure that its low-priority messages
+ are prefixed by semicolons, to help people who like to use
+ syntax highlighting in their ILISP buffer. (This patch
+ was originally due to Raymond Toy.)
+ ** The system now optimizes INTEGER-LENGTH better, thanks to more
+ patches originally written by Raymond Toy.
+ ** The compiler understands coercion between single-value and
+ multiple-VALUES type expressions better, getting rid of some very
+ weird behavior, thanks to patches originally by Robert MacLachlan
+ and Douglas Crosher.
+ ** The system understands ANSI-style non-KEYWORD &KEY arguments in
+ lambda lists, thanks to a patch originally by Pierre Mai.
+ ** The system no longer bogusly warns about "abbreviated type
+ declarations".
+ ** The compiler gets less confused by inlining and RETURN-FROM,
+ thanks to some patches originally by Tim Moore.
+ ** The system no longer hangs when dumping circular lists to fasl
+ files, thanks to a patch originally from Douglas Crosher.
+* Martin Atzmueller also fixed ROOM, so that it no longer fails with an
+ undefined function error.
+* gave up on fixing bug 3 (forbidden-by-ANSI warning for type mismatch
+ in structure slot initforms) for now, documented workaround instead:-|
+* fixed bug 4 (no WARNING for DECLAIM FTYPE of slot accessor function)
+* fixed bug 5: added stubs for various Gray stream functions called
+ in the not-a-CL:STREAM case, so that even when Gray streams aren't
+ installed, at least appropriate type errors are generated
+* fixed bug 8: better reporting of various PROGRAM-ERRORs
+* fixed bug 9: IGNORE and IGNORABLE now work reasonably and more
+ consistently in DEFMETHOD forms.
+* removed bug 21 from BUGS, since Martin Atzmueller points out that
+ it doesn't seem to affect SBCL after all
+* The C runtime system now builds with better optimization and many
+ fewer warnings, thanks to lots of cleanups by Martin Atzmueller.
+
+changes in sbcl-0.6.10 relative to sbcl-0.6.9:
+
+* A patch from Martin Atzmueller seems to have solved the SIGINT
+ problem, and as far as we know, signal-handling now works cleanly.
+ (If you find any new bugs, please report them!)
+* The system no longer defaults Lisp source file names to types
+ ".l", ".cl", or ".lsp", but only to ".lisp".
+* The compiler no longer uses special default file extensions for
+ byte-compiled code. (The ANSI definition of COMPILE-FILE-PATHNAME
+ seems to expect a single default extension for all compiled code,
+ and there's no compelling reason to try to stretch the standard
+ to allow two different extensions.) Instead, byte-compiled files
+ default to the same extension as native-compiled files.
+* Fasl file format version numbers have increased again, because
+ a rearrangement of internal implementation packages made some
+ dumped symbols in old fasl files unreadable in new cores.
+* DECLARE/DECLAIM/PROCLAIM logic is more nearly ANSI in general, with
+ many fewer weird special cases.
+* Bug #17 (differing COMPILE-FILE behavior between logical and
+ physical pathnames) has been fixed, and some related misbehavior too,
+ thanks to a patch from Martin Atzmueller.
+* Bug #30 (reader problems) is gone, thanks to a CMU CL patch
+ by Tim Moore, ported to SBCL by Martin Atzmueller.
+* Martin Atzmueller fixed several filesystem-related problems,
+ including bug #36, in part by porting CMU CL patches, which were
+ written in part by Paul Werkowski.
+* More compiler warnings in src/runtime/ are gone, thanks to
+ more patches from Martin Atzmueller.
+* Martin Atzmueller pointed out that bug 37 was fixed by his patches
+ some time ago.
+
+changes in sbcl-0.6.11 relative to sbcl-0.6.10:
+* Martin Atzmueller pointed out that bugs #9 and #25 are gone in
+ current SBCL.
+* bug 34 fixed by Martin Atzmueller: dumping/loading instances works
+ better
+* fixed bug 40: TYPEP, SUBTYPEP, UPGRADED-ARRAY-ELEMENT-TYPE,
+ and UPGRADED-COMPLEX-PART-TYPE now work better with of compound
+ types built from undefined types, e.g. '(VECTOR SOME-UNDEF-TYPE).
+* DESCRIBE now works on structure objects again.
+* Most function call argument type mismatches are now handled as
+ STYLE-WARNINGs instead of full WARNINGs, since the compiler doesn't
+ know whether the function will be redefined before the call is
+ executed. (The compiler could flag local calls with full WARNINGs,
+ as per the ANSI spec "3.2.2.3 Semantic Constraints", but right now
+ it doesn't keep track of enough information to know whether calls
+ are local in this sense.)
+* Compiler output is now more verbose, with messages truncated
+ later than before. (There should be some supported way for users
+ to override the default verbosity, but I haven't decided how to
+ provide it yet, so this behavior is still controlled by the internal
+ SB-C::*COMPILER-ERROR-PRINT-FOO* variables in
+ src/compiler/ir1util.lisp.)
+* Fasl file format version numbers have increased again, because
+ support for the Gray streams extension changes the layout of the
+ system's STREAM objects.
+* The Gray subclassable streams extension now works, thanks to a
+ patch from Martin Atzmueller.
+* The full LOAD-FOREIGN extension (not just the primitive
+ LOAD-FOREIGN-1) now works, thanks to a patch from Martin Atzmueller.
+* The default behavior of RUN-PROGRAM has changed. Now, unlike CMU CL
+ but like most other programs, it defaults to copying the Unix
+ environment from the original process instead of starting the
+ new process in an empty environment.
+* Extensions which manipulate the Unix environment now support
+ an :ENVIRONMENT keyword option which doesn't smash case or
+ do other bad things. The CMU-CL-style :ENV option is retained
+ for porting convenience.
+* LOAD-FOREIGN (and LOAD-1-FOREIGN) now support logical pathnames,
+ as per Daniel Barlow's suggestion and Martin Atzmueller's patch
+
+changes in sbcl-0.6.12 relative to sbcl-0.6.11:
+* incompatible change: The old SB-EXT:OPTIMIZE-INTERFACE declaration
+ is no longer recognized. I apologize for this, because it was
+ listed in SB-EXT as a supported extension, but I found that
+ its existing behavior was poorly specified, as well as incorrectly
+ specified, and it looked like too much of a mess to straighten it
+ out. I have enough on my hands trying to get ANSI stuff to work..
+* many patches ported from CMU CL by Martin Atzmueller, with
+ half a dozen bug fixes in pretty-printing and the debugger, and
+ half a dozen others elsewhere
+* fixed bug 13: Floating point infinities are now supported again.
+ They might still be a little bit flaky, but thanks to bug reports
+ from Nathan Froyd and CMU CL patches from Raymond Toy they're not
+ as flaky as they were.
+* The --noprogrammer command line option is now supported. (Its
+ behavior is slightly different in detail from what the old man
+ page claimed it would do, but it's still appropriate under the
+ same circumstances that the man page talks about.)
+* The :SB-PROPAGATE-FLOAT-TYPE and :SB-PROPAGATE-FUN-TYPE features
+ are now supported, and enabled by default. Thus, the compiler can
+ handle many floating point and complex operations much less
+ inefficiently. (Thus e.g. you can implement a complex FFT
+ without consing!)
+* The compiler now detects type mismatches between DECLAIM FTYPE
+ and DEFUN better, and implements CHECK-TYPE more correctly, and
+ SBCL builds under CMU CL again despite its non-ANSI EVAL-WHEN,
+ thanks to patches from Martin Atzmueller.
+* various fixes to make the cross-compiler more portable to
+ ANSI-conforming-but-different cross-compilation hosts (notably
+ Lispworks for Windows, following bug reports from Arthur Lemmens)
+* A bug in READ-SEQUENCE for CONCATENATED-STREAM, and a gross
+ ANSI noncompliance in DEFMACRO &KEY argument parsing, have been
+ fixed thanks to Pierre Mai's CMU CL patches.
+* fixes to keep the system from overflowing internal counters when
+ it tries to use i/o buffers larger than 16M bytes
+* fixed bug 45a: Various internal functions required to support
+ complex special functions have been merged from CMU CL sources.
+ (When I was first setting up SBCL, I misunderstood a compile-time
+ conditional #-OLD-SPECFUN, and so accidentally deleted them.)
+* improved support for type intersection and union, fixing bug 12
+ (e.g., now (SUBTYPEP 'KEYWORD 'SYMBOL)=>T,T) and some other
+ more obscure bugs as well
+* some steps toward byte-compiling non-performance-critical
+ parts of the system, courtesy of patches from Martin Atzmueller
+* Christophe Rhodes has made some debian packages of sbcl at
+ <http://www-jcsu.jesus.cam.ac.uk/ftp/pub/debian/lisp>.
+ From his sbcl-devel e-mail of 2001-04-08 they're not completely
+ stable, but are nonetheless usable. When he's ready, I'd be happy
+ to add them to the SourceForge "File Releases" section. (And if
+ anyone wants to do RPMs or *BSD packages, they'd be welcome too.)
+* new fasl file format version number (because of changes in
+ internal representation of (OR ..) types to accommodate the new
+ support for (AND ..) types, among other things)
+
+changes in sbcl-0.6.13 relative to sbcl-0.6.12:
+* a port to the Compaq/DEC Alpha CPU, thanks to Dan Barlow
+* Martin Atzmueller ported Tim Moore's marvellous CMU CL DISASSEMBLE
+ patch, so that DISASSEMBLE output is much nicer.
+* The code in the SB-PROFILE package now seems reasonably stable.
+ I still haven't decided what the final interface should look like
+ (I'd like PROFILE to interact cleanly with TRACE, since both
+ facilities use function encapsulation) but if you have a need
+ for profiling now, you can probably use it successfully with
+ the current CMU-CL-style interface.
+* Pathnames and *DEFAULT-DIRECTORY-DEFAULTS* are much more
+ ANSI-compliant, thanks to various fixes and tests from Dan Barlow.
+ Also, at Dan Barlow's suggestion, TRUENAME on a dangling symbolic
+ link now returns the dangling link itself, and for similar
+ reasons, TRUENAME on a cyclic symbolic link returns the cyclic
+ link itself. (In these cases the old code signalled an error and
+ looped endlessly, respectively.) Thus, DIRECTORY now works even
+ in the presence of dangling and cyclic symbolic links.
+* Compiler trace output (the :TRACE-FILE option to COMPILE-FILE)
+ is now a supported extension again, since the consensus on
+ sbcl-devel was that it can be useful for ordinary development
+ work, not just for debugging SBCL itself.
+* The default for SB-EXT:*DERIVE-FUNCTION-TYPES* has changed to
+ NIL, i.e. ANSI behavior, i.e. the compiler now recognizes
+ that currently-defined functions might be redefined later with
+ different return types.
+* Hash tables can be printed readably, as inspired by CMU CL code
+ of Eric Marsden and SBCL code of Martin Atzmueller.
+* better error handling in CLOS method combination, thanks to
+ Martin Atzmueller porting Pierre Mai's CMU CL patches
+* more overflow fixes for >16Mbyte I/O buffers
+* A bug in READ has been fixed, so that now a single Ctrl-D
+ character suffices to cause end-of-file on character streams.
+ In particular, now you only need one Ctrl-D at the command
+ line (not two) to exit SBCL.
+* fixed bug 26: ARRAY-DISPLACEMENT now returns (VALUES NIL 0) for
+ undisplaced arrays.
+* fixed bug 107 (reported as a CMU CL bug by Erik Naggum on
+ comp.lang.lisp 2001-06-11): (WRITE #*101 :RADIX T :BASE 36) now
+ does the right thing.
+* The implementation of some type tests, especially for CONDITION
+ types, is now tidier and maybe faster, due to CMU CL code
+ originally by Douglas Crosher, ported by Martin Atzmueller.
+* Some math functions have been fixed, and there are new
+ optimizers for deriving the types of COERCE and ARRAY-ELEMENT-TYPE,
+ thanks to Raymond Toy's work on CMU CL, ported by Martin Atzmueller.
+* (There are also some new optimizers in contrib/*-extras.lisp. Those
+ aren't built into sbcl-0.6.13, but are a sneak preview of what's
+ likely to be built into sbcl-0.7.0.)
+* A bug in COPY-READTABLE was fixed. (Joao Cachopo's patch to CMU
+ CL, ported to SBCL by Martin Atzmueller)
+* DESCRIBE now gives more information in some cases. (Pierre Mai's
+ patch to CMU CL, ported to SBCL by Martin Atzmueller)
+* Martin Atzmueller and Bill Newman fixed some bugs in INSPECT.
+* There's a new slam.sh hack to shorten the edit/compile/debug
+ cycle for low-level changes to SBCL itself, and a new
+ :SB-AFTER-XC-CORE target feature to control the generation of
+ the after-xc.core file needed by slam.sh.
+* minor incompatible change: The ENTRY-POINTS &KEY argument to
+ COMPILE-FILE is no longer supported, so that now every function
+ gets an entry point, so that block compilation looks a little
+ more like the plain vanilla ANSI section 3.2.2.3 scheme.
+* minor incompatible change: SB-EXT:GET-BYTES-CONSED now
+ returns the number of bytes consed since the system started,
+ rather than the number consed since the first time the function
+ was called. (The new definition parallels ANSI functions like
+ CL:GET-INTERNAL-RUN-TIME.)
+* minor incompatible change: The old CMU-CL-style DIRECTORY options,
+ i.e. :ALL, :FOLLOW-LINKS, and :CHECK-FOR-SUBDIRS, are no longer
+ supported. Now DIRECTORY always does the abstract Common-Lisp-y
+ thing, i.e. :ALL T :FOLLOW-LINKS T :CHECK-FOR-SUBDIRS T.
+* Fasl file version numbers are now independent of the target CPU,
+ since historically most system changes which required version
+ number changes have affected all CPUs equally. Similarly,
+ the byte fasl file version is now equal to the ordinary
+ fasl file version.
+
+changes in sbcl-0.7.0 relative to sbcl-0.6.13:
+* incompatible change: The default fasl file extension has changed
+ to ".fasl", for all architectures. (No longer ".x86f" and ".axpf".)
+* The EVAL-WHEN code has been rewritten to be ANSI-compliant, and
+ various related bugs (IR1-1, IR1-2, IR1-3, IR1-3a) have gone away.
+ Since the code is newer, there might still be some new bugs
+ (though not as many as before Martin Atzmueller's fixes:-). But
+ hopefully any remaining bugs will be simpler, less fundamental,
+ and more fixable then the bugs in the old IR1 interpreter code.
+* The IR1 interpreter, byte compiler, and byte interpreter are gone.
+ It's long been my plan to remove the IR1 interpreter while making
+ EVAL-WHEN ANSI-compliant. It turned out that a cascade of changes
+ caused by EVAL-WHEN ANSIness would have required fairly simple
+ changes to the byte compiler; except they turned out to be quite
+ difficult. This, plus the new familiarity with the byte compiler
+ in general that I picked up as I worked on this specific problem,
+ reduced my opinion of its maintainability enough that I deleted it
+ instead of trying to fix it.
+* The compiler, especially the IR1 phase of the compiler, has been
+ tweaked somewhat to support the new implementation of DEFUN and
+ of the static linking hack used for cold init. In particular,
+ the property of "is externally visible" is now orthogonal to
+ the property of "is optimized/specialized for being called
+ at LOAD time, with no arguments and no argument checking".
+ The old FUNCTIONAL-KIND=:TOP-LEVEL type code which
+ conflated these two properties has been replaced with the
+ FUNCTIONAL-HAS-EXTERNAL-REFERENCES-P flag. This has minor
+ beneficial consequences for the logic of #'CL:COMPILE and other
+ things. Like the rewrite of EVAL, it has also quite possibly
+ introduced some new bugs, but since the new logic is simpler and
+ more orthogonal, hopefully it will be easier to clean up bugs
+ in the new code than it was in the old code.
+* The rewritten compiler is still a little unsteady on its feet.
+ In particular, the debugging information it produces is sometimes
+ broken, and the support for inlining FOO when you
+ (DECLAIM (INLINE FOO)) then do (DEFUN FOO ..) in a non-null
+ lexical environment has been temporarily weakened (because the
+ old clever code depended on correct debugging information).
+* There are new compiler optimizations for various functions: FIND,
+ POSITION, FIND-IF, POSITION-IF, FILL, COERCE, TRUNCATE, FLOOR, and
+ CEILING. Mostly these should be transparent, but there's one
+ potentially-annoying problem (bug 117): when the compiler inline
+ expands the FIND/POSITION family of functions and does type
+ analysis on the result, it can find control paths which have
+ type mismatches, and when it can't prove that they're not taken,
+ it will issue WARNINGs about the type mismatches. It's not clear
+ how to make the compiler smart enough to fix this in general, but
+ a workaround is given in the entry for 117 in the BUGS file.
+* (Because of the interaction between the two previous items --
+ occasional inlining problems and new inline expansions -- the
+ new FIND, POSITION, FIND-IF, and POSITION-IF code won't really
+ kick in properly until debugging information is straightened out
+ in some future version.)
+* DEFSTRUCT and DEFCLASS have been substantially updated to take
+ advantage of the new EVAL-WHEN stuff and to clean them up in
+ general, and they are now more ANSI-compliant in a number of
+ ways. Martin Atzmueller is responsible for a lot of this.
+?? Inlining can now be controlled the ANSI way, without
+ MAYBE-INLINE, since the idiom
+ (DECLAIM (INLINE FOO))
+ (DEFUN FOO (..) ..)
+ (DECLAIM (NOTINLINE FOO))
+ (DEFUN BAR (..) (FOO ..))
+ (DEFUN BLETCH (..) (DECLARE (INLINE FOO)) (FOO ..))
+ now does what ANSI says it should. The CMU-CL-style
+ SB-EXT:MAYBE-INLINE declaration is now deprecated and ignored.
+* A bug in LOOP operations on hash tables has been fixed, thanks
+ to a bug report and patch from Alexey Dejneka.
+* PPRINT-LOGICAL-BLOCK now copies the *PRINT-LINES* value on entry
+ and uses that copy, rather than the current dynamic value, when
+ it's trying to decide whether to truncate output . Thus e.g.
+ (let ((*print-lines* 50))
+ (pprint-logical-block (stream nil)
+ (dotimes (i 10)
+ (let ((*print-lines* 8))
+ (print (aref possiblybigthings i) stream)))))
+ should truncate the logical block only at 50 lines, instead of
+ often truncating it at 8 lines.
+* Martin Atzmueller fixed several other bugs:
+ ** correct ERROR type for various file operations
+ ** removing dead code
+* Alexey Dejneka fixed many bugs:
+ ** misbehavior of WRITE-STRING/WRITE-LINE
+ ** LOOP over keys of a hash table, LOOP bugs 49b and 81 and 103, and
+ several other LOOP problems as well
+ ** DIRECTORY when similar filenames are present
+ ** DEFGENERIC with :METHOD options
+ ** bug 126, in (MAKE-STRING N :INITIAL-ELEMENT #\SPACE))
+ ** bug in the optimization of ARRAY-ELEMENT-TYPE
+ He also pointed out some bogus old entries in BUGS, and fixed
+ a number of bugs which came into existence in the pre7 branch
+ (internal to the CVS repository), so that they never showed
+ up in release versions.
+?? Old operator names in the style DEF-FOO are now deprecated in favor
+ of new corresponding names DEFINE-FOO, for consistency with the
+ naming convention used in the ANSI standard). This mostly affects
+ internal symbols, but a few external symbols like
+ SB-ALIEN:DEF-ALIEN-FUNCTION are also affected.
+* :SB-CONSTRAIN-FLOAT-TYPE, :SB-PROPAGATE-FLOAT-TYPE, and
+ :SB-PROPAGATE-FUN-TYPE are no longer considered to be optional
+ features. Instead, the code that they used to control is always
+ built into the system.
+?? The value of INTERNAL-TIME-UNITS-PER-SECOND has been increased
+ from 100 to 1000.
+* The default value of *BYTES-CONSED-BETWEEN-GCS* has been
+ doubled, to 4 million. (If your application spends a lot of time
+ GCing and you have a lot of RAM, you might want to experiment with
+ increasing it even more.)
+* minor incompatible change: DEFINE-ALIEN-FUNCTION (also known by
+ the old deprecated name DEF-ALIEN-FUNCTION) now does DECLAIM FTYPE
+ for the defined function, since declaiming return types involving
+ aliens is (1) annoyingly messy to do by hand and (2) vital
+ to efficient compilation of code which calls such functions (and
+ since people writing calls-to-C code aren't likely to be bothered
+ by implicit assumptions of static typing).
+* The interpreter, EVAL, has been rewritten. Now it calls the
+ native compiler for the difficult cases, where it used to call
+ the old specialized IR1 interpreter code.
+* The doc/cmucl/ directory, containing old CMU CL documentation
+ from the time of the fork, is no longer part of the base system.
+ SourceForge has shut down its anonymous FTP service, and with it
+ my original plan for distributing the old CMU CL documentation
+ there. For now, if you need these files you can download an old
+ SBCL source release and extract them from it.
+* lots of other tidying up internally: renaming things so that names
+ are more systematic and consistent, converting C macros to inline
+ functions, systematizing indentation, making symbol packaging
+ more logical, and so forth
+* The fasl file version number changed again, for about a dozen
+ reasons, some of which are apparent above.
+
+planned incompatible changes in 0.7.x:
+* The debugger prompt sequence now goes "5]", "5[2]", "5[3]", etc.
+ as you get deeper into recursive calls to the debugger command loop,
+ instead of the old "5]", "5]]", "5]]]" sequence. (I was motivated
+ to do this when squabbles between ILISP and SBCL left me
+ very deeply nested in the debugger.)
+* The default output representation for unprintable ASCII characters
+ which, unlike e.g. #\Newline, don't have names defined in the
+ ANSI Common Lisp standard, may change to their ASCII symbolic
+ names: #\Nul, #\Soh, #\Stx, etc.
+* INTERNAL-TIME-UNITS-PER-SECOND might increase, e.g. to 1000.
+* FASL file extensions change to ".fasl", instead of the various
+ CPU-dependent values (".x86f", ".axpf", etc.) inherited from CMU CL.
+* MAYBE-INLINE will probably go away at some point, maybe 0.7.x,
+ maybe later, in favor of the ANSI-recommended idiom for making
+ a function optionally inline.
+* When the profiling interface settles down, maybe in 0.7.x, maybe
+ later, it might impact TRACE. They both encapsulate functions, and
+ it's not clear yet how e.g. UNPROFILE will interact with TRACE
+ and UNTRACE. (This shouldn't matter, though, unless you are
+ using profiling. If you never profile anything, TRACE should
+ continue to behave as before.)
+* The BYTE-COMPILE &KEY argument for COMPILE-FILE is deprecated,
+ since this behavior can be controlled by (DECLAIM (OPTIMIZE (SPEED 0))).
+ ("An ounce of orthogonality is worth a pound of features.")