Skip to content

Commit

Permalink
0.8.11.7:
Browse files Browse the repository at this point in the history
       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.
  • Loading branch information
nikodemus committed Jun 10, 2004
1 parent 7abb9e4 commit 4d58eac
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 3 deletions.
3 changes: 3 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
3 changes: 1 addition & 2 deletions src/compiler/ir1-translators.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -479,8 +479,7 @@
`(%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)

Expand Down
13 changes: 13 additions & 0 deletions tests/compiler.pure.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -1372,3 +1372,16 @@
(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"))
2 changes: 1 addition & 1 deletion version.lisp-expr
Original file line number Diff line number Diff line change
Expand Up @@ -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"

0 comments on commit 4d58eac

Please sign in to comment.