Raymond Toy pushed to branch master at cmucl / cmucl

Commits:

3 changed files:

Changes:

  • src/compiler/float-tran.lisp
    ... ... @@ -1903,7 +1903,7 @@
    1903 1903
     (deftransform upgraded-complex-real-contagion-arg1 ((x y) * * :defun-only t :node node)
    
    1904 1904
       ;;(format t "upgraded-complex-real-contagion-arg1~%")
    
    1905 1905
       `(,(continuation-function-name (basic-combination-fun node))
    
    1906
    -     (coerce x '(complex ,(type-specifier (continuation-type y))))
    
    1906
    +     (coerce x '(complex ,(numeric-type-format (continuation-type y))))
    
    1907 1907
          y))
    
    1908 1908
     ;;;
    
    1909 1909
     (deftransform upgraded-complex-real-contagion-arg2 ((x y) * * :defun-only t :node node)
    
    ... ... @@ -1912,7 +1912,7 @@
    1912 1912
     	  (continuation-type x) (continuation-type y))
    
    1913 1913
       `(,(continuation-function-name (basic-combination-fun node))
    
    1914 1914
          x
    
    1915
    -     (coerce y '(complex ,(type-specifier (continuation-type x))))))
    
    1915
    +     (coerce y '(complex ,(numeric-type-format (continuation-type x))))))
    
    1916 1916
     
    
    1917 1917
     
    
    1918 1918
     (dolist (x '(= + * / -))
    

  • src/general-info/release-21d.md
    ... ... @@ -34,6 +34,7 @@ public domain.
    34 34
         * ~~#47~~ Backquate and multiple splices
    
    35 35
         * ~~#59~~ Incorrect type-derivation for `decode-float`
    
    36 36
         * ~~#60~~ The function `C::%UNARY-FROUND` is undefined
    
    37
    +    * ~~#58~~ Bogus type error in comparison of complex number with `THE` form
    
    37 38
       * Other changes:
    
    38 39
       * Improvements to the PCL implementation of CLOS:
    
    39 40
       * Changes to building procedure:
    

  • tests/issues.lisp
    ... ... @@ -515,3 +515,9 @@
    515 515
         (assert-equalp
    
    516 516
          (values 2d0 0d0)
    
    517 517
          (funcall c14 2d0))))
    
    518
    +
    
    519
    +(define-test issue.58
    
    520
    +  (:tag :issues)
    
    521
    +  (let ((c9 (compile nil #'(lambda (x)
    
    522
    +			     (= (the (eql 1.0d0) x) #c(1/2 1/2))))))
    
    523
    +    (assert-false (funcall c9 1.d0))))