[cmucl-ticket] [cmucl] #71: NOT-MORE-CONTAGIOUS broken for double-double-floats

#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. -- Ticket URL: <http://trac.common-lisp.net/cmucl/ticket/71> cmucl <http://common-lisp.net/project/cmucl> Cmucl is a high-performance, free Common Lisp implementation.

#71: NOT-MORE-CONTAGIOUS broken for double-double-floats ---------------------+------------------------------------------------------ Reporter: rtoy | Owner: somebody Type: defect | Status: closed Priority: major | Milestone: Component: Core | Version: 2013-01 Resolution: fixed | Keywords: ---------------------+------------------------------------------------------ Changes (by toy.raymond@…): * status: new => closed * resolution: => fixed Comment: commit b2ee65dabba1742203e28f538eeee59da126093c Author: Raymond Toy <toy.raymond@gmail.com> Date: Thu Jan 24 20:28:09 2013 -0800 Fix ticket:71 The reader conditionals in {{{NOT-MORE-CONTAGIOUS}}} were incorrrectly handling the case when the second type was a double-float. It was always returning T in that case, but this is wrong if the first type is a double-double-float. -- Ticket URL: <http://trac.common-lisp.net/cmucl/ticket/71#comment:1> cmucl <http://common-lisp.net/project/cmucl> Cmucl is a high-performance, free Common Lisp implementation.
participants (1)
-
cmucl