[Openmcl-cvs-notifications] r7463 - /trunk/ccl/level-1/l1-aprims.lisp
gb at clozure.com
gb at clozure.com
Wed Oct 17 11:53:57 MDT 2007
Author: gb
Date: Wed Oct 17 13:53:57 2007
New Revision: 7463
Log:
bogons in EGC-CONFIGURATION, CONFIGURE-EGC
Modified:
trunk/ccl/level-1/l1-aprims.lisp
Modified: trunk/ccl/level-1/l1-aprims.lisp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/ccl/level-1/l1-aprims.lisp (original)
+++ trunk/ccl/level-1/l1-aprims.lisp Wed Oct 17 13:53:57 2007
@@ -183,6 +183,7 @@
=
(defun nthcdr (index list)
"Performs the cdr function n times on a list."
+ (setq list (require-type list 'list))
(if (and (typep index 'fixnum)
(>=3D (the fixnum index) 0))
(locally (declare (fixnum index))
@@ -1093,9 +1094,9 @@
(g2 (%fixnum-ref ta target::area.younger))
(g1 (%fixnum-ref g2 target::area.younger))
(g0 (%fixnum-ref g1 target::area.younger)))
- (values (ash (the fixnum (%fixnum-ref g0 target::area.threshold)) -8)
- (ash (the fixnum (%fixnum-ref g1 target::area.threshold)) -8)
- (ash (the fixnum (%fixnum-ref g2 target::area.threshold)) -8))=
))
+ (values (ash (the fixnum (%fixnum-ref g0 target::area.threshold)) (- (=
- 10 target::fixnum-shift)))
+ (ash (the fixnum (%fixnum-ref g1 target::area.threshold)) (- (=
- 10 target::fixnum-shift)))
+ (ash (the fixnum (%fixnum-ref g2 target::area.threshold)) (- (=
- 10 target::fixnum-shift))))))
=
=
(defun configure-egc (e0size e1size e2size)
@@ -1103,11 +1104,15 @@
effect and returns T, otherwise, returns NIL. (The provided threshold sizes
are rounded up to a multiple of 64Kbytes in OpenMCL 0.14 and to a multiple
of 32KBytes in earlier versions.)"
- (unless (egc-active-p)
- (setq e2size (logand (lognot #xffff) (+ #xffff (ash (require-type e2si=
ze '(unsigned-byte 18)) 10)))
- e1size (logand (lognot #xffff) (+ #xffff (ash (require-type e1si=
ze '(unsigned-byte 18)) 10)))
- e0size (logand (lognot #xffff) (+ #xffff (ash (require-type e0si=
ze '(integer 1 #.(ash 1 18))) 10))))
- (%configure-egc e0size e1size e2size)))
+ (let* ((was-enabled (egc-active-p)))
+ (unwind-protect
+ (progn
+ (egc nil)
+ (setq e2size (logand (lognot #xffff) (+ #xffff (ash (require-ty=
pe e2size '(unsigned-byte 18)) 10)))
+ e1size (logand (lognot #xffff) (+ #xffff (ash (require-ty=
pe e1size '(unsigned-byte 18)) 10)))
+ e0size (logand (lognot #xffff) (+ #xffff (ash (require-ty=
pe e0size '(integer 1 #.(ash 1 18))) 10))))
+ (%configure-egc e0size e1size e2size))
+ (egc was-enabled))))
=
=
=
More information about the Openmcl-cvs-notifications
mailing list