comparison configure.ac @ 5736:3192994c49ca

Convert C (un)signed long long values to bignums properly. This patch also does the following: - Uses make_fixnum instead of make_integer when the argument is guaranteed to be in the fixnum range. - Introduces make_unsigned_integer so that we handle unsigned values with the high bit set correctly. - Introduces conversions between bignums and (un)signed long long values. - Uses mp_set_memory_functions with the BSD MP code, if it exists. - Eliminates some unnecessary consing in the Lisp + and * implementations. - Fixes a problem with check_valid_xbm_inline(). This function is called during intialization. It calls Ftimes. When using pdump, this is a problem, because (a) the bignum code is not initialized until *after* dumping, so we don't try to dump any bignums, and (b) multiplication of integers is done inside bignums so we handle fixnum overflow correctly. I decided that an XBM file with dimensions that don't fit into fixnums is probably not something we want to try to handle anyway, and did the arithmetic with C values instead of Lisp values. Doing that broke one test, which started getting a different error message from the one it expected, so I adjusted the test to match the new reality. - Fixes a few miscellaneous bugs in the BSD MP code. See <CAHCOHQk0u0=eD1fUMHTNWi2Yh=1WgiYyCXdMbsGzHBNhdqYz4w@mail.gmail.com> in xemacs-patches, as well as followup messages.
author Jerry James <james@xemacs.org>
date Mon, 17 Jun 2013 10:23:00 -0600
parents 86d33ddc7fd6
children a2912073be85
comparison
equal deleted inserted replaced
5735:ff13c44ce0d9 5736:3192994c49ca
5285 fi 5285 fi
5286 AC_CHECK_FUNC(move, [AC_DEFINE(HAVE_MP_MOVE)]) 5286 AC_CHECK_FUNC(move, [AC_DEFINE(HAVE_MP_MOVE)])
5287 else 5287 else
5288 XE_DIE("Required MP numeric support cannot be provided.") 5288 XE_DIE("Required MP numeric support cannot be provided.")
5289 fi 5289 fi
5290 AC_CHECK_FUNC(mp_set_memory_functions,
5291 [AC_DEFINE(HAVE_MP_SET_MEMORY_FUNCTIONS)],
5292 [AC_CHECK_FUNC(__gmp_set_memory_functions,
5293 [AC_DEFINE(HAVE_MP_SET_MEMORY_FUNCTIONS)])])
5290 AC_DEFINE(WITH_NUMBER_TYPES) 5294 AC_DEFINE(WITH_NUMBER_TYPES)
5291 AC_DEFINE(WITH_MP) 5295 AC_DEFINE(WITH_MP)
5292 fi 5296 fi
5293 5297
5294 dnl Unfortunately, just because we can link doesn't mean we can run. 5298 dnl Unfortunately, just because we can link doesn't mean we can run.