changes in sbcl-1.0.19 relative to 1.0.18:
* optimization: stack allocation is slightly more efficient on x86
and x86-64.
+ * bug fix: DEFSTRUCT forms with user-specified :CONSTRUCTOR options,
+ where a raw slot always is initialized using the initform whose
+ type is not know sufficiently well a compile-time are now compiled
+ correctly. (reported by John Morrison)
* bug fix: compiler no longer makes erronous assumptions in the
presense of non-foldable SATISFIES types.
* bug fix: stack analysis missed cleanups of dynamic-extent
(loop for slot in (dd-slots defstruct)
for name = (dsd-name slot)
collect (cond ((find name (skipped-vars) :test #'string=)
+ ;; CLHS 3.4.6 Boa Lambda Lists
(setf (dsd-safe-p slot) nil)
'.do-not-initialize-slot.)
((or (find (dsd-name slot) (vars) :test #'string=)
- (dsd-default slot)))))))))
+ (let ((type (dsd-type slot)))
+ (if (eq t type)
+ (dsd-default slot)
+ `(the ,type ,(dsd-default slot))))))))))))
;;; Grovel the constructor options, and decide what constructors (if
;;; any) to create.
(assert (eql #c(5.0 5.0) (constant-arg-inits-f foo)))
(assert (eql #c(6.0d0 6.0d0) (constant-arg-inits-g foo)))))
(make-constant-arg-inits)
+
+;;; bug reported by John Morrison, 2008-07-22 on sbcl-devel
+(defstruct (raw-slot-struct-with-unknown-init (:constructor make-raw-slot-struct-with-unknown-init ()))
+ (x (#:unknown-function) :type double-float))
+
;;; 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".)
-"1.0.18.26"
+"1.0.18.27"