fix a number of assuptions that a long could hold an inum
authorAndy Wingo <wingo@pobox.com>
Fri, 19 Nov 2010 10:29:26 +0000 (11:29 +0100)
committerAndy Wingo <wingo@pobox.com>
Fri, 19 Nov 2010 14:22:43 +0000 (15:22 +0100)
commite25f37271acde5b9e3c34420ad9d0faa62b7503d
treeab77d62427c4c4fa717f3c62aa79765c7633d88e
parentd2aed81f7cb8b703b000962a1b9dddc8de91212e
fix a number of assuptions that a long could hold an inum

* libguile/bytevectors.c:
* libguile/goops.c:
* libguile/instructions.c:
* libguile/numbers.c:
* libguile/random.c:
* libguile/read.c:
* libguile/vm-i-scheme.c: Fix a number of assumptions that a long could
  hold an inum. This is not the case on platforms whose void* is larger
  than their long.

* libguile/numbers.c (scm_i_inum2big): New helper, only implemented for
  sizeof(void*) == sizeof(long); produces a compile error on other
  platforms. Basically gmp doesn't have a nice interface for converting
  between mpz values and intmax_t.
libguile/bytevectors.c
libguile/goops.c
libguile/instructions.c
libguile/numbers.c
libguile/random.c
libguile/read.c
libguile/vm-i-scheme.c