X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=NEWS;h=92c8ae4a4e884416c50509d11170ef6f236a40ee;hb=475c832b081651e66ad9446d4852c62086f5e740;hp=294c656d97fd2de70d2ab669fb56fc7561f8fdcf;hpb=a30fb4f28fb891abc98eee8fdf99c2dbed2129de;p=sbcl.git diff --git a/NEWS b/NEWS index 294c656..92c8ae4 100644 --- a/NEWS +++ b/NEWS @@ -529,11 +529,158 @@ changes in sbcl-0.6.9 relative to sbcl-0.6.8: * The debugger now handles errors which arise when trying to print *DEBUG-CONDITION*, so that it's less likely to fall into infinite regress. -?? The debugger is now better at walking down through the control stack - frames generated by signal handlers. In particular, compiling and loading - (DEFUN FAIL (X) (THROW 'FAIL-TAG X)) - (FAIL 12) - then requesting a BACKTRACE at the debugger prompt now gives useful output. -?? signal handling reliability -?? fixed some bugs mentioned in the man page: - ?? DEFUN-vs.-DECLAIM +* The build system now uses an additional file, customize-target-features.lisp, + to allow local modifications to the target *FEATURES* list. (The point of + this is that now I can set up a custom configuration, e.g. with :SB-SHOW + debugging features enabled, without having to worry about propagating it + 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 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 + is specified by ANSI, but it's not very popular with programmers. + If it causes you problems, take a look at the new SB-INT:DEFCONSTANT-EQX + macro in the SBCL sources for an example of a workaround which you + might use to make portable ANSI-standard code which does what you want. + ** DEFCONSTANT's implementation is now based on EVAL-WHEN instead of on + pre-ANSI IR1 translation magic, so it does the ANSI-specified thing + when it's used as a non-toplevel form. (This is required in order + to implement the DEFCONSTANT-EQX macro.) + ** (DEFCONSTANT X 1) (DEFVAR X) (SETF X 2) no longer "works". + ** Unfortunately, non-toplevel DEFCONSTANT forms can still do some + funny things, due to bugs in the implementation of EVAL-WHEN + (bug #IR1-3). This probably won't be fixed until 0.7.x. (Fortunately, + 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, 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). +* The Gray subclassable streams extension now works, thanks to a + patch from Martin Atzmueller. +* DESCRIBE now works on structure objects again. +* 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.) +* 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 +* Fasl file format version numbers have increased again, because + support for the Gray streams extension changes the layout of the + system's STREAM objects. + +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 ILISP and SBCL got into arguments which left me + deeply nested in the debugger.) +* When the profiling interface settles down, 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.)