From: William Harold Newman Date: Sun, 3 Dec 2000 15:12:00 +0000 (+0000) Subject: 0.6.9.1: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=c3887143fdc6da9b63d18ce5cde2a0c037ea3a24;p=sbcl.git 0.6.9.1: added FLUSH-STANDARD-OUTPUT-STREAMS in INVOKE-DEBUGGER applied Raymond Wiker's patch to share the stubs code from Linux (instead of using BSD-only stubs) --- diff --git a/BUGS b/BUGS index 4fc5e0f..9346a32 100644 --- a/BUGS +++ b/BUGS @@ -886,6 +886,26 @@ Error in function C::GET-LAMBDA-TO-COMPILE: Probably SBCL should stop accepting the "~:8D"-style format arguments, or at least issue a warning. +70: + The compiler doesn't like &OPTIONAL arguments in LABELS and FLET + forms. E.g. + (DEFUN FIND-BEFORE (ITEM SEQUENCE &KEY (TEST #'EQL)) + (LABELS ((FIND-ITEM (OBJ SEQ TEST &OPTIONAL (VAL NIL)) + (LET ((ITEM (FIRST SEQ))) + (COND ((NULL SEQ) + (VALUES NIL NIL)) + ((FUNCALL TEST OBJ ITEM) + (VALUES VAL SEQ)) + (T + (FIND-ITEM OBJ (REST SEQ) TEST (NCONC VAL `(,ITEM)))))))) + (FIND-ITEM ITEM SEQUENCE TEST))) + from David Young's bug report on cmucl-help@cons.org 30 Nov 2000 + causes sbcl-0.6.9 to fail with + error in function SB-KERNEL:ASSERT-ERROR: + The assertion (EQ (SB-C::LAMBDA-TAIL-SET SB-C::CALLER) + (SB-C::LAMBDA-TAIL-SET + (SB-C::LAMBDA-HOME SB-C::CALLEE))) failed. + KNOWN BUGS RELATED TO THE IR1 INTERPRETER diff --git a/doc/.cvsignore b/doc/.cvsignore new file mode 100644 index 0000000..cfbc1ef --- /dev/null +++ b/doc/.cvsignore @@ -0,0 +1 @@ +*.htm \ No newline at end of file diff --git a/src/code/debug.lisp b/src/code/debug.lisp index 7711c50..f238e3d 100644 --- a/src/code/debug.lisp +++ b/src/code/debug.lisp @@ -637,6 +637,12 @@ reset to ~S." (*print-pretty* t) (*package* original-package)) + ;; Before we start our own output, finish any pending output. + ;; Otherwise, if the user tried to track the progress of + ;; his program using PRINT statements, he'd tend to lose + ;; the last line of output or so, and get confused. + (flush-standard-output-streams) + ;; The initial output here goes to *ERROR-OUTPUT*, because the ;; initial output is not interactive, just an error message, ;; and when people redirect *ERROR-OUTPUT*, they could diff --git a/src/compiler/generic/genesis.lisp b/src/compiler/generic/genesis.lisp index 259c781..28eb128 100644 --- a/src/compiler/generic/genesis.lisp +++ b/src/compiler/generic/genesis.lisp @@ -6,13 +6,20 @@ ;;;; As explained by Rob MacLachlan on the CMU CL mailing list Wed, 06 ;;;; Jan 1999 11:05:02 -0500, this cold load generator more or less ;;;; fakes up static function linking. I.e. it makes sure that all the -;;;; functions in the fasl files it reads are bound to the +;;;; DEFUN-defined functions in the fasl files it reads are bound to the ;;;; corresponding symbols before execution starts. It doesn't do ;;;; anything to initialize variable values; instead it just arranges ;;;; for !COLD-INIT to be called at cold load time. !COLD-INIT is ;;;; responsible for explicitly initializing anything which has to be ;;;; initialized early before it transfers control to the ordinary ;;;; top-level forms. +;;;; +;;;; (In CMU CL, and in SBCL as of 0.6.9 anyway, functions not defined +;;;; by DEFUN aren't set up specially by GENESIS. In particular, +;;;; structure slot accessors are not set up. Slot accessors are +;;;; available at cold init time because they're usually compiled +;;;; inline. They're not available as out-of-line functions until the +;;;; toplevel forms installing them have run.) ;;;; This software is part of the SBCL system. See the README file for ;;;; more information. diff --git a/src/runtime/Config.x86-freebsd b/src/runtime/Config.x86-freebsd index 149a999..7bbbf4e 100644 --- a/src/runtime/Config.x86-freebsd +++ b/src/runtime/Config.x86-freebsd @@ -1,5 +1,14 @@ +# -*- makefile -*- include Config.x86-bsd +# It turns out that this file is also useable for FreeBSD, and is +# preferable to the stub code in bsd-os.c (#ifdef-protected by a test +# on the symbold DL_WORKAROUND). +# This may also be the case for OpenBSD. +# TODO: Rename linux-stub.S (to ldso-stubs.S, perhaps?) and remove the +# stub code from bsd-os.c. +ASSEM_SRC += linux-stubs.S + # Until sbcl-0.6.7.3, we used "OS_LINK_FLAGS=-static" here, which # worked fine for most things, but LOAD-FOREIGN & friends require # dlopen() etc., which in turn depend on dynamic linking of the diff --git a/src/runtime/bsd-os.c b/src/runtime/bsd-os.c index 0ab4fd2..514c980 100644 --- a/src/runtime/bsd-os.c +++ b/src/runtime/bsd-os.c @@ -242,8 +242,10 @@ os_install_interrupt_handlers(void) #endif /* !defined GENCGC */ /* - * stuff to help work with dynamically linked libraries - */ + * Stuff to help work with dynamically linked libraries. + * + * FIXME: Remove this, and use the stub code in linux-stub.S + * instead. */ /* feh! * @@ -254,7 +256,10 @@ os_install_interrupt_handlers(void) * * FIXME: This flag should be set in Config.bsd */ #if defined __FreeBSD__ -#define DL_WORKAROUND 1 +/* FreeBSD can (and should!) use lunix-stubs.S instead of the + * following code. That leaves exactly 0 uses of this code :-) + * -- RAW 20001011 */ +#define DL_WORKAROUND 0 #elif defined __OpenBSD__ /* SBCL doesn't (yet?) work at all with dynamic libs on OpenBSD, so we * wouldn't get any use out of these stubs. -- WHN 20001001 */ diff --git a/version.lisp-expr b/version.lisp-expr index 9285317..ce1dfa7 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -15,4 +15,4 @@ ;;; versions, and a string like "0.6.5.12" is used for versions which ;;; aren't released but correspond only to CVS tags or snapshots. -"0.6.9" +"0.6.9.2"