#71: NOT-MORE-CONTAGIOUS broken for double-double-floats --------------------+------------------------------------------------------- Reporter: rtoy | Owner: somebody Type: defect | Status: new Priority: major | Milestone: Component: Core | Version: 2013-01 Keywords: | --------------------+------------------------------------------------------- Here is an example of the brokenness: {{{ (defun foo (x) (declare (type double-float x)) (expt x 2w0))
(compile 'foo)
(foo 2d0)
Invalid number of arguments: 1 [Condition of type KERNEL:SIMPLE-PROGRAM-ERROR] }}}
This is a bug in {{{NOT-MORE-CONTAGIOUS}}} returning the wrong value. The power should cause result of {{{EXPT}}} to be a double-double-float, but the the deftransform just converts the call to a multiplication of two double-floats. This mismatch of the actual type and the derived type confuses the compiler and causes the weird error.