0.8.11.7:
authorNikodemus Siivola <nikodemus@random-state.net>
Thu, 10 Jun 2004 16:32:46 +0000 (16:32 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Thu, 10 Jun 2004 16:32:46 +0000 (16:32 +0000)
       Less noise from the compiler
       ... Remove :IMPORTANT T from  %COERCE-CALLABLE-TO-FUN transform,
           so that it complains about uncertain type only with
           (OPTIMIZE SPEED).
       ... Test.

NEWS
src/compiler/ir1-translators.lisp
tests/compiler.pure.lisp
version.lisp-expr

diff --git a/NEWS b/NEWS
index 5ba9e90..48a1e79 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2522,6 +2522,9 @@ changes in sbcl-0.8.12 relative to sbcl-0.8.11:
   * the behaviour of the standard function ED is now customizeable by
     third parties through a hook variable: see ED's documentation
     string for information on the protocol.
+  * the compiler no longer emits efficiency notes for (FUNCALL X)
+    when the type of X is uncertain under default optimization
+    settings.
   * fixed bugs 45d and 118: DOUBLE-FLOAT[-NEGATIVE]-EPSILON now
     exhibit the required behaviour on the x86 platform.  (thanks to
     Peter van Eynde, Eric Marsden and Bruno Haible)
index eb93a2e..3c65f27 100644 (file)
       `(%funcall ,function ,@args)
       (values nil t)))
 
-(deftransform %coerce-callable-to-fun ((thing) (function) *
-                                      :important t)
+(deftransform %coerce-callable-to-fun ((thing) (function) *)
   "optimize away possible call to FDEFINITION at runtime"
   'thing)
 \f
index 28b3242..234c9b1 100644 (file)
                        (progn (if (ldb-test (byte 0 0) (rational (throw 'ct7 0))) 0 0) 0))))
         0 0))))
    391833530 -32785211)))
+
+;;; Efficiency notes for FUNCALL
+(handler-case
+    (compile nil '(lambda (x) (funcall x)))
+  (sb-ext:compiler-note (e)
+    (error "bogus compiler note: ~S." e)))
+
+(catch :got-note
+  (handler-case
+      (compile nil '(lambda (x) (declare (optimize speed)) (funcall x)))
+    (sb-ext:compiler-note (e)
+      (throw :got-note nil)))
+  (error "missing compiler note for FUNCALL"))
index 0501bdf..bfce415 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.11.6"
+"0.8.11.7"