* Patch by Stas Boukarev.
about object allocation.
* optimization: more efficient type-checks for FIXNUMs when the value
is known to be a signed word on x86 and x86-64.
+ * optimization: (EXPT -1 INTEGER) is compiled into (IF (EVENP INTEGER) 1 -1).
+ (thanks to Stas Boukarev)
* improvement: failure to provide requested stack allocation compiler notes
provided in all cases (requested stack allocation not happening without a
note being issued is now considered a bug.)
'single-float))
(deftransform expt ((x y) ((double-float 0d0) (signed-byte 32)) *)
`(%pow x (coerce y 'double-float)))
+(deftransform expt ((x y) ((integer -1 -1) integer) *)
+ `(if (evenp y) 1 -1))
;;; ANSI says log with base zero returns zero.
(deftransform log ((x y) (float float) float)
;;; 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".)
-"1.0.29.27"
+"1.0.29.28"