0.8.1.50
authorDaniel Barlow <dan@telent.net>
Mon, 21 Jul 2003 00:57:05 +0000 (00:57 +0000)
committerDaniel Barlow <dan@telent.net>
Mon, 21 Jul 2003 00:57:05 +0000 (00:57 +0000)
Alpha fixes before 0.8.2
... correct type declaration for FOREIGN-SYMBOL-ADDRESS-AS-INTEGER
        (add N-MACHINE-WORD-BITS to all backends for this purpose)

        ... correct argument order in the depths of DATA-VECTOR-SET-C/
    (DEF-SMALL-DATA-VECTOR-FROBS), so Alpha now passes bit
    array tests

run-tests.sh now prints the filename of the failing test just
before stopping, which should save on the effort required to
misinterpret the backtrace

delete final full stop from  "  cd tests && sh ./run-tests.sh."
        in make.sh so I can triple-click the line to do exactly that

commit patch for BASE-CHAR-COMPARE/C that Christophe sent me
(alpha/char.lisp).  I hope this is what he wanted ...

15 files changed:
make.sh
package-data-list.lisp-expr
src/code/alpha-vm.lisp
src/code/ppc-vm.lisp
src/code/target-load.lisp
src/compiler/alpha/array.lisp
src/compiler/alpha/char.lisp
src/compiler/alpha/parms.lisp
src/compiler/hppa/parms.lisp
src/compiler/mips/parms.lisp
src/compiler/ppc/parms.lisp
src/compiler/sparc/parms.lisp
src/compiler/x86/parms.lisp
tests/run-tests.sh
version.lisp-expr

diff --git a/make.sh b/make.sh
index df101ca..cc2aa0f 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -124,7 +124,7 @@ sh make-target-contrib.sh || exit 1
 echo
 echo The build seems to have finished successfully. If you would like
 echo run more extensive tests on the new SBCL, you can try 
-echo "  cd tests && sh ./run-tests.sh."
+echo "  cd tests && sh ./run-tests.sh"
 echo "(but expect some failures on non-x86 platforms)."
 
 date
index 41f624c..b117d4b 100644 (file)
@@ -2086,7 +2086,7 @@ structure representations"
              "WEAK-POINTER-BROKEN-SLOT" "WEAK-POINTER-NEXT-SLOT"
              "WEAK-POINTER-SIZE" "WEAK-POINTER-WIDETAG"
             "WEAK-POINTER-VALUE-SLOT"
-             "WORD" "N-WORD-BITS" "N-WORD-BYTES"
+             "WORD" "N-WORD-BITS" "N-WORD-BYTES" "N-MACHINE-WORD-BITS"
             "WORD-REG-SC-NUMBER" "WORD-SHIFT"
              "ZERO-SC-NUMBER"))
 
index ffddc72..fff421e 100644 (file)
@@ -10,9 +10,6 @@
 ;;;; files for more information.
 
 (in-package "SB!VM")
-\f
-(defvar *number-of-signals* 64)
-(defvar *bits-per-word* 64)
 
 ;;; See x86-vm.lisp for a description of this.
 (define-alien-type os-context-t (struct os-context-t-struct))
index a9297a6..1024998 100644 (file)
@@ -2,9 +2,6 @@
 ;;;
 (in-package "SB!VM")
 
-(defvar *number-of-signals* 64)
-(defvar *bits-per-word* 32)
-
 (define-alien-type os-context-t (struct os-context-t-struct))
 
 \f
index 2810930..56a139e 100644 (file)
   (dolist (symbol *!initial-foreign-symbols*)
     (setf (gethash (car symbol) *static-foreign-symbols*) (cdr symbol))))
 
