0.7.11.1:
authorAlexey Dejneka <adejneka@comail.ru>
Fri, 3 Jan 2003 18:53:46 +0000 (18:53 +0000)
committerAlexey Dejneka <adejneka@comail.ru>
Fri, 3 Jan 2003 18:53:46 +0000 (18:53 +0000)
        New bug.

BUGS
OPTIMIZATIONS
version.lisp-expr

diff --git a/BUGS b/BUGS
index 225f4eb..0c1771c 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -1190,9 +1190,8 @@ WORKAROUND:
 229:
   (subtypep 'function '(function)) => nil, t.
 
-233:
-  Bug in constraint propagation:
-
+233: bugs in constraint propagation
+  a.
   (defun foo (x)
     (declare (optimize (speed 2) (safety 3)))
     (let ((y 0d0))
@@ -1205,6 +1204,14 @@ WORKAROUND:
 
   (see usage of CONTINUATION-ASSERTED-TYPE in USE-RESULT-CONSTRAINTS)
 
+  b.
+  (declaim (optimize (speed 2) (safety 3)))
+  (defun foo (x y)
+    (if (typep (prog1 x (setq x y)) 'double-float)
+        (+ x 1d0)
+        (+ x 2)))
+  (foo 1d0 5) => segmentation violation
+
 234:
   (fixed in sbcl-0.7.10.36)
 
index ba0f5e8..7f45bee 100644 (file)
@@ -64,3 +64,35 @@ VOP DATA-VECTOR-SET/SIMPLE-STRING V2!14[EDI] t32[EAX] t30[S2]>t33[CL]
 
 * And why two moves?
 --------------------------------------------------------------------------------
+(loop repeat 1.5)
+
+uses generic arithmetic
+--------------------------------------------------------------------------------
+09:49:05 <jtra> I have found a case in those where suboptimal code is
+  generate with nested loops, it might be moderately easy to fix that
+09:49:28 <jtra> see
+  http://www.bagley.org/~doug/shootout/bench/nestedloop/nestedloop.cmucl
+09:50:30 <jtra> if you add declarations to dotimes, generated code is
+  almost optimal, but most inner loops run out of registers and use
+  memory location for iteration variable
+
+;;; -*- mode: lisp -*-
+;;; $Id$
+;;; http://www.bagley.org/~doug/shootout/
+;;; from Friedrich Dominicus
+
+(defun main ()
+  (let ((n (parse-integer (or (car (last extensions:*command-line-strings*)) "1")))
+        (x 0))
+    (declare (fixnum n)
+             (fixnum x)
+             (optimize (speed 3) (debug 0) (safety 0)))
+    (dotimes (a n)
+      (dotimes (b n)
+        (dotimes (c n)
+          (dotimes (d n)
+            (dotimes (e n)
+              (dotimes (f n)
+                (incf x)))))))
+   (format t "~A~%" x)))
+--------------------------------------------------------------------------------
index b1d6a5f..b4b5b49 100644 (file)
@@ -18,4 +18,4 @@
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
 
-"0.7.11"
+"0.7.11.1"