0.7.8.21:
authorChristophe Rhodes <csr21@cam.ac.uk>
Wed, 9 Oct 2002 10:07:42 +0000 (10:07 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Wed, 9 Oct 2002 10:07:42 +0000 (10:07 +0000)
Commit speedier version of UNCROSS for the cross-compiler, as in CSR
sbcl-devel 2002-10-08
... make the hash-table once and only once ;-)

src/code/uncross.lisp
tests/array.pure.lisp
version.lisp-expr

index 68d6e00..bfb3c81 100644 (file)
 ;;; (:COMPILE-TOPLEVEL)) do we call UNCROSS on them to obliterate the
 ;;; distinction.
 #+sb-xc-host
-(defun uncross (form)
-  (let ((;; KLUDGE: We don't currently try to handle circular program
-        ;; structure, but we do at least detect it and complain about
-        ;; it..
-        inside? (make-hash-table)))
+(let ((;; KLUDGE: We don't currently try to handle circular program
+       ;; structure, but we do at least detect it and complain about
+       ;; it..
+       inside? (make-hash-table)))
+  (defun uncross (form)
     (labels ((uncross-symbol (symbol)
                (let ((old-symbol-package (symbol-package symbol)))
                 (if (and old-symbol-package
                 (if (and (eq rcr-car car) (eq rcr-cdr cdr))
                   form
                   (cons rcr-car rcr-cdr)))))
+      (clrhash inside?)
       (rcr form))))
index 4e665ed..513a6d8 100644 (file)
                                  (aref rmdr ,i)))
                       vector)
                      0))))
-#|
-(assert (= (funcall 
-            (lambda (rmdr) 
-              (declare (type (simple-array bit (*)) rmdr)
-                       (optimize (speed 3) (safety 0)))
-              (aref rmdr 0))
-            #*00000000000000000000000000000001000000000)
-           0))
-|#
\ No newline at end of file
index 7458ebb..868255d 100644 (file)
@@ -18,4 +18,4 @@
 ;;; internal versions off the main CVS branch, it gets hairier, e.g.
 ;;; "0.pre7.14.flaky4.13".)
 
-"0.7.8.20"
+"0.7.8.21"