Windows package built w/ CCL



(1) Apparently, gcl 2.7 has a fix; see http://www.mail-archive.com/gcl-devel at gnu.org/msg01867.html

(2) The function addk calls timeslk, but timeslk sends its arguments through *red. That's
a bit inefficient, I think. Likely, there should be a test for the g = 1 case too.

(3) This discussion is far removed from the CCL or GCL question for Windows.
I don't have much of an opinion about that. But if I were trying to get
cl-ppcre to work with Windows, likely I would favor CCL. 

--Barton

(defun addk (xx yy)
  (cond ((equal xx 0) yy)
	((equal yy 0) xx)
	((and (numberp xx) (numberp yy)) (+ xx yy))
	((or ($bfloatp xx) ($bfloatp yy)) ($bfloat (list '(mplus) xx yy)))
	(t (prog (g a b (x xx)(y yy))
	      (cond ((numberp x)
		     (cond ((floatp x) (return (+ x (fpcofrat y))))
			   (t (setq x (list '(rat) x 1)))))
		    ((numberp y)
		     (cond ((floatp y) (return (+ y (fpcofrat x))))
			   (t (setq y (list '(rat) y 1))))))
	      (setq g (gcd (caddr x) (caddr y)))
	      (setq a (truncate (caddr x) g)
	            b (truncate (caddr y) g))
	      (setq g (timeskl (list '(rat) 1 g)
			       (list '(rat)
				     (+ (* (cadr x) b)
					   (* (cadr y) a))
				     (* a b))))
	      (return (cond ((numberp g) g)
			    ((equal (caddr g) 1) (cadr g))
			    ($float (fpcofrat g))
	                    (t g)))))))