* 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)
`(%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
(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"))
;;; 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"