changes in sbcl-0.8.20 (0.9alpha.0?) relative to sbcl-0.8.19:
* fixed disassembly of SHLD and SHRD on x86. (thanks to David
Lichteblau)
+ * fixed loading of multiply forward-referenced layouts.
+ (thanks to Cheuksan Wang)
* fixed bugs 19 and 317: fixed-format floating point printing is
more accurate. This also fixes a bug reported by Adam Warner
related to the ~@F format directive.
(let ((layout (find-layout name)))
(init-or-check-layout layout
(or (find-classoid name nil)
- (make-undefined-classoid name))
+ (layout-classoid layout))
length
inherits
depthoid)))
--- /dev/null
+(in-package "CL-USER")
+
+(defun a-struct-referencer-1 (struct)
+ (a-struct-slot struct))
+
--- /dev/null
+(in-package "CL-USER")
+
+(defun a-struct-referencer-2 (struct)
+ (a-struct-slot struct))
+
+(defstruct a-struct slot)
--- /dev/null
+# This file run a regression test for a bug in loading
+# forward-referenced layouts.
+
+FILES='"undefined-classoid-bug-1.lisp" "undefined-classoid-bug-2.lisp"'
+FASLS='"undefined-classoid-bug-1.fasl" "undefined-classoid-bug-2.fasl"'
+
+${SBCL:-sbcl} <<EOF
+(let ((files (list $FILES)))
+ (mapc #'load files)
+ (mapc #'compile-file files))
+(quit :unix-status 52)
+EOF
+
+${SBCL:-sbcl} <<EOF
+(mapc #'load (list $FASLS))
+(quit :unix-status 52)
+EOF
+
+if [ $? != 52 ]; then
+ rm $FASLS
+ echo undefined-classoid-bug test failed: $?
+ exit 1 # Failure
+fi
+
+# success convention for script
+exit 104
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.19.27"
+"0.8.19.28"