X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fnumbers.lisp;h=6a2dd702163a9f0813e1422c9f2959dd3dcd9ee3;hb=95591ed483dbb8c0846c129953acac1554f28809;hp=1c405559c030c18a9d8362ee36f869da4cfb855b;hpb=332e4d9a78b7af76d0c8da2a7cafda5a3c556036;p=sbcl.git diff --git a/src/code/numbers.lisp b/src/code/numbers.lisp index 1c40555..6a2dd70 100644 --- a/src/code/numbers.lisp +++ b/src/code/numbers.lisp @@ -363,9 +363,9 @@ (,op (imagpart x) (imagpart y)))) (((foreach bignum fixnum ratio single-float double-float #!+long-float long-float) complex) - (complex (,op x (realpart y)) (,op (imagpart y)))) + (complex (,op x (realpart y)) (,op 0 (imagpart y)))) ((complex (or rational float)) - (complex (,op (realpart x) y) (imagpart x))) + (complex (,op (realpart x) y) (,op (imagpart x) 0))) (((foreach fixnum bignum) ratio) (let* ((dy (denominator y)) @@ -1458,7 +1458,7 @@ the first." (do-mfuns sb!c::*untagged-unsigned-modular-class*) (do-mfuns sb!c::*untagged-signed-modular-class*) (do-mfuns sb!c::*tagged-modular-class*))) - `(progn ,@(forms))) + `(progn ,@(sort (forms) #'string< :key #'cadr))) ;;; KLUDGE: these out-of-line definitions can't use the modular ;;; arithmetic, as that is only (currently) defined for constant