• Tom Tromey's avatar
    Introduce the bignum type · a0f2adbf
    Tom Tromey authored
    * src/alloc.c (mark_object): Handle Lisp_Misc_Bignum.
    (sweep_misc): Call mpz_clear for Lisp_Misc_Bignum.
    * src/data.c (Ftype_of): Handle Lisp_Misc_Bignum.
    (Fintegerp, Finteger_or_marker_p, Fnatnump, Fnumberp)
    (Fnumber_or_marker_p): Update for bignum.
    (Ffixnump, Fbignump): New defuns.
    (syms_of_data): Update.
    * src/emacs.c (xrealloc_for_gmp, xfree_for_gmp): New functions.
    (main): Call mp_set_memory_functions.
    * src/lisp.h (enum Lisp_Misc_Type) <Lisp_Misc_Bignum>: New constant.
    (struct Lisp_Bignum): New.
    (union Lisp_Misc): Add u_bignum.
    (BIGNUMP, XBIGNUM, INTEGERP, NATNUMP, NUMBERP, CHECK_NUMBER)
    (CHECK_INTEGER, CHECK_NUMBER_COERCE_MARKER): New functions.
    * src/print.c (print_object): Handle Lisp_Misc_Bignum.
    a0f2adbf
lisp.h 153 KB