[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bignums are bogus



I believe the spirit of CL is to encourage implementations to make the
maximum size of bignums "reasonably large".  I also believe the spirit
of CL is to have the lower limit be rather large, say at least 5000
bits.  The smaller the size of the largest bignum, the more applications
you lock out, such as symbolic algebras.

If you make the maximum size of an integer be the maximum size of a
fixnum, does that imply (+ most-positive-fixnum 1) generates an error?

I agree that a CLtL-defined implementation-dependent constant describing
the maximum number of bits of a bignum is consistent with CLtL; I'm not
sure how applications would make use of it, other than
  (when (< maximum-number-of-bignum-bits 9342)
    (error "This application won't work on this machine; bignums are too small."))

BTW, the Symbolics 3600 implementation limits bignums to 2^28 bits.
Applications that create such things are going to page like mad.  The
error that is generated when exceeding is along the lines
    (ash 1 most-positive-fixnum)
    1Error: ASH shifting much too far to the left