1.0.19.32: Small bugfixes
authorPaul Khuong <pvk@pvk.ca>
Wed, 20 Aug 2008 20:34:00 +0000 (20:34 +0000)
committerPaul Khuong <pvk@pvk.ca>
Wed, 20 Aug 2008 20:34:00 +0000 (20:34 +0000)
 * Modify a couple number functions to avoid silently executing
   the default case even when the argument isn't a number.

 * Fix an obscure bug in MERGE-LETS.

src/code/numbers.lisp
src/compiler/locall.lisp
version.lisp-expr

index 9571988..1c40555 100644 (file)
 (defun realpart (number)
   #!+sb-doc
   "Extract the real part of a number."
-  (typecase number
+  (etypecase number
     #!+long-float
     ((complex long-float)
      (truly-the long-float (realpart number)))
      (truly-the single-float (realpart number)))
     ((complex rational)
      (sb!kernel:%realpart number))
-    (t
+    (number
      number)))
 
 (defun imagpart (number)
   #!+sb-doc
   "Extract the imaginary part of a number."
-  (typecase number
+  (etypecase number
     #!+long-float
     ((complex long-float)
      (truly-the long-float (imagpart number)))
      (sb!kernel:%imagpart number))
     (float
      (* 0 number))
-    (t
+    (number
      0)))
 
 (defun conjugate (number)
   #!+sb-doc
   "Return the complex conjugate of NUMBER. For non-complex numbers, this is
   an identity."
+  (declare (type number number))
   (if (complexp number)
       (complex (realpart number) (- (imagpart number)))
       number))
index fe1dea8..e758d67 100644 (file)
     (setf (lambda-physenv clambda) home-physenv)
 
     (when physenv
+      (unless home-physenv
+        (setf home-physenv (get-lambda-physenv home)))
       (setf (physenv-nlx-info home-physenv)
             (nconc (physenv-nlx-info physenv)
                    (physenv-nlx-info home-physenv))))
index 1688b95..950c47d 100644 (file)
@@ -17,4 +17,4 @@
 ;;; 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.19.31"
+"1.0.19.32"