Working around Lisp bugs?



A general question:  How much should we cater to broken Lisp
implementations?

As an example, I applied a fix for Stavros' bug that
rectform(1e160/(1e160+%i)) was returning 0.0.   This is a bug in gcl,
but on cmucl, I get an overflow.  This is caused maxima computing
1/(1e160+%i) by multiplying by the conjugate.  This causes the
denominator to overflow.

To fix, this I changed the code to do, essentially, (/ (complex 1e160
1)).  This works fine on cmucl and probably sbcl.  But gcl, ecl, and ccl
give an overflow.  Clisp returns #c(1e-160 0.0).  (This is not quite
correct.  The answer should be #C(1.0d-160 -9.99988867182683d-321), but
maybe Clisp doesn't support denormalized numbers?).

In this particular case, it's easy to fix this so that it works on all
Lisps, but should we?

Ray