• Andy Moreton's avatar
    Make bignums work better when EMACS_INT is larger than long · bc8ff54e
    Andy Moreton authored
    * lisp/international/ccl.el (ccl-fixnum): New function.
    (ccl-embed-data, ccl-embed-current-address, ccl-dump): Use it.
    * src/alloc.c (make_number): Handle case where EMACS_INT is
    larger than long.
    * src/data.c (bignumcompare): Handle case where EMACS_INT is
    larger than long.
    (arith_driver): Likewise.  Coerce markers.
    (float_arith_driver): Coerce markers.
    (Flogcount): Use mpz_sgn.
    (ash_lsh_impl): Fix bugs.
    (Fsub1): Fix underflow check.
    * src/lisp.h (NUMBERP): Don't check BIGNUMP.
    (CHECK_FIXNUM_OR_FLOAT_COERCE_MARKER): Fix indentation.
    * test/lisp/international/ccl-tests.el: New file.
    bc8ff54e
ccl.el 50.5 KB