From: William Harold Newman Date: Sun, 25 Aug 2002 15:30:31 +0000 (+0000) Subject: 0.7.7.1: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=904d96b38f7035ff93ff56588e72b65b189800c8;p=sbcl.git 0.7.7.1: added arg type checks to out-of-line 1-arg case of #'+ and #'* (inspired by Gerd Moellman on cmucl-imp) removed stale "egrep -i '\'" stuff --- diff --git a/src/code/gc.lisp b/src/code/gc.lisp index 523f347..1d87564 100644 --- a/src/code/gc.lisp +++ b/src/code/gc.lisp @@ -33,9 +33,9 @@ #!-sb-fluid (declaim (inline dynamic-usage)) ; to reduce PROFILEd call overhead -#!+(or cgc gencgc) +#!+gencgc (def-c-var-frob dynamic-usage "bytes_allocated") -#!-(or cgc gencgc) +#!-gencgc (defun dynamic-usage () (the (unsigned-byte 32) (- (sb!sys:sap-int (sb!c::dynamic-space-free-pointer)) diff --git a/src/code/numbers.lisp b/src/code/numbers.lisp index 18fe19e..7546444 100644 --- a/src/code/numbers.lisp +++ b/src/code/numbers.lisp @@ -323,9 +323,11 @@ `(defun ,op (&rest args) #!+sb-doc ,doc (if (null args) ,init - (do ((args (cdr args) (cdr args)) - (res (car args) (,op res (car args)))) - ((null args) res)))))) + (do ((args (cdr args) (cdr args)) + (result (car args) (,op result (car args)))) + ((null args) result) + ;; to signal TYPE-ERROR when exactly 1 arg of wrong type: + (declare (type number result))))))) (define-arith + 0 "Return the sum of its arguments. With no args, returns 0.") (define-arith * 1 diff --git a/src/runtime/gencgc.c b/src/runtime/gencgc.c index e33dcc0..6e394e6 100644 --- a/src/runtime/gencgc.c +++ b/src/runtime/gencgc.c @@ -2092,11 +2092,11 @@ scav_vector(lispobj *where, lispobj object) * weak pointers */ -/* XX This is a hack adapted from cgc.c. These don't work too well with the - * gencgc as a list of the weak pointers is maintained within the - * objects which causes writes to the pages. A limited attempt is made - * to avoid unnecessary writes, but this needs a re-think. */ - +/* XX This is a hack adapted from cgc.c. These don't work too + * efficiently with the gencgc as a list of the weak pointers is + * maintained within the objects which causes writes to the pages. A + * limited attempt is made to avoid unnecessary writes, but this needs + * a re-think. */ #define WEAK_POINTER_NWORDS \ CEILING((sizeof(struct weak_pointer) / sizeof(lispobj)), 2) diff --git a/version.lisp-expr b/version.lisp-expr index 51fe90b..e2f91ab 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -18,4 +18,4 @@ ;;; for internal versions, especially for internal versions off the ;;; main CVS branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.7.7" +"0.7.7.1"