0.6.9.1:
authorWilliam Harold Newman <william.newman@airmail.net>
Sun, 3 Dec 2000 15:12:00 +0000 (15:12 +0000)
committerWilliam Harold Newman <william.newman@airmail.net>
Sun, 3 Dec 2000 15:12:00 +0000 (15:12 +0000)
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)

BUGS
doc/.cvsignore [new file with mode: 0644]
src/code/debug.lisp
src/compiler/generic/genesis.lisp
src/runtime/Config.x86-freebsd
src/runtime/bsd-os.c
version.lisp-expr

diff --git a/BUGS b/BUGS
index 4fc5e0f..9346a32 100644 (file)
--- 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 (file)
index 0000000..cfbc1ef
--- /dev/null
@@ -0,0 +1 @@
+*.htm
\ No newline at end of file
index 7711c50..f238e3d 100644 (file)
@@ -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
index 259c781..28eb128 100644 (file)
@@ -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.
index 149a999..7bbbf4e 100644 (file)
@@ -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
index 0ab4fd2..514c980 100644 (file)
@@ -242,8 +242,10 @@ os_install_interrupt_handlers(void)
 #endif /* !defined GENCGC */
 \f
 /*
- * 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 */
index 9285317..ce1dfa7 100644 (file)
@@ -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"