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
--- /dev/null
+*.htm
\ No newline at end of file
(*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
;;;; 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.
+# -*- 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
#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!
*
*
* 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 */
;;; 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"