0.7.7.1:
authorWilliam Harold Newman <william.newman@airmail.net>
Sun, 25 Aug 2002 15:30:31 +0000 (15:30 +0000)
committerWilliam Harold Newman <william.newman@airmail.net>
Sun, 25 Aug 2002 15:30:31 +0000 (15:30 +0000)
added arg type checks to out-of-line 1-arg case of #'+ and
#'* (inspired by Gerd Moellman on cmucl-imp)
removed stale "egrep -i '\<cgc\>'" stuff

src/code/gc.lisp
src/code/numbers.lisp
src/runtime/gencgc.c
version.lisp-expr

index 523f347..1d87564 100644 (file)
@@ -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))
index 18fe19e..7546444 100644 (file)
             `(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
index e33dcc0..6e394e6 100644 (file)
@@ -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)
 
index 51fe90b..e2f91ab 100644 (file)
@@ -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"