manifest itself in a segmentation violation while building PCL.
(reported by Kevin Rosenberg, Eric Marsden, Lars Brinkhoff and
many others over the years)
+ * fixed bug: ROOM no longer reports silly numbers for stack usage if
+ the stack pointer (treated as a signed integer) is negative.
+ (thanks to Peter van Eynde)
changes in sbcl-0.9.9 relative to sbcl-0.9.8:
* new platform: experimental support for the Windows operating
(defun control-stack-usage ()
#!-stack-grows-downward-not-upward
(- (sb!sys:sap-int (sb!c::control-stack-pointer-sap))
- (sb!vm:fixnumize sb!vm:*control-stack-start*))
+ (sb!sys:sap-int (sb!di::descriptor-sap sb!vm:*control-stack-start*)))
#!+stack-grows-downward-not-upward
- (- (sb!vm:fixnumize sb!vm:*control-stack-end*)
+ (- (sb!sys:sap-int (sb!di::descriptor-sap sb!vm:*control-stack-end*))
(sb!sys:sap-int (sb!c::control-stack-pointer-sap))))
(defun binding-stack-usage ()
(- (sb!sys:sap-int (sb!c::binding-stack-pointer-sap))
- (sb!vm:fixnumize sb!vm:*binding-stack-start*)))
+ (sb!sys:sap-int (sb!di::descriptor-sap sb!vm:*binding-stack-start*))))
\f
;;;; ROOM
(let* ((csp (sap-int (sb!c::control-stack-pointer-sap)))
(initial-offset (logand csp (1- bytes-per-scrub-unit)))
(end-of-stack
- (- (sb!vm:fixnumize sb!vm:*control-stack-end*)
+ (- (sap-int (sb!di::descriptor-sap sb!vm:*control-stack-end*))
sb!c:*backend-page-size*)))
(labels
((scrub (ptr offset count)
#!+stack-grows-downward-not-upward
(let* ((csp (sap-int (sb!c::control-stack-pointer-sap)))
- (end-of-stack (+ (sb!vm:fixnumize sb!vm:*control-stack-start*)
+ (end-of-stack (+ (sap-int (sb!di::descriptor-sap sb!vm:*control-stack-start*))
sb!c:*backend-page-size*))
(initial-offset (logand csp (1- bytes-per-scrub-unit))))
(labels
;;; 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.9.9.33"
+"0.9.9.34"