-(declaim (ftype (function (string) sb!vm:word)
+(declaim (ftype (function (string) (unsigned-byte #.sb!vm:n-machine-word-bits))
                foreign-symbol-address-as-integer))
 
 
index 9b85f33..f5587ac 100644 (file)
                     (:generator 20
                                 (multiple-value-bind (word extra)
                                    (floor index ,elements-per-word)
-                                  (inst ldl object
+                                  (inst ldl old
                                         (- (* (+ word vector-data-offset)
                                              n-word-bytes)
                                            other-pointer-lowtag)
-                                        old)
+                                        object)
                                   (unless (and (sc-is value immediate)
                                                (= (tn-value value)
                                                  ,(1- (ash 1 bits))))
index e3142c6..5318c40 100644 (file)
 (define-vop (fast-char>/base-char base-char-compare)
   (:translate char>)
   (:variant :gt))
+
+(define-vop (base-char-compare/c)
+  (:args (x :scs (base-char-reg)))
+  (:arg-types base-char (:constant base-char))
+  (:temporary (:scs (non-descriptor-reg)) temp)
+  (:conditional)
+  (:info target not-p y)
+  (:policy :fast-safe)
+  (:note "inline constant comparison")
+  (:variant-vars cond)
+  (:generator 2
+    (ecase cond
+      (:eq (inst cmpeq x (sb!xc:char-code y) temp))
+      (:lt (inst cmplt x (sb!xc:char-code y) temp))
+      (:gt (inst cmple x (sb!xc:char-code y) temp)))
+    (if not-p
+       (if (eq cond :gt)
+           (inst bne temp target)
+           (inst beq temp target))
+        (if (eq cond :gt)
+           (inst beq temp target)
+           (inst bne temp target)))))
+
+(define-vop (fast-char=/base-char/c base-char-compare/c)
+  (:translate char=)
+  (:variant :eq))
+
+(define-vop (fast-char</base-char/c base-char-compare/c)
+  (:translate char<)
+  (:variant :lt))
+
+(define-vop (fast-char>/base-char/c base-char-compare/c)
+  (:translate char>)
+  (:variant :gt))
index cb7da46..1b2326b 100644 (file)
   #!+sb-doc
   "Number of bits per word where a word holds one lisp descriptor.")
 
+;;; the natural width of a machine word (as seen in e.g. register width,
+;;; address space)
+(def!constant n-machine-word-bits 64)
+
 (def!constant n-byte-bits 8
   #!+sb-doc
   "Number of bits per byte where a byte is the smallest addressable object.")
index 3624beb..af2c41b 100644 (file)
@@ -6,6 +6,10 @@
 (def!constant n-word-bits 32
   "Number of bits per word where a word holds one lisp descriptor.")
 
+;;; the natural width of a machine word (as seen in e.g. register width,
+;;; address space)
+(def!constant n-machine-word-bits 32)
+
 (def!constant n-byte-bits 8
   "Number of bits per byte where a byte is the smallest addressable object.")
 
index 2db4910..4989172 100644 (file)
@@ -3,6 +3,10 @@
 (def!constant n-word-bits 32
   "Number of bits per word where a word holds one lisp descriptor.")
 
+;;; the natural width of a machine word (as seen in e.g. register width,
+;;; address space)
+(def!constant n-machine-word-bits 32)
+
 (def!constant n-byte-bits 8
   "Number of bits per byte where a byte is the smallest addressable object.")
 
index d5f88c8..80e4600 100644 (file)
@@ -8,6 +8,10 @@
 (def!constant n-word-bits 32
   "Number of bits per word where a word holds one lisp descriptor.")
 
+;;; the natural width of a machine word (as seen in e.g. register width,
+;;; address space)
+(def!constant n-machine-word-bits 32)
+
 (def!constant n-byte-bits 8
   "Number of bits per byte where a byte is the smallest addressable object.")
 
index 052bf37..10dae3f 100644 (file)
   #!+sb-doc
   "Number of bits per word where a word holds one lisp descriptor.")
 
+;;; the natural width of a machine word (as seen in e.g. register width,
+;;; address space)
+(def!constant n-machine-word-bits 32)
+
 (def!constant n-byte-bits 8
   #!+sb-doc
   "Number of bits per byte where a byte is the smallest addressable object.")
index 6a1dbfe..234421d 100644 (file)
 ;;; the number of bits per word, where a word holds one lisp descriptor
 (def!constant n-word-bits 32)
 
+;;; the natural width of a machine word (as seen in e.g. register width,
+;;; address space)
+(def!constant n-machine-word-bits 32)
+
 ;;; the number of bits per byte, where a byte is the smallest
 ;;; addressable object
 (def!constant n-byte-bits 8)
index 6c52448..487537e 100644 (file)
@@ -47,7 +47,7 @@ tenfour () {
     if [ $1 = 104 ]; then
        echo ok
     else
-       echo test failed, expected 104 return code, got $1
+       echo test $2 failed, expected 104 return code, got $1
        exit 1
     fi
 }
@@ -66,7 +66,7 @@ for f in *.pure.lisp; do
     fi
 done
 echo "  (sb-ext:quit :unix-status 104)) ; Return status=success."
-) | $SBCL ; tenfour $?
+) | $SBCL ; tenfour $? "(pure.lisp files)"
 
 # *.impure.lisp files are Lisp code with side effects (e.g. doing
 # DEFSTRUCT or DEFTYPE or DEFVAR, or messing with the read table).
@@ -77,7 +77,7 @@ echo //running '*.impure.lisp' tests
 for f in *.impure.lisp; do
     if [ -f $f ]; then
         echo //running $f test
-        echo "(load \"$f\")" | $SBCL ; tenfour $?
+        echo "(load \"$f\")" | $SBCL ; tenfour $? $f
     fi
 done
 
@@ -89,7 +89,7 @@ echo //running '*.test.sh' tests
 for f in *.test.sh; do
     if [ -f $f ]; then
        echo //running $f test
-       sh $f "$SBCL"; tenfour $?
+       sh $f "$SBCL"; tenfour $? $f
     fi
 done
 
@@ -99,7 +99,7 @@ echo //running '*.assertoids' tests
 for f in *.assertoids; do
     if [ -f $f ]; then
        echo //running $f test
-       echo "(load \"$f\")" | $SBCL --eval '(load "assertoid.lisp")' ; tenfour $?
+       echo "(load \"$f\")" | $SBCL --eval '(load "assertoid.lisp")' ; tenfour $? $f
     fi
 done
 
@@ -112,7 +112,7 @@ for f in *.pure-cload.lisp; do
     # to LOAD them all into the same Lisp.)
     if [ -f $f ]; then
        echo //running $f test
-       $SBCL <<EOF ; tenfour $?
+       $SBCL <<EOF ; tenfour $? $f
                (compile-file "$f")
                 (progn
                   (unwind-protect
@@ -130,7 +130,7 @@ echo //running '*.impure-cload.lisp' tests
 for f in *.impure-cload.lisp; do
     if [ -f $f ]; then
        echo //running $f test
-       $SBCL <<EOF ; tenfour $?
+       $SBCL <<EOF ; tenfour $? $f
                (compile-file "$f")
                 (progn
                   (unwind-protect
index 250e43c..616da6a 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".)
-"0.8.1.49"
+"0.8.1.50"